这是我参与「第五届青训营 」伴学笔记创作活动的第13天
打基础,记录笔记,赚青豆
一、重点内容
- 消息队列的概念
- 常见的消息队列
- 消息队列的使用
二、详细知识点介绍
消息队列的概念
消息队列提供了一种生产者消费者模型。可以认为它有顺序读写的功能消息队列可以实现如下的一些经典模式。
- 异步、解耦:消息队列是中介者模式和观察者模式的结合。可以把自身多个对其他依赖的调用交给消息队列,让消息队列做相关的操作,同时这也实现了降低耦合度的功能。
- 削峰:由于顺序读写之类等原因,实际上它可以保证比较高的吞吐量, 总的来说,消总队列指保存消息的一个容器,本质是个队列。需要支持吞吐,高并发,并且高可用
常见的消息队列
消息队列-Kafka
- 运维成本高
- 对于负载不均衡的场景,解决方案复杂
- 没有自己的缓存,完全依赖Page Cache
- Controller 和Coordinator和Broker在同一进程中,大量IO会造成其性能下降 消息队列-BMQ
- BMQ的架构模型(解决Kafka存在的问题)
- BMQ读写流程(Failover 机制,写入状态机)
- BMQ高级特性(泳道、Databus、Mirror、Index、Parquet) 消息队列-RocketMQ
- RocketMQ的基本概念(Queue,Tag)
- RocketMQ的底层原理(架构模型、存储模型)
- RocketMQ的高级特性(事务消息、重试和死信队列,延迟队列)
使用消息队列的步骤
创建集群->新增topic->编写生产者逻辑->编写消费者逻辑
三、课后个人总结
今天做了关于消息队列的笔记,还是很重要的,互联网发展太快,使用单体架构的局限。微服务架构解决这个了问题,消息队列可以很好的满足解决服务与服务之间出现耦合、访问控制等问题。