队列
2016-07-12 13:51:55 0 举报
AI智能生成
队列,又称作排队、列队,是一种先进先出(FIFO)的线性数据结构。它只允许在表的前端(front)进行删除操作,而在表的后端(rear)进行插入操作。进行插入操作的端称为队尾,进行删除操作的端称为队头。队列中没有元素时,称为空队列。在队列这种数据结构中,最先插入的元素将会最先能够被删除。因此队列又称为“先进先出”的线性表,或者后进后出的线性表。
作者其他创作
大纲/内容
何时需要一个消息队列
解耦
一个事务只关系核心流程,其余流程通知即可,不关心处理
比如短信队列、更新索引、刷新缓存
最终一致性
最终一致性,不是强一致性,强一致性要使用分布式事务
最终一致性不是消息队列的必有特性,原则不保证不丢消息的队列实现,都做不到最终一致性
两个系统状态最终保持一致即可
广播
我不关心谁关心这个消息,我只是喊出来
错峰及流控
如何设计一个消息队列
本质上还是RPC
就是一次RPC变成了两次甚至多次RPC
整体思路:生产者--》broker-->消费者
消息的存储
规范一种模式在合适的时间将投递,并维持其可靠性、性能
维护消费的关系
队列基本功能
rpc
高可用
依赖于RPC框架的高可用
依赖于存储的高可用
服务端堆积消息的能力
存储子系统的选择
消费关系的解析
单播
广播
消费类型
push
pull
队列高级特性
可靠性,最终一致性
消息确认
顺序消息
开源队列
企业级
ActiveMQ
HornetQ
互联网级
Kafka
MetaQ
RocketMQ
http://blog.csdn.net/damacheng/article/details/42846549
RabbitMQ
ZeroMQ
http://blog.csdn.net/chszs/article/details/8479072
RocketMQ
0 条评论
下一页