RabbitMQ 简单记录

RabbitMQ是用Erlang编写的,实现了AMQP协议。

典型应用场景:异步处理、流量削峰、应用解耦、日志处理。

AMQP协议有三部分组成:生产者、消费者、服务端。

AMQP协议的几个重要概念:

  • Server 
  • Connection
  • Channel
  • Message
  • Virtual Host
  • Exchange 
  • Bindding
  • RoutingKey 
  • Queue 

1、Server:用来接受客户端的连接

2、Connection:就是TCP的连接

3、Channel:信道,一个信道代表一个会话任务。message的读写操作是在信道中进行的,一个客户端可以有多个channel通信。

4、Message:消息,就是client和server之间传送的数据,由Properties和Body组成,Properties为外包装,对消息进行修饰(优先级、延迟等),Body为消息内容。

5、Virtual Host:虚拟主机,用于逻辑隔离。一个Virtual Host里可以有多个Exchange和Queue,在同一个Virtual Host里不能有同名的Exchange和Queue。

6、Exchange :交换器,接收消息,按路由规则将message路由到1个或多外queue中。 有4种类型:

  1. direct  该类型的Exchange将所有发送到该Exchange的Message被转发到RoutingKey指定的队列中(路由到Binding和RoutingKey完全匹配的Queue中)。生产者发送的RoutingKey与消费者接收到RoutingKey要完全一致
  2. topic 该类型的Exchange将所有发送到Topic Exchange的Message被转发到所有RoutingKey中指定的Topic的队列。Topic可以通过模糊匹配来接收自己想要的消息,#匹配一个或者多个关键字,*匹配一个关键字。生产者发送的RoutingKey与消费者接收到RoutingKey做到模糊匹配就可以
  3. fanout 该类型不处理RoutingKey,会把所有发送到Exchange的消息路由到所有绑定的Queue中。生产者发送的Message会发送给所有绑定的Queue
  4. header 该类型的Exchange不依赖路由规则来路由消息,而是根据Message中的headers属性进行匹配。生产者发送的Message根据Headers中的配置到指到的Queue。

7、Binding:绑定,Exchange和Queue之间的虚拟连接,Binding可以包含一个或多个RoutingKey。

8、RoutingKey:路由键,用来指定路由规则。生产者将message发给exchange时,exchange就知道把message发送到哪个queue。

9、Queue:消息队列,存储消息,供消费者消费。

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
RabbitMQ 是一个开源的消息队列系统,它使用 AMQP(Advanced Message Queuing Protocol)来进行消息的传递。RabbitMQ 提供了丰富的功能和灵活性,但在使用时可能需要一些封装来简化操作和提高开发效率。 在封装 RabbitMQ 时,可以考虑以下几个方面: 1. 连接管理:封装连接管理可以处理连接的建立和关闭,以及连接的断开重连等情况。这样可以避免在每次使用 RabbitMQ 时都手动创建和关闭连接,提高代码的可维护性。 2. 队列声明和绑定:封装队列的声明和绑定操作可以简化创建队列和绑定交换机的过程。可以提供一个统一的接口,传入队列名称、交换机名称等参数,封装具体的操作细节。 3. 消息发送和接收:封装消息的发送和接收过程可以提供简单易用的接口,隐藏底层的细节。可以提供异步发送和接收的方式,支持回调函数或事件监听机制,方便处理消息的处理逻辑。 4. 错误处理和重试:封装错误处理和重试机制可以增加消息传递的可靠性。当消息发送或接收失败时,可以进行重试或记录错误日志,确保消息不会丢失。 5. 消费者管理:封装消费者的管理可以简化消费者的创建和启动过程。可以提供一个统一的接口,传入消费者处理函数,封装具体的消费者启动和处理逻辑。 6. 消息确认和拒绝:封装消息的确认和拒绝机制可以确保消息的可靠传递。可以提供自动确认或手动确认的方式,确保消息被正确处理。 以上是一些常见的封装思路,具体的封装方式可以根据实际需求和项目情况进行调整和扩展。在封装时,可以参考一些已有的 RabbitMQ 封装库,如 Spring AMQP 等,也可以根据自己的需求进行定制化封装。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值