一、环境准备:
centos环境下,借助docker安装kafka,安装kafka之前我们需要安装Zookeeper;
一个典型的Kafka集群中包含以下:
- 若干Produce;
- 若干broker(broker数量越多,集群吞吐率越高);
- 若干Consumer Group,以及一个Zookeeper集群。
Kafka通过Zookeeper管理集群配置,选举leader,以及在Consumer Group发生变化时进行rebalance。Producer使用push模式将消息发布到broker,Consumer使用pull模式从broker订阅并消费消息。
下载kafka、zookeeper镜像:
#下载kafka镜像
[root@jason jiahongfei]# docker pull wurstmeister/kafka
Using default tag: latest
latest: Pulling from wurstmeister/kafka
e7c96db7181b: Pull complete
f910a506b6cb: Pull complete
b6abafe80f63: Pull complete
c7db1651fcd4: Pull complete
3a06d69a6954: Pull complete
18616ed64100: Pull complete
Digest: sha256:a9980b591efe62a68de0acf5f5ce2f6fa7112ab07ec1099c976cdadc740c7ea4
Status: Downloaded newer image for wurstmeister/kafka:latest
#下载zookeeper镜像
[root@jason jiahongfei]# docker pull wurstmeister/zookeeper
Using default tag: latest
latest: Pulling from wurstmeister/zookeeper
a3ed95caeb02: Pull complete
ef38b711a50f: Pull complete
e057c74597c7: Pull complete
666c214f6385: Pull complete
c3d6a96f1ffc: Pull complete
3fe26a83e0ca: Pull complete
3d3a7dd3a3b1: Pull complete
f8cc938abe5f: Pull complete
9978b75f7a58: Pull complete
4d4dbcc8f8cc: Pull complete
8b130a9baa49: Pull complete
6b9611650a73: Pull complete
5df5aac51927: Pull complete
76eea4448d9b: Pull complete
8b66990876c6: Pull complete
f0dd38204b6f: Pull complete
Digest: sha256:7a7fd44a72104bfbd24a77844bad5fabc86485b036f988ea927d1780782a6680
Status: Downloaded newer image for wurstmeister/zookeeper:latest
启动kafka、zookeeper镜像:
#启动zookeepter镜像:
docker run -d --name zookeeper -p 2181:2181 -t wurstmeister/zookeeper
#启动kafka镜像
docker run -d --name kafka -p 9092:9092 -e KAFKA_BROKER_ID=0 -e KAFKA_ZOOKEEPER_CONNECT=192.168.0.105:2181 -e KAFKA_ADVERTISED_LISTENERS=PLAINTEXT://192.168.0.105:9092 -e KAFKA_LISTENERS=PLAINTEXT://0.0.0.0:9092 -t wurstmeister/kafka
KAFKA_BROKER_ID=0
KAFKA_ZOOKEEPER_CONNECT=192.168.0.105:2181
KAFKA_ADVERTISED_LISTENERS=PLAINTEXT://192.168.0.105:9092
KAFKA_LISTENERS=PLAINTEXT://0.0.0.0:9092
#KAFKA_ZOOKEEPER_CONNECT 配置的是zookeeper的地址,可以单节点配置,也可以配置zookeeper集群多节点,用逗号隔开
注:容器操作辅助指令:
查看目前有哪些容器:docker container ls
暂停容器:docker container stop XXXXXXXXXXX #容器编号
删除容器:docker container rm XXXXXXXXXXX
二、配置中心项目pom.xml 引入kafka自动装配jar包:
<dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-bus-kafka</a