设计一个MQ的考虑点

转自: https://segmentfault.com/a/1190000004461970

这里总结下MQ的研究点,以及如果要自己设计一个MQ应该考虑的因素。

考虑点

1、远程通信功能

(1)逻辑通信协议:STOMP, AMQP, MQTT, Openwire, SSL, and WebSockets
(2)物理通信协议:TCP、HTTP?

2、目标功能

(1)支持哪几种消息发送模式(P2P、Pub/Sub)
(2)消息接收模型(推、拉)
(3)消息投递策略(at-most-once、at-least-once、exactly-once)
(4)消息事务支持?
(5)消息顺序性?
(6)JMS API支持?(这个不是很关键)
(7)管理API:JMX还是REST?

3、分布式方面考量

(1)高可用(High Availability):Master/Slave?Failover?失败重连?
(2)高吞吐(High Throughout):消息吞吐量、扩容(横向纵向扩展、负载均衡)?
(3)高一致(High Persistence):消息持久化、不重发?

原文地址:https://www.cnblogs.com/yeahwell/p/7677705.html