接入RabbitMQ
RabbitMQ是实现了AMQP(Advanced Message Queue Protocal)的开源消息代理软件,也是大家平时项目中应用最广泛的消息分发组件之一。
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-bus-amqp</artifactId>
</dependency>
点进去查看这个依赖的pom,你会发现它依赖了spring-cloud-starter-stream-rabbit
,也就是说Stream组件才是真正被用来发送广播消息到RabbitMQ的,Bus这里只是帮我们封装了整个消息的发布和监听动作。
spring:
rabbitmq:
host: localhost
port: 5672
username: guest
password: guest
上面配置分别指定了RabbitMQ的地址、端口、用户名和密码,以上均采用RabbitMQ中的默认配置。
接入Kafka
要使用Kafka来实现消息代理,只需要把上一步中引入的spring-cloud-starter-bus-amqp依赖替换成spring-cloud-starter-bus-kafka依赖
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-bus-kafka</artifactId>
</dependency>
如果Kafka和ZooKeeper都运行在本地,并且采用了默认配置,那么不需要做任何额外的配置,就可以直接使用。但是在生产环境中往往Kafka和ZooKeeper会部署在不同的环境,所以就需要做一些额外配置:
属性 | 含义 |
---|---|
spring.cloud.stream.kafka.binder.brokers | Kafka服务节点(默认localhost) |
spring.cloud.stream.kafka.binder.defaultBrokerPort | Kafka端口(默认9092) |
spring.cloud.stream.kafka.binder.zkNodes | ZooKeeper服务节点(默认localhost) |
zspring.cloud.stream.kafka.binder.defaultZkPort | ZooKeeper端口(默认2181) |