为什么要用消息队列?
-
解耦
-
冗余
-
拓展性
-
灵活性&峰值处理能力
-
可恢复性
-
送达保证
-
顺序保证
-
缓冲(发送数据不可能实时,进行缓冲。保证最快送达)
-
异步通信
常用消息队列
- RabbitMQ:支持协议多,挒如AMQP、XMPP、SMTP、STOMP。对路由、负载均衡、数据持久化很好支持
- Redis:轻量,读写性能优异
- ZeroMQ:号称最快的消息队列系统,针对大吞吐量需求
- kafka:Apache下子项目,高性能跨语言分布式发布/订阅消息队列系统。特性:快速持久化、高吞吐量、完全的分布式系统、自动实现负载均衡
- ActiveMQ:Apache下子项目。类似于ZeroMQ,能与代理人点对点接入