Kafka并没有使用Eureka作为注册中心,必须使用 ZooKeeper ,好在Kafka安装包自带了 ZooKeeper ,只需下载Kafka就好了
Kafka 快速入门
环境安装
下载Kafka并解压后可以看到目录结构如下:
kafka
+-bin
+-windows
+-config
+-libs
+-logs
+-site-docs
因为 Kafka 是依赖 ZooKeeper 的,所以在 bin
和 config
目录下除了Kafka相关的内容还存在ZooKeeper 相关的内容。bin
目录存放了 Kafka 和 ZooKeeper 的命令行工具,其中根目录是适用于Linux/UNIX
的shell,bin/windows
下则存放的适用于 Windows
的bat。 config
目录则存放了 Kafka 和 ZooKeeper的配置信息。
启动测试
启动 ZooKeeper,执行命令
zookeeper-server-start config/zookeeper.properties
,该命令需要指定 ZooKeeper 的配置文件位置才能正确启动,Kafka 的压缩包中包含了其默认配置,开发和测试环境无需修改。启动 Kafka,执行命令
kafka-server-start config/server.properties
,与 ZooKeeper 启动类似,但要指定其他环境的 ZooKeeper 的话可以修改config/server.properties
的 zookeeper.connect 来设置连接 ZooKeeper 的地址和端口。
Spring Cloud 集成Kafka
pom.xml加入依赖
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-bus-kafka</artifactId>
</dependency>
加入以上依赖后,Spring Cloud 消息总线 Kafka 已经集成完成,使用的配置则是默认启动 Kafka 和 ZooKeeper 时的配置。确定 ZooKeeper 和 Kafka 已经启动,然后再启动有上面依赖的 Spring Boot 应用 ,这时 Kafka 会新增一个名为 springCloudBus 的 Topic,可以使用命令 kafka-topics --list --zookeeper localhost:2181
来查看当前 Kafka 中的 Topic。
集成后Kafka 配置
以上的例子中 Kafka、ZooKeeper 均运行于本地,但实际应用中,Kafka 和 ZooKeeper 一般会独立部署,所以需要为Kafka 和 ZooKeeper 配置一些连接信息,Spring Boot 1.3.7 没有为 Kafka 直接提供 Starter 模块,而是使用 Spring Cloud Stream 的 Kafka 模块,配置的时候则采用
spring.cloud.stream.kafka
前缀
spring.cloud.stream.kafka 配置
spring:
cloud:
stream:
binders:
#binderName
kafka1:
type: kafka
environment:
spring:
cloud:
stream:
kafka:
binder:
#kafka地址
brokers: localhost:9092
#zookeeper节点地址
zk-nodes: localhost:2181
bindings:
#channelName
channelKafka:
#binderName
binder: kafka1
destination: event-demo
content-type: text/plain
producer:
partitionCount: 1
spring.kafka 配置
在启动Kafka的时候有这样一个配置
config/server.properties
的 zookeeper.connect 指定 ZooKeeper连接地址,但是在spring.kafka
中并没有看到可以配置 ZooKeeper 连接地址 的地方
spring:
kafka:
consumer:
#消费者服务器地址
bootstrap-servers: localhost:9092
producer:
#生产者服务器地址
bootstrap-servers: localhost:9092
cloud:
stream:
bindings:
channel1:
destination: event-demo
content-type: text/plain
producer:
partitionCount: 1
来源:CSDN
作者:撸码猿
链接:https://blog.csdn.net/gechaoqing/article/details/78875737