각 오픈소스 기능 및 아키텍쳐 특징 조사
| 기능 / 오픈소스 | 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 |
