Kafka
- 참고1: https://hudi.blog/what-is-kafka/
- 참고2: https://gwonbookcase.tistory.com/49
- 참고3: https://goyunji.tistory.com/125
- 메세지 큐(MQ) : 분산화된 환경에서 발신자 <-> 수신자 메시지를 전송, 수신하는 기술
- MOM(message oriented middleware) : 메세지 지향 미들웨어
-> MOM 을 구현한 시스템이 MQ 임 - ActiveMQ, rabbitMQ, Kafka 등이 있음
- MQ 를 사용하면 서로에게 의존하지 않아서 확장하기 좋음
- 오픈소스 메세징 시스템
- 링크드인에서 최초개발, 아파치 재단 관리
- End-To-End 로 연결된 복잡한 구조를 카프카 중심의 데이터 흐름으로 바꿔 단순화 시킬 수 있음!
-> 이벤트/데이터가 발생하면 발생 주체가 카프카로 전달, 카프카가 최종적으로 전달
-> "유통"의 역할을 담당함
- 기존 메세징 시스템(rabbitMQ, ActiveMQ)에서는 Broker 가 consumer 에게 메세지를 push 해 주는 방식
-> 카프카는 consumer 가 Broker로부터 메세지를 pull 로 가져감
-> "자신의 처리 능력만큼의 메세지만 가져가서 최적의 성능을 낼 수 있음(대용량 처리에 특화됨)"
- 단, 네트워크 대역폭과 디스크 공간을 고려해서 사용해야 함
MQ의 사용 장점 - MQ 를 사용하면 비동기식 작업으로 처리 가능 - 개발자 입장에서 코딩의 간소화, 성능, 안정성 보장 - MQ는 소비자가 실제로 메시지를 어느 시점에 가져가서 처리하는 지 보장하지 않음(알아서 쓸 것이라 믿음) |
Kafka - Zookeeper
- 카프카 클러스터에서 필수 구성 요소
- 카프카 클러스터에서 여러 대의 Broker 가 함께 메시지를 처리하니, Broker 간 데이터를 동기화 하기 위해 주키퍼가 사용됨
-> 주키퍼가 상태정보를 관리하여 동기화 해줌
Zookeeper
- 참고1: https://cornswrold.tistory.com/523
- 참고2: https://goyunji.tistory.com/125
- 분산 시스템의 네임스페이스, 구성 정보, 상태 정보 등을 관리하기 위한 분산 코디네이터 역할 수행
- znode 라는 곳에 key-value 형태로 상태 값들을 저장함
- 데이터들은 모두 메모리에 저장됨
- 클러스터(앙상블) 형태로 구성하여 사용할 수 있음. 단, 홀수로 노드를 구성해야 하며 과반수 이상의 노드가 살아있어야 함
'IT 이야기' 카테고리의 다른 글
jupyter notebook 에서 VScode(code-server) 사용하기 (0) | 2025.04.15 |
---|---|
[인증] LDAP / SSO / oAuth 의 관계에 대하여 (0) | 2023.04.02 |
[보안] PKI(Public Key Infrastructure) 시스템을 활용한 TLS 통신(HTTPS, 공동인증서) (0) | 2022.12.20 |
공부에 대한 기록 (0) | 2022.06.01 |