常见解决问题

  1. 异步处理
  2. 流量控制
  3. 服务解耦

常使用的服务

RabbitMQ

老牌的消息队列,使用 Erlang 开发;

  • 优点:轻量级,迅捷;
  • 缺点:对消息堆积的支持不好,大量数据堆积会导致性能急剧下降;吞吐量几万到十几万;
RocketMQ

阿里巴巴开发后来捐给 Apache,使用 java 开发;

  • 优点:性能,稳定,可靠,经历过“双十一” 考验,值得信赖;毫秒级的相应;吞吐量几十万消息;
  • 缺点:生态集成和兼容程度略逊一筹;
  • 适用场景:订单系统,低延迟,金融级别稳定性;
kafka(消息系统,分布式系统)

Linkin 最早开发,使用 scala 和 java 语言开发。设计目的为处理海量日志。

  • 优点:高并发,几十万级吞吐量,延迟控制在 ms 以内;可用性高,兼容性好;可靠性高,可以做到0丢失;吞吐量几十万调消息
  • 缺点:有一定的延迟,不适合在线业务场景;
  • 适用场景:处理海量消息,收集日志,前端买点
ActiveMQ
  • 优点:
  • 缺点:吞吐量低;无分片功能;社区不过越
ZeroMQ

严格说不是消息,是基于消息队列的多线程网络库,如果考虑消息队列的功能集成到系统中可以考虑。

Pulsar

Yahoo 开发成长期,可以关注。

Logo

Kafka开源项目指南提供详尽教程,助开发者掌握其架构、配置和使用,实现高效数据流管理和实时处理。它高性能、可扩展,适合日志收集和实时数据处理,通过持久化保障数据安全,是企业大数据生态系统的核心。

更多推荐