카프카 | http://kafka.apache.org/ MOM(massage orianted middleware)소프트웨어, 대규모 발생 작은데이터, 비동기 방식 처리 : 분산임시 저장소 : 빅데이터 외 IOT, SNS에서도 사용. (Queue , Topic...이 버퍼역할, 트랜젝션처리) |
|
라이센스 | Apache | |
유사 프로젝트 | ActiveMQ, RabbitMQ, HonnetMQ(호넷)등 | |
주요 구성요소 |
Broker | 카프카의 서비스 인스턴스 다수의 Broker를 클러스터로 구성하고 Topic이 생성되는 물리적서버 |
Topic | Broker에서 데이터의 발생/소비 처리를 위한 중간저장소 | |
Provider | Broker의 특정 토픽에 데이터를 전송(발행)하는 역할로, 애플리케이션에서 카프카라이브러리를 이용해 구현 | |
Consumer | Broker의 특정 Topic에서 데이터를 수신(소비)하는 역할로서 애플리케이션에서 카프카 라이브러리를 이용해 구현. | |
아키텍처 1 싱글 브로커 온 싱글노드 ** 모두 주키퍼 활용 |
![]() |
|
아키텍처2 멀티 브로커 싱글노드 - 업무도메인 복잡한 메시지 처리시 사용. |
![]() |
|
아키텍처3 멀티브로커/멀티노드 : 실제 많이 사용 Topic 1-2 ~Topic2-1 묶을수 있다. -대규모 메시지 있을때 대규모 컨슈머가 있어야 안정성 -대규모 발행소비 적합 - 물리적 나눠진 브로커간 복제가능(안정성) - 업무 도메인별 메시지 분리가능. |
![]() |
|
활용방안1:트랜젝션처리 | 플럼(대규모 실시간로그) --비동기---> 카프카(버퍼링- 트랜젝션1~N) -> 실시간 처리/분석 알림/ 적재 활용. |
|
활용방안2:장애극복 | 실시간 로그발생 -> 플럼 -> Hbase : 카프카가 없으면. Hbase 셧다운 or 네트워크 1차 장애... 플럼은 버퍼링이 크지않음. 2차장애 |
|
스마트카 실시간로그 -> 플럼 -> 카프카 브로커 1~3(대규모 분산임시저장소)-> 스톰-> Hbase 카프카 : 멀티노드, 대규모 클러스터.... 장애발생 2시간동안... 담아둘수 있음 |
||
설치 | 1. CM Cluster1 콤보박스 > 서비스 추가. > kafka > 계속 > kafka Broker _ Server02설치. 나머지 설치안함. > 완료. 2. 환경구성 kafka> 구성 Data Retention Time : 7일 >> 15분 3. 재시작. |
|
실행 1. 플럼 설정 : |
카프카 싱크 : 카프카로 전송하는 플럼 에이전트. 프로듀서 콘솔 -> 카프카 Broker : SmartCar-Topic -> Consumer Console1 -> Consumer Console2 |
|
실행 2. Topic생성. 서버 02 |
$kafka-topics --create --zookeeper server02.hadoop.com:2181 --replication-factor 1 --partitions 1 --topic SmartCar-Topic --replication-factor : 카프카 다중 Broker 만들고 전송한 데이터를 replication-factor 개수만큼 복제하게 되는데, 파일럿 프로젝트는 단일 카프카 브로커이므로 복제개수는 1개만 설정한다. --partitions : 옵션은 해당 Topic에 데이터들이 partitions의 개수만큼 분리 저장하게 된다. 이역시 다중 Broker에서 쓰기/읽기 성능 향상을 위해 사용하는 옵션이다. 파일럿 환경에서는 1로만 설정한다. ![]() 중략 ![]() |
|
3. Producer사용. | $kafka-console-producer --broker-list server02.hadoop.com:9092 -topic SmartCar-Topic![]() 중략 ![]() |
|
4. Consumer -1 사용 | $kafka-console-consumer --bootstrap-server server02.hadoop.com:9092 --topic SmartCar-Topic --partition 0 --from-beginning --from-beginning 지금까지 못받은데이터 전부다 출력. ![]() 중략 ![]() |
|
5. Consumer-2 사용 | $kafka-console-consumer --bootstrap-server server02.hadoop.com:9092 --topic SmartCar-Topic --partition 0 --from-beginning![]() 중략 ![]() |
|
프로듀서 생성시 수많은 컨수머들이 동시 처리 |
![]() |
|
'Data' 카테고리의 다른 글
[1028 from 실무로 배우는 빅데이터 기술 By 김강원 10]하둡 (0) | 2021.05.26 |
---|---|
[1028 from 실무로 배우는 빅데이터 기술 By 김강원 09]적재-대용량로그파일 (0) | 2021.05.26 |
[1028 from 실무로 배우는 빅데이터 기술 By 김강원 07]수집- 플럼 (0) | 2021.05.24 |
[1028 from 실무로 배우는 빅데이터 기술 By 김강원 06]수집- 개요/아키텍처 (0) | 2021.05.24 |
[1028 from 실무로 배우는 빅데이터 기술 By 김강원 05]하둡, 주키퍼 명령어 (0) | 2021.05.24 |