CPU 집약적인 작업 + 초고부하 작업이 아니라면 Go, Python 어떤 것을 쓰던지 성능은 크게 차이가 나지 않는다.

Go Topic = upbit-krw-ticker-go, Python Topic = upbit-krw-ticker-py. PARTITION=3
docker-compose.yml 참고)“Confluent Kafka” - 전체 업비트 마켓
<aside> <img src="notion://custom_emoji/845a6cfa-ad4b-4505-8350-960c9f51a87a/168954da-c755-8023-8dcf-007afaa4b2e6" alt="notion://custom_emoji/845a6cfa-ad4b-4505-8350-960c9f51a87a/168954da-c755-8023-8dcf-007afaa4b2e6" width="40px" />
Kafka 에는 크게 Apache Kafka, Confluent Kafka 두 줄기가 있는데 자바로만 개발하면 Apache Kafka 로 충분하지만 그 외 언어를 사용해야 할 때는 Confluent Kafka 를 쓰는게 보편적임
(Confluent 라는 실리콘밸리에 있는 회사가만든 Kafka 라고 함)
</aside>
| 항목 | 내용 |
|---|---|
| 테스트 시나리오 | Upbit WebSocket을 통한 실시간 거래 데이터 수신 및 Kafka로 전송 |
| 테스트 대상 | 업비트 전체 마켓 (KRW, BTC, USDT 등 모든 거래쌍) |
| 테스트 시간 | 182.1초 (3분) |
| Python Kafka 라이브러리 | confluent-kafka-python |
| Go Kafka 라이브러리 | confluent-kafka-go |
| 동기화 | 5의 배수 초에 동시 시작하여 동등한 테스트 환경 보장 |
| 항목 | Python | Go |
|---|---|---|
| CPU | 약 1% | 약 1% |
| WebSocket 연결 전략 | 마켓 20개당 1개 연결 | 마켓 20개당 1개 연결 |
| 전체 마켓 수 | 479개 | 479개 |
| WebSocket 연결 수 | 24개 | 24개 |