rabbitMq使用心得

基础

producer broker vhost exchange queen customer

  1. 路由:更灵活,
  2. 权限管理
  3. 高可用队列
  4. TTL:

exchange在和queue进行binding时会设置routingkey,这个routingkey是通配符

然后我们在将消息发送到exchange时会设置对应的routingkey,这个routingkey不是通配符

   见下图:1、例如发送者:routingkey:first.green.fast,

                 2、对列和交换器binding:*.green.*、*.*.fast、*.*.fast

                3、发送消息时,到交换器时,会匹配队列绑定的通配符,确认当前队列是否可以接受消息

                4、监听消息时,只需要设置queen、eachange,无需设置routingkey(待选项,用于初始化绑定),使用springboot的注解时,很容易混淆routingkey,切记

见:https://zhuanlan.zhihu.com/p/37198933

 

 

  1. direct 直连模式  即:==
  2. topic  # *:通配符 主题模式  即:like
  •   * 仅代表一个单词 
  •    # 代表任意个单词 
  1. 广播
基于AMQP:高级消息队列协议,是一个工作于应用层的协议
 
 
 

环境:springboot

监听消息
@RabbitListener(bindings = {@QueueBinding(value = @Queue(value = OmsConstantsUtil.QUEEN_OMS_CALLBACK), exchange = @Exchange(value = OmsConstantsUtil.EXCHANGE_OMS_CALLBACK), key = OmsConstantsUtil.KEY_OMS_CALLBACK)})

 发布消息:

@Autowired
private RabbitTemplate rabbitTemplate;

rabbitTemplate.convertAndSend(OmsConstantsUtil.EXCHANGE_OMS_CALLBACK, OmsConstantsUtil.KEY_OMS_CALLBACK, message);

高级应用:
  1. 延时队列  (削峰)
  2. 死信队列  : 可以实现延时队列

            比如:消息超时,消息被消费者拒绝并且未设置重回队列队列达到最大长度,超过了 Max length

       

可靠性投递经验

  发送端:服务端确认接收机制

    事务模式:但吞吐量太低,同步阻塞模式

   单条确认模式:

   批量确认模式:先发送,再确认  有风险

     边发送,边确认

  路由保证:

     路由到队列

   消费者消费环节:

     自动ACK

       接收到信息,就发送ACK

    手动ACK

      

问题:

channel:减少TCP连接,类似 连接池
Vhost:分区,例如:local dev
无法被路由的消息:直接丢弃

如何发给多个服务器消息
  定义多个connectionfactory template listenerContainer

如何实现延迟队列
  TTL + 死信队列
   plugin插件
 
 如何提高消费速度
    增加消费者
    
  动态增加消费者

      container
     
   保证消息的顺序性
       一个队列只有一个消费者
       
大量消息堆积
   

MQ选型维度
  1、使用 管理
  2、 性能 并发 吞吐 消息堆积
   3、功能
4、可用  持久化 集群   

如何设计MQ
   首先 存储、转发 通信协议 推或拉  等功能性需求
   其次:高可用  等非功能需求

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值