MQ基础之消息流转模型

Posted by SFHJavaer on 2024-12-12
Estimated Reading Time 1 Minutes
Words 440 In Total
Viewed Times

virtual代表一个资源隔离独立的虚拟空间

:::info
不管是生产还是消费都是Connection,一个连接对应n个通道Channel(一般只用一个),同时Channel对应到某个虚拟空间的某个交换机上

当然也可以直接发送到queue上,exchange支持路由策略

:::

两方都有connection(Channel),只不过生产者连接负责消息的发送,消费者连接负责消息的监听与消费

开发主要就是将producer和consumer用Java代码来实现,当然配置消息如何流转也是编码一部分

编码

声明交换机

factory创建Connection和createChannel之后,比如是生产者那么再创建一个Exchange

注意如果交换机不存在则自动创建,已存在,那么信息必须和已存在交换机完全一致,不然Exception

附加参数在管理界面上都有可视化选项

声明队列

参数分别为:队列名、是否持久化、是否本Connection独占(其他连接会报错)、无Connection时自动删除

消费模式:推/拉

一般情况下使用推,原因是消费者不确定服务端是否有消息,一直拉浪费资源,所以建议推模式,推送到consumer直接消费即可

消息监听与回溯(回调)

目的是为了建立可靠的消息链路,比如消息发送的回调失败,那么应当处触发发送失败、连接关系、通道关闭等监听然后回调其进行补救措施

原因是RabbitMQ是分 batch fsync2 磁盘

可以通过配置各种参数i,去将消息与生产消费者相关联,用于构建安全的消息体系(资料少)


如果您喜欢此博客或发现它对您有用,则欢迎对此发表评论。 也欢迎您共享此博客,以便更多人可以参与。 如果博客中使用的图像侵犯了您的版权,请与作者联系以将其删除。 谢谢 !