Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- 케밥케이스
- ServerSocket
- NamingRule
- udp
- PascalCase
- Socket
- 카멜케이스
- 스네이크케이스
- camelcase
- DatagramPacket
- 파스칼케이스
- SnakeCase
- DatagramSocket
- Java
- 명명규칙
- tcp
- KebabCase
- UDP통신
Archives
- Today
- Total
MATT's
Kafka - 실습 본문
Kafka 전체 동작은 크게
- Broker
- Publisher
- Subscriber
로 나뉜다.
때문에 Kafka를 사용하기 위해서는 먼저 Broker(Kafka Server)를 생성해줘야 한다.
1. Broker 생성
Broker로 사용할 서버에서 Kafka를 설치하기 위해 Apache Kafka 공식 페이지의 DOWNLOAD KAFKA로 이동한다.
1. wget 패키지 설치 # yum -y install wget 2. Kafka 다운로드 # wget https://downloads.apache.org/kafka/2.6.0/kafka_2.13-2.6.0.tgz 3. 압축 해제 # tar -xzf kafka-2.6.0-src.tgz 4-1. Java 설치 확인 # java -version (* Kafka는 Scala라는 언어로 만들어져 있어서 JVM이 필요하기 때문에 JAVA를 설치해서 실행해야한다.) 4-2. Java 설치가 안되어 있으면 설치 # yum -y install java-11-openjdk java-11-openjdk-devel ( 추가적으로 /etc/profile에서 환경변수까지 잡아주도록 합니다. ) |
2. Zookeeper 실행
Apache Zookeeper는 Kafka 클러스터의 최신 설정정보 관리, Kafka 서버들의 동기화, 리더 채택 등 클러스터의 서버들이 공유하는 데이터들을 관리하기 위해 사용된다.
따라서 Kafka server를 실행하기 전에, Zookeeper를 먼저 실행해줘야한다.
다운받은 디렉토리에서 /bin 디렉토리에 들어가서, zookeeper-server-start.sh 스크립트 파일을 실행시켜준다.
(Windows 환경에서는 zookeeper-server-start.bat 파일을 실행시킨다.)
# ./zookeeper-server-start.sh ../config/zookeeper.properties |
- zookeeper-server-start.sh(linux) / zookeeper-server-start.bat(windows)
- Zookeeper 서버를 실행시키는 파일 - zookeeper.properties
- Zookeeper 서버 설정 파일
3. Kafka 실행
# ./kafka-server-start.sh ../config/server.properties |
- kafka-server-start.sh(linux) / kafka-server-start.bat(windows)
- Kafka 서버를 실행시키는 파일 - server.properties
- Kafka 서버 설정 파일
4. Topic 생성
# ./kafka-topics.sh --create --bootstrap-server localhost:9092 --replication-factor 1 -partitions 1 --topic coffee |
- --create
> 새로운 토픽을 만들 때 사용하는 옵션 - --bootstrap-server
> 연결할 Kafka 서버 ({host}:{port} 형태) - --replication-factor
> Partition 복제 수
> 옵션을 사용하지 않으면,
server.properties 파일의 default.replication.factor 항목에 설정된 값을 default로 사용 - --partitions
> Topic이 생성되거나 변경될 대의 Partition 수
> 옵션을 사용하지 않으면,
server.properties 파일의 num.partitions 항목에 설정된 값을 default로 사용 - --topic
> create, alter, describe, delete 옵션에 사용할 Topic 명
* Topic 관련 명령어들
# ./kafka-topic.sh --list --bootstrap-server localhost:9092 |
- --list
> 사용 가능한 Topic 목록 조회
# ./kafka-topic.sh --describe --bootstrap-server localhost:9092 --topic coffee |
- --describe
> Topic의 상세 정보 조회
# ./kafka-topic.sh --delete --bootstrap-server localhost:9092 --topic coffee |
- --delete
> Topic 삭제
> 삭제하기 위해서는 server.properties 파일의 delete.topic.enable=true 설정을 추가해주어야 한다.
5. Producer
# ./kafka-console-producer.sh --broker-list localhost:9092 --topic coffee > hi > hello > 안녕 |
- coffee 토픽으로 메세지를 보낸다. (메세지 생산)
6. Consumer
# ./kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic coffee hi hello 안녕 |
- coffee 토픽에 도착한 메세지를 수신한다. (메세지 소비)
위와 같이 Producer에서 메세지를 생산하면, Consumer에서 바로 화면에 확인이 가능하다.
[참고]
'Kafka' 카테고리의 다른 글
kafka란? (0) | 2020.07.29 |
---|---|
메세징 시스템(Messaging System) (0) | 2020.07.20 |