2.理解消息通信

本文介绍了消息通信的基本概念,重点讲解了AMQP中的交换器、队列和绑定。详细阐述了RabbitMQ的四种交换器类型:direct、fanout、topic和headers。讨论了虚拟主机的作用以及消息持久化的方法,确保服务重启后仍能恢复队列和交换器。最后,文章概述了消息从生产者发布到消费者接收的完整生命周期,包括发布者和消费者的角色以及确认功能的使用。
摘要由CSDN通过智能技术生成

消息通信概念

AMQP元素

 上图中展示了三种topic、fanout、direct交换器,Q1、Q2等则是一个个消息队列,包含了多个消息。

交换器、队列、绑定

生产者把消息发布到交换器上;消息最终到达队列,并被消费者接受;绑定决定了消息如何从路由器路由到特定的队列

队列:

  • 为消息提供了处所
  • 对负载均衡来说,队列是绝佳的方案。只需要附加一堆消费者,并让RabbitMQ以循环的方式均匀地分配发来的消息。
  • 队列是Rabbit中消息的最后的终点

交换器-四种类型

  • direct:如果路由键匹配,消息就会被投递到对应的队列。

服务器必须实现direct类型交换器,包含一个空白字符串名称的默认交换器。当声明一个队列时,他会自动绑定到默认交换器,并以队列名称作为路由键。

  • fanout

 当你发送一条消息到fanout交换器时,他会把消息投递给所有附加在此交换器上的队列。这允许你对单条消息做不同的反应。举例来说。一个web应用程序可能需要在用户上传新的图片时,用户相册必须清除缓存,同时用户应该得到些积分奖励。你可以将两个队列绑定到图片上传交换器上,一个用于清除缓存,另一个用于增加用户积分。

  • topic

 它是的来自不同源头的消息能够到达同一队列。以Web应用程序日志系统为例。你拥有多个不同的日志级别,例如error、info、和warning。与此同时,你的应用程序分为以下几个模块,user、shopping、score等,如果在发送消息的动作失败时,你想要报告一个error,参见如上

  • headers 允许你匹配消息的header而非路由键,除此之外,和direct交换器完全一直,
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

灵湖映北辰

年轻人,要讲武德!!!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值