热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

消息中间件_主流消息中间件优劣:ActiveMQ,RabbitMQ,Kafka,RocketMQ

    1.异步处理的时候,消息中间件简化耦合消息发送者和消费者消费者的耦合关系(类似ESB),当然也有一些辅助作用,比如联

    1.异步处理的时候,消息中间件简化耦合消息发送者和消费者消费者的耦合关系(类似ESB),当然也有一些辅助作用,比如联调简便、日志、排错等。


    2.流量削峰,流控的时候,可以采用消息中间件做缓存,减少后端的压力。











主流消息中间件优劣:ActiveMQ,RabbitMQ,Kafka,RocketMQ


消息中间件基本结构







主流消息中间件优劣:ActiveMQ,RabbitMQ,Kafka,RocketMQ

PTP点对点


主流消息中间件优劣:ActiveMQ,RabbitMQ,Kafka,RocketMQ

Pub/Sub发布订阅








    消息中间件基本结构划分消息服务器、消息生产者、消息消费者、主体、队列和消息体5部分,大同小异,基本上这样划分,所以基本上使用过一种消息中间件的研发,其他也就会用了,只是再适用一下。












主流消息中间件优劣:ActiveMQ,RabbitMQ,Kafka,RocketMQ


主流消息中间对比











    随着云大物移的发展消息中间件也得到了长足发展,其分两类来源1.商业版2.开源版本 。在早些时候,国内这类中间件基本上都被国外商业版垄断,大家基本上都需要采购或盗版,但随着开源社区力量的发展,现在基本上大家都采用开源社区版或者是基于开源社区版定制的版本。














1.Kafka






目前应用最广泛的消息中间件,kafka 功能强大,灵活度高,但是要想运营和维护好,就需要投入更多的技术运维,它自身仅仅提供较少的核心功能,但是提供超高的吞吐量,ms 级的延迟,极高的可用性以及可靠性,而且分布式可以任意扩展。同时 Kafka 最好是支撑较少的 topic 数量即可,保证其超高吞吐量。Kafka 唯一的一点劣势是有可能消息重复消费,那么对数据准确性会造成极其轻微的影响,在大数据领域中以及日志采集中,这点轻微影响可以忽略。Kafka天然适合大数据实时计算以及日志收集。





主流消息中间件优劣:ActiveMQ,RabbitMQ,Kafka,RocketMQ









2.RocketMQ






RocketMQ 开源参照kafka的设计思路,根据自身的需要自行研发并开源,源代码我们可以直接阅读,然后可以定制自己公司的MQ,并且 RocketMQ 有阿里巴巴的实际业务场景的实战考验。 这个上手简单,但是灵活度不如kafka高,但是小公司和企业更建议应用,因为产品成熟度高,阿里只提供了MQ的核心能力,外围可以自由定制,特别适合小团队维护。












3.Active








ActiveMQ是由Apache出品的一款开源消息中间件,旨在为应用程序提供高效、可扩展、稳定、安全的企业级消息通信。ActiveMQ实现了JMS 1.1 并提供了很多附加的特性,比如JMX管理、主从管理、消息组通信、消息优先级、延迟接收消息、虚拟接收者、消息持久化、消息队列监控等。












4.RabbitMQ






RabbitMQ是一个由Erlang语言开发的基于AMQP标准的开源实现。RabbitMQ最初起源于金融系统,用于在分布式系统中存储转发消息,在易用性、扩展性、高可用性等方面表现不俗,RabbitMQ最大的优势在于提供了比较灵活的消息路由策略、高可用性、可靠性以及丰富的插件、多种平台支持和完善的文档。不过,由于AMQP协议本身导致它的实现比较重量,从而使得与其他MQ (比如Kafka) 对比其吞吐量处于下风。













个人建议
























    现在不管是企业数字化转型还是开发大型系统,一定要采用类似MQ中间件技术,减少日后变更带来的IT负债,至于选择是购买还是开源实现,取决于公司现状,如果要自研产品,肯定采用开源,如果是企业应用那可以开源社区或采购,主要取决于技术团队。


    如果是云大物移的产品优选选择kafka ,确实功能,灵活性更加有利于日后发展和扩展,当然也取决于团队技术规模和实力。如果是小产品那建议Rocket。


    如果是企业自身应用或者是采用,那还是Rocket,因为产品成熟,功能强大,汉语资料丰富,且需要较少的维护团队,直接拿来就可以用。







推荐阅读
  • 2021最新总结网易/腾讯/CVTE/字节面经分享(附答案解析)
    本文分享作者在2021年面试网易、腾讯、CVTE和字节等大型互联网企业的经历和问题,包括稳定性设计、数据库优化、分布式锁的设计等内容。同时提供了大厂最新面试真题笔记,并附带答案解析。 ... [详细]
  • 云原生应用最佳开发实践之十二原则(12factor)
    目录简介一、基准代码二、依赖三、配置四、后端配置五、构建、发布、运行六、进程七、端口绑定八、并发九、易处理十、开发与线上环境等价十一、日志十二、进程管理当 ... [详细]
  • TiDB | TiDB在5A级物流企业核心系统的应用与实践
    TiDB在5A级物流企业核心系统的应用与实践前言一、业务背景科捷物流概况神州金库简介二、现状与挑战神州金库现有技术体系业务挑战应对方案三、TiDB解决方案测试迁移收益问题四、说在最 ... [详细]
  • 云计算时代下的传统媒体升级之路
    近年来,随着5G、移动互联网、物联网等技术的发展,加速了各行各业的数字化转型,传统媒体也在新技术的驱动下迎来了升级。在传统媒体到新媒体的转 ... [详细]
  • 你知道Kafka和Redis的各自优缺点吗?一文带你优化选择,不走弯路 ... [详细]
  • 云原生边缘计算之KubeEdge简介及功能特点
    本文介绍了云原生边缘计算中的KubeEdge系统,该系统是一个开源系统,用于将容器化应用程序编排功能扩展到Edge的主机。它基于Kubernetes构建,并为网络应用程序提供基础架构支持。同时,KubeEdge具有离线模式、基于Kubernetes的节点、群集、应用程序和设备管理、资源优化等特点。此外,KubeEdge还支持跨平台工作,在私有、公共和混合云中都可以运行。同时,KubeEdge还提供数据管理和数据分析管道引擎的支持。最后,本文还介绍了KubeEdge系统生成证书的方法。 ... [详细]
  • 本文介绍了Java工具类库Hutool,该工具包封装了对文件、流、加密解密、转码、正则、线程、XML等JDK方法的封装,并提供了各种Util工具类。同时,还介绍了Hutool的组件,包括动态代理、布隆过滤、缓存、定时任务等功能。该工具包可以简化Java代码,提高开发效率。 ... [详细]
  • Oracle优化新常态的五大禁止及其性能隐患
    本文介绍了Oracle优化新常态中的五大禁止措施,包括禁止外键、禁止视图、禁止触发器、禁止存储过程和禁止JOB,并分析了这些禁止措施可能带来的性能隐患。文章还讨论了这些禁止措施在C/S架构和B/S架构中的不同应用情况,并提出了解决方案。 ... [详细]
  • 携手生态伙伴,希捷发布银河X16数据存储方案
    2019年6月26日,希捷科技在北京举办“容海量数据筑云之基石”——2019希捷科技企业级生态合作伙伴沟通会暨银河ExosX16新品发布会。在本次发布会上࿰ ... [详细]
  • 14亿人的大项目,腾讯云数据库拿下!
    全国人 ... [详细]
  • 什么是大数据lambda架构
    一、什么是Lambda架构Lambda架构由Storm的作者[NathanMarz]提出,根据维基百科的定义,Lambda架构的设计是为了在处理大规模数 ... [详细]
  • BPM是什么软件?1、BPM是BusinessProcessManagement的简称,译为业务流程管理,它是一种以规范化的构造端到端的卓越业务流程为中心以持续的提高组织业务绩效为 ... [详细]
  • 讨伐Java多线程与高并发——MQ篇
    本文是学习Java多线程与高并发知识时做的笔记。这部分内容比较多,按照内容分为5个部分:多线程基础篇JUC篇同步容器和并发容器篇线程池篇MQ篇本篇 ... [详细]
  • Java开发面试问题,2021网易Java高级面试题及答案,实战案例
    前言大厂面试真题向来都是各大求职者的最佳练兵场,而今天小编带来的便是“HUAWEI”面经!这是一次真实的面试经历,虽然不是我自己亲身经历 ... [详细]
  • 前言最近一段时间在整公司项目里一个功能的优化,用到了多线程处理。期间也是踩了不少的坑,在这里想说下我遇到的问题和注意事项。以及怎样知道启动的那些多线程都 ... [详细]
author-avatar
kiss爱倪
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有