[MQ]消息队列与企业服务总线的简单比较,MQ&ESB
前段时间因需要,回顾了下MQ。将部分整理内容分享备忘:
消息队列(MQ) | 企业服务总线(ESB) | |
定义 | MQ(Message Queue)消息队列。 把要传输的数据放在队列中,通过消息传递队列发送和接收消息数据,实现数据的传递。 |
ESB(Enterprise Service Bus) 是一个集中式的服务总线,它是传统消息中间件技术与XML、Web服务等技术结合的产物。通过ESB,可以实现集成业务处理,监控系统间消息流动,管理系统间交互的业务服务。 >>传统消息中间件指MQ |
解决的问题 | 传递数据 | 集成(企业应用整合) |
常见产品 | ActiveMQ,RabbitMQ,ZeroMQ,Kafka,MetaMQ,RocketMQ | OSB,WebSphere,BizTalk,Orion |
产品形态 | 通常是:运行服务 + 监控API(提供监控数据) | 通常是:设计器、运行服务、监控管理平台 |
消息收发协议 | 相对固定的几种 MQTT、XMPP、Stomp、AMQP、OpenWire |
支持得比较广泛(能适配外部各种主流系统所使用的协议) |
消息传递模式 | 通常支持两种:点对点模式、发布订阅模式 | 能支持更多(消息的整个路由是可编排的,更为灵活) |
消息路由控制 | 弱。具备基本的消息筛选,但不支持复杂控制。 | 强。支持自定义的编排。 |
消息处理 | 不支持(收到是什么消息,发出的数据还是它)。 | 支持。如:格式转换(将hl7转为xml/内容修改)、拆分(收一个消息拆分为多个发出)、聚合(收多个消息合并为一个)、... |
特性支持情况 | 弱,通常交给外部系统自己实现(视具体MQ产品)。 比如,对消息重复处理的限制机制等,提供了基本保障(一些特殊和异常情况是没有处理的),往往需要外部系统自行扩展实现。 |
内置会支持和考虑很多特性,以orion为例,内置支持:重复调用限制机制、熔断机制、隔离机制、消息错误箱/垃圾箱机制等。 |
初步小结 | 1、ESB包含MQ 2、ESB提供了更多的用于系统集成的功能,包括:消息的路由和处理,支持更多通讯协议(从各种不同系统收发消息)。 3、ESB内置了更多的特性,以支撑对消息的路由控制(重复调用限制、熔断、隔离等)。 |
分享请注明出处
本文链接:https://blog.csdn.net/debug_fan/article/details/104993637