消息队列(MQ)

一、作用

1、解耦(订单支付成功,减库存,加积分...)

2、异步处理,提高吞吐量

3、流量削峰

4、延迟处理(限时订单)

5、持久化

......

二、Rabbit

1、工作模式

  ①、简单模式 :一个生产者对应一个消费者

  ②、工作模式:一个生产者对应多个消费者

  ③、订阅模式:通过broker服务器发送信息到交换机,交换机在进行分发

  ④、路由模式:例如信息的分发,公司有多个职位,领导跟员工的权限肯定不一样,这时就可以使用路由模式

  ⑤、主题模式:相对路由的精准匹配,主题模式有点像模糊查询

  ⑥、RPC模式:客户端请求服务端,服务端处理完数据再返回给客户端

2、使用rabbit产生的问题

  1、如何保证消息的可靠性?

    ①、生产者丢失消息

      1.Transaction模式

      2.confirm机制

    ②、消费者丢失信息

      ACK确认机制

    ③、如何避免重复消费?

      幂等性

  2、消息堆积问题的解决方案?

    ①、队列上绑定多个消费者,提高消费速度

    ②、使用惰性队列,可以在mq中保存更多消息

三、Rocket

四、Kafka

五、总结

 

posted @ 2023-09-23 20:04  ki1616  阅读(8)  评论(0编辑  收藏  举报