8.3.1 在 Spring 中设置 Kafka
要开始使用 Kafka 进行消息传递,需要将适当的依赖项添加到构建中。但是,与 JMS 和 RabbitMQ 不同,Kafka 没有 Spring Boot starter。不过还是只需要一个依赖:
<dependency>
<groupId>org.springframework.kafka</groupId>
<artifactId>spring-kafka</artifactId>
</dependency>
这个依赖项将 Kafka 所需的一切都带到项目中。更重要的是,它的存在将触发 Kafka 的 Spring Boot 自动配置,它将在 Spring 应用程序上下文中生成一个 KafkaTemplate。你所需要做的就是注入 KafkaTemplate 并开始发送和接收消息。
然而,在开始发送和接收消息之前,应该了解一些在使用 Kafka 时会派上用场的属性。具体来说就是,KafkaTemplate 默认在 localhost 上运行 Kafka broker,并监听 9092 端口。在开发应用程序时,在本地启动 Kafka broker 是可以的,但是在进入生产环境时,需要配置不同的主机和端口。
spring.kafka.bootstrap-servers 属性设置一个或多个 Kafka 服务器的位置,用于建立到 Kafka 集群的初始连接。例如,如果集群中的 Kafka 服务器之一运行在 Kafka .tacocloud.com 上,并监听 9092 端口,那么可以在 YAML 中像这样配置它的位置:
spring:
kafka:
bootstrap-servers:
- kafka.tacocloud.com:9092
但是注意 spring.kafka.bootstrap-servers 属性是复数形式,它接受一个列表。因此,可以在集群中为它提供多个 Kafka 服务器:
spring:
kafka:
bootstrap-servers:
- kafka.tacocloud.com:9092
- kafka.tacocloud.com:9093
- kafka.tacocloud.com:9094
在项目中设置了 Kafka 之后,就可以发送和接收消息了。首先来看看 KafkaTemplate 将 Order 对象发送给 Kafka。
复制链接