RabbitMq和ZeroMq
RabbitMQ和ZeroMQ都是极好的消息中间件,下我会对这两个消息中间件做一个比較,个人理解不喜勿喷。
RabbitMQ是AMQP协议率先的一个实现,它实现了代理(Broker)架构,意味着消息在发送到client之前能够在中央节点上排队。此特性使得RabbitMQ易于使用和部署,适宜于非常多场景如路由、负载均衡或消息持久化等,用消息队列仅仅需几行代码就可以搞定。可是,这使得它的可扩展性差,速度较慢,由于中央节点添加了延迟,消息封装后也比較大。
ZeroMQ是一个很轻量级的消息系统,专门为高吞吐量/低延迟的场景开发,在金融界的应用中常常能够发现它。与RabbitMQ相比,ZeroMQ支持很多高级消息场景,可是你必须实现ZeroMQ框架中的各个块(比方Socket或Device等),ZeroMQ很灵活。
1、持久化比较:
zeroMq 不支持
rabbitMq 支持
持久化消息主要是指:MQ down或者MQ所在的服务器down了,消息不会丢失的机制。
2、技术点:可靠性、灵活的路由、集群、事务、高可用的队列、消息排序、问题追踪、可视化管理工具、插件系统、社区
rabbitMq 最优
zeroMq 次之
3、高并发:
从实现语言来看,RabbitMQ最高,原因是它的实现语言是天生具备高并发高可用的erlang语言。
从以上综合来看,个人会优先选择rabbitMq,但存在即是道理,还要看个人的应用场景。