Kafka 는 정말 에러 없이 안정적인 기능을 제공해 준 에코 시스템 중 하나이다. 거의 문제를 일으키지 않았으며, 가끔 콜렉션 레이어나 hadoop 레이어가 잠시 문제가 있거나, 재부팅을 하는 동안, 훌륭하게 버퍼 역할을 해 주었다.
아쉬운 점은 내심 2년 반 만의 업그레이드 이니, 무언가 새로운 기능들이 있었으면 했는데, 기능 개선이 거의 없었고, 심지어 버전도 얼마 오르지 않았다는 점이다.
링크드인의 한국인 개발자에 의하여 '수로' 라는 별도 파생 프로젝트가 생긴것으로 아는데, 우선 '수로'는 다음 기회에 살펴보기로 하고, TO-BE 머신의 한켠에 Kafka 최신 버전을 가볍게 세팅해 보았다. (참고, 아래 설정은 최초 Initial 세팅이다. 세세한 Production 모드 세팅은 차근 차근 할 거라는 예기...)
설치방법
- 다운로드 및 설치
- wget http://apache.mirror.cdnetworks.com/kafka/0.8.2.2/kafka_2.10-0.8.2.2.tgz
- tar xvzf kafka_2.10-0.8.2.2.tgz
- 설정
- config/zookeeper.properties 내 dataDir 경로 수정
- 해당 경로에 디렉토리 생성 후 수행.
- config/consumer.properties 내 zookeeper connect 주소 변경
- config/producer.properties 내 metadata broker list 주소 변경
- 브로커의 server.properties 를 2개로 copy 하여 새로 만들고 내부 변수 변경
- broker.id 변경
- port 변경
- log.dir 변경
- zookeeper 주소 변경
- 각 파일들을 N개 노드에 복사 싱크
- 구동
- 1번노드에서 Zookeeper 구동
- bin/zookeeper-server-start.sh config/zookeeper.properties &
- 브로커노드에서
- bin/kafka-server-start.sh config/server-1.properties &
- bin/kafka-server-start.sh config/server-2.properties &
- 토픽생성
- 1번노드에서
- bin/kafka-topics.sh --create --zookeeper 서버주소:2181 --replication-factor 2 --partitions 1 --topic ssg-replicated-topic
- 1번노드에서
- bin/kafka-console-producer.sh --broker-list 서버주소1:9093,서버주소2:9094 --topic ssg-replicated-topic
- 3번노드에서
- bin/kafka-console-consumer.sh --zookeeper 서버주소:2181 --from-beginning --topic ssg-replicated-topic
- 메시지 전달 테스트
- Producer
- Consumer