有一些场景需要满足, 同一个特征的数据被同一个实例消费, 比如同一个id的传感器监测数据必须被同一个实例统计计算分析, 否则可能无法获取全部的数据。又比如部分异步任务,首次请求启动task,二次请求取消task,此场景就必须保证两次请求至同一实例
消息生产者
spring:
# Rabbitmq 配置:RabbitProperties
rabbitmq:
# RabbitMQ主机地址。如果设置了address属性,则忽略。
host: 192.168.31.100
# RabbitMQ端口。如果设置了address属性,则忽略。默认为 5672,如果启用了SSL,则默认为5671。
port: 5672
# 访问broker进行身份验证的账号。默认为“guest”。
username: admin
# 访问broker进行身份验证的密码。默认为“guest”。
password: admin
# 连接到broker时要使用的虚拟主机。
virtual-host: /
# 消息发布确认方式,有三个可选值:SIMPLE、CORRELATED、NONE。默认为NONE。
publisher-confirm-type: simple
# 启动消息失败返回,只有设置为true时,消息路由失败才会触发Return回调
publisher-returns: true
# RabbitProperties.Template
template:
# 当exchange无法找到任何一个合适的queue时,将消息return给生产者
mandatory: true
# RabbitProperties.Listener
listener:
simple:
#NONE:自动确认;AUTO:根据情况确认;MANUAL:手动确认
acknowledge-mode: manual
direct:
#NONE:自动确认;AUTO:根据情况确认;MANUAL:手动确认
acknowledge-mode: manual
cloud:
stream:
# 消息中间件绑定配置:BindingProperties
bindings:
sms-output:
# 指定要使用的 Exchange 名称
destination: ramq.sms.topic
#设置消息类型
content-type: application/json
#设置消息的组名称(同名组中的多个消费者,只会有一个去消费消息.)
group: group1
# 生产者配置:ProducerProperties
producer:
# 分区键的表达式规则,可以根据实际的输出消息规则配置spEL来生成合适的分区键
#partition-key-expression: payload
# 分区键的表达式规则,从header中获取分区索引
partition-key-expression: headers['partitionKey']
# 消息分区数量
partition-count: 2
# 消息中间件配置:BinderProperties
binders:
defaultRabbit:
type: rabbit
消息消费者
spring:
# Rabbitmq 配置:RabbitProperties
rabbitmq:
# RabbitMQ主机地址。如果设置了address属性,则忽略。
host: 192.168.31.100
# RabbitMQ端口。如果设置了address属性,则忽略。默认为 5672,如果启用了SSL,则默认为5671。
port: 5672
# 访问broker进行身份验证的账号。默认为“guest”。
username: admin
# 访问broker进行身份验证的密码。默认为“guest”。
password: admin
# 连接到broker时要使用的虚拟主机。
virtual-host: /
# 消息发布确认方式,有三个可选值:SIMPLE、CORRELATED、NONE。默认为NONE。
publisher-confirm-type: simple
# 启动消息失败返回,只有设置为true时,消息路由失败才会触发Return回调
publisher-returns: true
# RabbitProperties.Template
template:
# 当exchange无法找到任何一个合适的queue时,将消息return给生产者
mandatory: true
# RabbitProperties.Listener
listener:
simple:
#NONE:自动确认;AUTO:根据情况确认;MANUAL:手动确认
acknowledge-mode: manual
direct:
#NONE:自动确认;AUTO:根据情况确认;MANUAL:手动确认
acknowledge-mode: manual
cloud:
stream:
# 当前消费者总的实例数量
instance-count: 2
#当前消费者的索引
instance-index: 0
# 消息中间件绑定配置:BindingProperties
bindings:
sms-input:
# 指定要使用的 Exchange 名称
destination: ramq.sms.topic
#设置消息类型
content-type: application/json
#设置消息的组名称(同名组中的多个消费者,只会有一个去消费消息.)
group: group1
# 消费者配置:ConsumerProperties
consumer:
#是否开启消息分区 Default: 'false'
partitioned: true
# 消息中间件配置:BinderProperties
binders:
defaultRabbit:
type: rabbit
作者:Jeebiz 创建时间:2023-03-30 11:57
最后编辑:Jeebiz 更新时间:2024-11-01 10:06
最后编辑:Jeebiz 更新时间:2024-11-01 10:06