设置RoutingKey
RoutingKey 其 实 是 RabbitMq 的 概 念 , 在 RabbitMq 里 面 其 实 有 好 几 种 Exchange , 在 SpringCloudStream 里面默认就是使用的最通用的 Topic 如果没有配置 RoutingKey,它使用的 RoutingKey 其实就是#,既类似于 fanout 的广播类型 其实也可以使用 RoutingKey 来实现类似于 direct 直连类型
消息生产者
spring:
# Rabbitmq 配置
rabbitmq:
host: 192.168.31.100
port: 5672
username: admin
password: admin
virtual-host: /
publisher-confirm-type: simple
# 启动消息失败返回,比如路由不到队列时触发回调
publisher-returns: true
listener:
simple:
# NONE:自动确认;AUTO:根据情况确认;MANUAL:手动确认
acknowledge-mode: auto
direct:
# NONE:自动确认;AUTO:根据情况确认;MANUAL:手动确认
acknowledge-mode: auto
cloud:
stream:
bindings:
sms-output:
# 指定要使用的 Exchange 名称
destination: ramq.sms.topic
#设置消息类型
content-type: application/json
#设置消息的组名称(同名组中的多个消费者,只会有一个去消费消息.)
group: group1
# 生产者配置:ProducerProperties
producer:
# 分区键的表达式规则,可以根据实际的输出消息规则配置spEL来生成合适的分区键
partition-key-expression: payload
# 消息分区数量
partition-count: 2
# 绑定routing-key
routing-key-expression: 'routing_key_a'
binders:
defaultRabbit:
type: rabbit
消息消费者
spring:
# Rabbitmq 配置
rabbitmq:
host: 192.168.31.100
port: 5672
username: admin
password: admin
virtual-host: /
publisher-confirm-type: simple
# 启动消息失败返回,比如路由不到队列时触发回调
publisher-returns: true
listener:
simple:
# NONE:自动确认;AUTO:根据情况确认;MANUAL:手动确认
acknowledge-mode: auto
direct:
# NONE:自动确认;AUTO:根据情况确认;MANUAL:手动确认
acknowledge-mode: auto
cloud:
stream:
# 当前消费者总的实例数量
instance-count: 2
# 当前消费者的索引
instance-index: 0
bindings:
sms-input:
# 指定要使用的 Exchange 名称
destination: ramq.sms.topic
# 设置消息类型
content-type: application/json
# 设置消息的组名称(同名组中的多个消费者,只会有一个去消费消息.)
group: group1
# 消费者配置:ConsumerProperties
consumer:
# 是否开启消息分区 Default: 'false'
partitioned: true
# 绑定routing-key
binding-routing-key: routing_key_a
binders:
defaultRabbit:
type: rabbit
作者:Jeebiz 创建时间:2023-04-04 11:58
最后编辑:Jeebiz 更新时间:2024-11-01 10:06
最后编辑:Jeebiz 更新时间:2024-11-01 10:06