RabbitMQ基础知识和一些坑
- 为什么要使用消息中间件?
- 举例还是快递
- 消息中间件的优点
- 1. 解耦
- 减少系统间的相互依赖关系 , 全部通过中间件来互相调用. 生产者只需要保证自己消息发送成功即可, 不需要关注后续的操作是否成功。
- 2. 肖峰
- 防止高峰期系统被打死 ,或者说直接把数据库mysql打死。消费者每秒消费的数值在性能最大化的前提下运行 ,不至于让系统瘫痪。
- 3. 异步
- 本来同步执行需要上千毫秒的操作,可以进行异步化操作,缩短响应时间。
- 1. 解耦
- 消息中间件有什么缺点?
- 1.降低了系统可用性.
- 2.增加了系统的复杂性.
- 需要考虑到消息队列使用中可能会产生的一些问题,比如,消息的丢失,消息的幂等,消息的顺序性等。
- 消息中间件如何选择?
- RabbitMQ是如何实现延迟队列的?
- 通过死信队列dlx + 消息过期时间TTL
- 我们用的RabbitMQ 中有哪些坑?
- 举例快递公司
- 消息的可靠性如何保障
- 消息补偿机制
-
-
- 这种消息补偿机制有什么隐患?
- 消费者消费成功回调消息也有可能会失败 , 这样会导致生产者重复发送相同的消息到queue1中 , 下面解决消息幂等性的问题 .
- 这种消息补偿机制有什么隐患?
- 消息的幂等性如何保障
- 乐观锁机制
- 生产者在发送消息的时候, 同事携带版本信息 vision . 当消费者接收到消息 , 更新数据库的时候 , 校验版本信息 . 版本不对则无法成功更新 .
- update x = 1 , vision= 2 from test where x = 0 , vision= 1
-