精通springcloud:自定义RabbitMQ代理的连接

本文档介绍了如何自定义Spring Cloud Stream与RabbitMQ的连接,包括启动RabbitMQ代理的Docker命令,以及如何在`application.yml`中配置RabbitMQ的连接参数。通过设置`exchangeType`属性改变交换类型,实现点对点通信。文中还展示了如何为不同的服务定义输入和输出通道,以及如何通过`@StreamListener`和`@EnableBinding`注解实现服务间的通信集成。
摘要由CSDN通过智能技术生成

自定义与RabbitMQ代理的连接

在前面的章节中,已经介绍了使用Docker镜像启动RabbitMQ代理的方法,因而有必要记住这个命令。它将启动一个带RabitMQ的独立Docker容器,可在端口5672下使用,其用户界面Web控制台可在端口15672 下使用。

docker run -d --name rabbit -p 15672:15672 -P 5672:5672 rabbi tnq : management

应使用application.yml文件中的spring.rabbit. *属性覆盖默认的RabbitMQ地址。

spring:

rabbi tmq:

host: 192.168.99.100

port: 5672

默认情况下,Spring Cloud Stream会为通信创建主题交换信息。这种类型的交换更适合发布/订阅交互模型。开发人员也可以使用exchangeType 属性覆盖它,就像在application.yml 的片段中一样,如下所示。

spring:

cloud:

stream:

rabbit:

bindings:

output:

producer:

exchangeTyper direct

input:

consumer:

exchangeType: direct

开发人员应该为order-service服务和account-service服务提供相同的配置设置。这里不必手动创建任何交换信息。如果它不存在,则它会在启动期间由应用程序自动创建。否则,应用程序只会绑定到该交换信息。默认情况下,它创建交换信息时所使用的名称,对于@Input通道就是输入的名称,对于@Output通道就是输出的名称。这些名称可以用springcloud.stream.bindings.output.destination和

spring.cloud.stream.bindings.input.destination属性覆盖,其中的输入和输出都是通道的名称。此配置选项不仅是Spring Cloud Stream功能的“个很好的补充,而且是用于关联服务间通信中的输入和输出目标的键值设置。

 

要解释为什么会发生这种情况也非常简单。在我们的示例中,一方面, order-service 是消息源应用程序,因而它会将消息发送到输出通道。然后,另一方面,account-service 服务将侦听输入通道上的传入消息。如果order- service服务的输出通道和account-service服务的输入通道未引用代理上的相同目标,则它们之间的通信将失败。总之,我们决定使用名称为order-out和orders-in的目的地,并且为order-service服务提供了以下配置。

spring:

cloud :

stream:

bindings :

output:

destination:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值