- Kafka
- Kafka connect
- Rabbit MQ
- Zipkin
- Grafana
- Prometheus
- Java11
- Spring Cloud
- JPA
- MariaDB
zookeeper 먼저 실행후, 30초정도 대기한 뒤 카프카를 띄워준다.
$KAFKA_HOME/bin/zookeeper-server-start.sh $KAFKA_HOME/config/zookeeper.properties
$KAFKA_HOME/bin/kafka-server-start.sh $KAFKA_HOME/config/server.properties
$KAFKA_HOME/bin/kafka-topics.sh --create --topic topic-name --bootstrap-server localhost:9092 --partitions 1
$KAFKA_HOME/bin/kafka-topics.sh --bootstrap-server localhost:9092 --list
$KAFKA_HOME/bin/kafka-topics.sh --describe --topic topic-name --bootstrap-server localhost:9092
예전에는 --zookeeper
옵션을 줘서 삭제를 해줬지만 이는 deprecated 된 옵션이다.
zookeeper 쉘이 아닌, kafka-topics를 사용해서 --bootstrap-server
옵션으로 진행해줘야 한다.
$KAFKA_HOME/bin/kafka-topics.sh --bootstrap-server localhost:9092 --delete topic-name
$KAFKA_HOME/bin/kakfa-console-producer.sh --broker-list localhost:9092 --topic topic-name
$KAFKA_HOME/bin/kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic topic-name --from-beginning
kafka connect는 별도로 설치 및 실행해주어야 한다. db에 맞는 jdbc connector도 설정해주는 것 잊지 말자!
./bin/connect-distributed ./etc/kafka/connect-distributed.properties
mac 환경에서 brew로 간편하게 설치할 수 있다.
brew install mariadb
brew services start mariadb
brew services
mysql -uroot
이 때 Access denied 권한 에러가 난다면
sudo mysql -u root
로 접속한다. 이때 비밀번호는 root 비밀번호가 아니라, sudo 계정의 비밀번호다.
kafka sink-connector를 통해 order-service에서 orders topic에 등록한 데이터를 mariadb에 넣을 수 있다. 이로써 여러개의 분산처리된 order-service의 db접근 데이터를 동기화 할 수 있다.
위는 connector 로그 캡쳐화면이다.