티스토리 뷰
앞선 포스팅에서 Kafka(Zookeeper) 아키텍처에 대해 살펴보았다.
이번 포스팅에서는 다음 포스팅에서 다룰 Pub/Sub 개발을 위한 Kafka 메시지 브로커를 구성해 보도록 하자.
Kafka 설치
Kafka는 사실 설치의 개념이 없다. 단순히 압축을 해제하는 것만으로 설치는 완료된다.Kafka는 다음에서 다운로드 받을 수 있다.Kafka : http://kafka.apache.org/
Kafka 디렉토리 구조
Kafka를 관리할 특정 디렉토리에 압축을 해제하면 다음과 같은 구조를 갖는다.
[주요 디렉토리]- bin : Kafka와 Zookeeper를 기동하고 관리하기 위한 bat(windows) or sh(linux/unix) 파일이 위치한다.- config : Kafka와 Zookeeper 설정을 위한 config 파일이 위치한다.
Kafka 구성
1) Zookeeper 설정먼저 Kafka를 기동하기 전 Kafka Broker를 관리하는 Zookeeper를 먼저 구성한다.Zookeeper 설정은 다음 위치에 있다.($KAFKA_HOME/config/zookeeper.properties)
dataDir=C:/temp/zookeeper
clientPort=2181
maxClientCnxns=0
#server.0=kafka1_node:2888:3888
#server.1=kafka2_node:2888:3888
#server.2=kafka3_node:2888:3888
위 설정은 dataDir이라는 실제 데이터 저장소 위치가 가장 중요하며, 멀티 노드 환경일 경우 server.n 형태로 확장해 클러스터 환경을 구성할 수 있다. (현재는 주석처리)2) Zookeeper 기동기동 방법은 다음과 같다.[zookeeper_start.bat]
SET JAVA_HOME=C:\jdk1.8.0_212
SET PATH=%JAVA_HOME%\bin;%PATH%
SET KAFKA_HOME=C:\kafka_2.12-2.1.1
start /b %KAFKA_HOME%\bin\windows\zookeeper-server-start.bat %KAFKA_HOME%\config\zookeeper.properties
start command를 활용하여 zookeeper-server-start.bat을 실행하며, 앞서 구성한 zookeeper.properties 환경파일을 참조하도록 한다.정상 기동되면 아래와 같은 로그를 확인할 수 있다.
...
...
...
[2020-09-29 22:05:05,696] INFO Server environment:java.io.tmpdir=C:\Users\user\AppData\Local\Temp\ (org.apache.zookeeper.server.ZooKeeperServer)
[2020-09-29 22:05:05,696] INFO Server environment:java.compiler=<NA> (org.apache.zookeeper.server.ZooKeeperServer)
[2020-09-29 22:05:05,696] INFO Server environment:os.name=Windows 10 (org.apache.zookeeper.server.ZooKeeperServer)
[2020-09-29 22:05:05,697] INFO Server environment:os.arch=amd64 (org.apache.zookeeper.server.ZooKeeperServer)
[2020-09-29 22:05:05,697] INFO Server environment:os.version=10.0 (org.apache.zookeeper.server.ZooKeeperServer)
[2020-09-29 22:05:05,698] INFO Server environment:user.name=nrson (org.apache.zookeeper.server.ZooKeeperServer)
[2020-09-29 22:05:05,698] INFO Server environment:user.home=C:\Users\user (org.apache.zookeeper.server.ZooKeeperServer)
[2020-09-29 22:05:05,698] INFO Server environment:user.dir=C:\kafka_2.12-2.1.1\bin (org.apache.zookeeper.server.ZooKeeperServer)
[2020-09-29 22:05:05,704] INFO tickTime set to 3000 (org.apache.zookeeper.server.ZooKeeperServer)
[2020-09-29 22:05:05,705] INFO minSessionTimeout set to -1 (org.apache.zookeeper.server.ZooKeeperServer)
[2020-09-29 22:05:05,705] INFO maxSessionTimeout set to -1 (org.apache.zookeeper.server.ZooKeeperServer)
[2020-09-29 22:05:05,715] INFO Using org.apache.zookeeper.server.NIOServerCnxnFactory as server connection factory (org.apache.zookeeper.server.ServerCnxnFactory)
[2020-09-29 22:05:05,716] INFO binding to port 0.0.0.0/0.0.0.0:2181 (org.apache.zookeeper.server.NIOServerCnxnFactory)
3) Kafka 설정Kafka는 다음 설정파일을 구성한다.($KAFKA_HOME/config/server.properties)
...
...
############################# Server Basics #############################
# The id of the broker. This must be set to a unique integer for each broker.
broker.id=0
...
...
#zookeeper.connect=kafka1_node:2181,kafka2_node:2181,kafka3_node:2181
...
...
- broker.id : multi node 클러스터 환경일 경우 broker id를 unique하게 구성해야 한다.- zookeeper.connect : 클러스터 환경에 묶일 zookeeper client를 등록한다.4) Kafka 기동기동 방법은 다음과 같다.[kafka_start.bat]
SET JAVA_HOME=C:\jdk1.8.0_212
SET PATH=%JAVA_HOME%\bin;%PATH%
SET KAFKA_HOME=C:\kafka_2.12-2.1.1
start/b %KAFKA_HOME%\bin\windows\kafka-server-start.bat %KAFKA_HOME%\config\server.properties
start command를 활용하여 kafka-server-start.bat을 실행하며, 앞서 구성한 server.properties 환경파일을 참조하도록 한다.
정상 기동되면 아래와 같은 로그를 확인할 수 있다.
...
...
...
[2020-09-29 22:17:39,742] INFO [TransactionCoordinator id=0] Starting up. (kafka.coordinator.transaction.TransactionCoordinator)
[2020-09-29 22:17:39,743] INFO [TransactionCoordinator id=0] Startup complete. (kafka.coordinator.transaction.TransactionCoordinator)
[2020-09-29 22:17:39,745] INFO [Transaction Marker Channel Manager 0]: Starting (kafka.coordinator.transaction.TransactionMarkerChannelManager)
[2020-09-29 22:17:39,776] INFO [/config/changes-event-process-thread]: Starting (kafka.common.ZkNodeChangeNotificationListener$ChangeEventProcessThread)
[2020-09-29 22:17:39,792] INFO [SocketServer brokerId=0] Started processors for 1 acceptors (kafka.network.SocketServer)
[2020-09-29 22:17:39,797] INFO Kafka version : 2.1.1 (org.apache.kafka.common.utils.AppInfoParser)
[2020-09-29 22:17:39,798] INFO Kafka commitId : 21234bee31165527 (org.apache.kafka.common.utils.AppInfoParser)
[2020-09-29 22:17:39,800] INFO [KafkaServer id=0] started (kafka.server.KafkaServer)
이번 포스팅에서는 Kafka(Zookeeper) 구축 및 기동 방법에 대해 알아보았다.
다음 포스팅에서는 Kafka Publisher와 Subscriber의 메시지를 주고 받는 방법(pub/sub)에 대해 알아보자.
'③ 클라우드 > ⓜ MSA' 카테고리의 다른 글
Microservice Architecture API Composition (0) | 2020.10.04 |
---|---|
Kafka(Zookeeper) Pub/Sub SpringBoot Application 개발가이드 (0) | 2020.09.30 |
Kafka(Zookeeper) 아키텍처 (0) | 2020.09.29 |
Event-Driven Architecture (0) | 2020.05.07 |
[OpenSource API Gateway] Tyk Gateway (4) | 2019.07.13 |
- Total
- Today
- Yesterday
- OpenStack
- aws
- git
- MSA
- 아키텍처
- 마이크로서비스 아키텍처
- Da
- openstack token issue
- SWA
- 쿠버네티스
- Docker
- jeus
- 마이크로서비스
- JEUS6
- JBoss
- aa
- 오픈스택
- wildfly
- apache
- k8s
- SA
- webtob
- nodejs
- API Gateway
- TA
- JEUS7
- Architecture
- openstack tenant
- kubernetes
- node.js
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |