각 오픈소스 기능 및 아키텍쳐 특징 조사
기능 / 오픈소스 | Kong | Tyk | Spring cloud netfllix |
---|---|---|---|
깃허브 Star | 11055 | 2186 | 1234 |
UI | O | O | X |
프락시 코어 | Ngnix | Ngnix | Servlet |
인증 | 플러그인 | O | 어노테이션 |
메시지 컨버터 | 플러그인 | O | X |
Api 쿼터 | 플러그인 | O | X |
분석도구 | 플러그인 / 유료 | O | X |
라우팅 | O | O | 어노테이션 |
테넌트 | 미제공(서버기동시 프로퍼티 로딩 방식) | O | 스프링 부트시 프로퍼티 로딩(스프링 클라우드 컨피그에 의해 동적 로딩되기는 하나, 멀티 테넌시를 의미하지는 않음) |
구성 | 설치형 | 설치/클라우드 | 라이브러리 |
언어 | Lua 스크립트 | Golang | Java |
리스폰스 캐싱 | 플러그인에서 캐싱 대상 entity, 캐싱 time 등을 코딩해야 한다. | UI 에서 캐싱 설정이 가능하며, 리소스 제공 서버에서 데이터 업데이트가 이루어졌을 경우 Tyk api 호출을 통해 캐싱 업데이트를 할 수 있다. | X |
캐쉬 서버 | redis | redis | X (yml 또는 스프링 클라우드 컨피그) |
데이터베이스 | casandra / postgres | MongoDB | X (yml 또는 스프링 클라우드 컨피그) |
사용자 판별 | Cunsumer 개념 | KeyStore 개념 | X |
라이선스 | MIT | MPL | Apache License |
Swagger 지원 | X | O | X |
로드밸런싱 | O | O | O |
서비스 디스커버리 | Ring-Balancer (자체 개발 디스커버리) | 유레카 | 유레카 |
클러스터링 | 복잡한 클러스터링 설정 | Redis Cluster 만 필요 | X |