首页 > 编程知识 正文

消息中间件有哪些(消息中间件和消息队列)

时间:2023-05-05 04:12:54 阅读:69161 作者:2411

消息中间件比较和可选概述ActiveMQKafkaRocketMQRabbitMQ

概要

消息队列正在成为企业IT系统中通信的核心手段。 它具有低耦合、可靠传递、广播、流量控制、最终匹配等一系列功能,已成为异步RPC的主要手段之一。 目前市场上有许多主要的消息中间件,包括老牌ActiveMQ、RabbitMQ、热门Kafka和阿里巴巴自主开发的RocketMQ。

ActiveMQ 介绍

它属于Apache公司,是以前最受欢迎、功能强大的开源消息总线,是完全支持JMS规范的消息中间件。

由于有丰富的API、多种集群构建模式,他成为行业老牌信息中间件,在中小企业得到广泛应用。

性能与其他消息中间件相比不太突出,处理大数据、高并发性等无法很好地解决。性能

面对超大规模的并发,会出现各种小问题,如阻塞、消息积累过多导致的延迟等

存储:使用默认采用的KADB内存存储方式集群架构模式1、Master-Slave模式(主模式) zookeeper调整多个节点,一个主节点主节点断开后,使用zookeeper

* 2、网络模式:

该模式实际上是两组备用模式的集成,中间通过网络网关连接构成,可以实现分散的集群

注: ActiveMQ经常用于小型企业和不并行的业务,性能不是特别好

Kafka 介绍

kafaka是LinkedIn的开源分布式发布-订阅消息传递系统,目前属于Apache的顶级项目。

性能

Kafaka的主要特点是基于Pull模式处理消息消耗并追求高吞吐量,第一个目的是用于日志收集和传输,以方便大数据的处理和清理。 从0.8版开始就支持复制,不支持事务,对消息重复、丢失和错误没有严格要求,适用于生成大量数据的internet服务的数据收集业务。

如果对数据没有特别严格的要求,建议使用Kafaka。 Kafaka的性能最高,要求高性能。 即使是廉价的服务器,也支持每秒100K条数据的吞吐量。 其高性能读写主要依赖于基于系统的PageCache,kafaka不通过内存同步磁盘和数据,而只是使用内存的存储。

集群架构模式

它也主要依赖zookeeper进行协调和管理,允许在每个节点的kafaka之间复制备份。 如果部署方案优化了,该数据也不会丢失太多。 如果整个地区的节点锁定,该数据将丢失。

注: Kafka性能很好,但不能保证数据安全,经常用于处理大量信息,如日志收集、数据行为统计分析等,而不太重要

RocketMQ 介绍

RocketMQ是蚂蚁的开源消息中间件,目前已成为Apache的顶级项目。 它是纯Java开发,具有高吞吐量、高可用性,适用于大型分布式系统APP应用。 RocketMQ构想起源于Kafka,优化了消息的可靠传输和事务性,目前阿里集团包括交易、充值、流量计算、消息推送、日志流处理、binglog分发等一直使用到2.0版的zookeeper进行了协调,从3.0版开始退出zookeeper,自己构建并管理了一组NameServer。

性能

高吞吐量、高性能、保证信息顺序,提供丰富的消息提取和处理模式,高效的定位者可以进行水平展开,承载实时消息订阅机制、上亿级消息的积累能力

集群架构模式

主从模式、双主从模式、双主从模式、多主从模式画笔策略:并行双写、异步复制

注:由于Rocketmq性能最高、数据安全最高、体系结构模式多样、维护成本高、需要专业的MQ运维团队,而且其商业版收费,因此很多功能都不是免费版提供的

RabbitMQ 介绍

RabbitMQ是使用Erlang语言开发的开源消息队列系统,基于高级消息服务队列协议(amqp )协议实现。 AMQP的主要特点是面向消息、队列、路由(包括点对点和发布/订阅)、可靠性和安全性。 AMQP协议在企业系统中广泛使用,在对数据一致性、稳定性和可靠性要求较高的场景中,对性能和吞吐量的要求仍在持续。性能

其性能比kafka差,但比ActiveMQ强得多; 数据可靠性为集群架构模式

可扩展性高,可以由多个节点构成集群,也可以根据实际业务状况动态地扩展集群内的节点; 高可用性队列可以在群集中的计算机上设置镜像,因此即使某些节点出现问题,团队也可以使用。 注意: RabbitMQ适用于大多数企业和业务需求,性能不如kafka,但也不错。 那个数据安全性非常高

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。