提供消息队列的中间件,提供消息的生产、存储、消费全过程API的软件系统。
二、用途- 限流削峰 ———将系统超量请求暂存,系统日后慢慢处理,避免请求丢失或系统压垮。
- 异步解耦——由于上游系统对下游系统同步调用会降低系统吞吐量与并发度,两层之间同步与异步的转化通过MQ层实现 。
- 数据收集——分布式系统产生海量级数据流,例如日志、监控数据,通过mq进行数据汇聚、分析。
- ActiveMQ:java语言,活跃度低。
- RabbitMQ:erlang语言,二次开发难度大,SpringCloud Netfix一代支持。
- Kafka:Scala/java 语言,存储硬盘量,高吞吐率,常用于大数据实时计算、日志采集等,没有遵循mq协议, SpringCloud Netfix一代支持。
- RocketMQ,java语言,阿里数年双十一使用,性能稳定性高,没有遵循mq协议,自研产品。
- JMS java消息服务
- STOMP 面向流文本等消息协议
- AMQP 高级消息队列
- MQTT 即时通讯协议



