与我们的售前专家
在线聊天
1、什么是企业消息系统?
企业消息系统(Enterprise Messaging System)是提供实现各种消息协议的软件,如AMQP、MSMQ等。这些协议支持在企业内部的分布式系统和应用程序之间发送和接收消息。企业消息系统是为了解决远程过程调用(RPC)的一些问题而设计的。在RPC架构中,当一个进程想要与远程服务交互时,它首先需要通过服务发现确定服务的位置,然后使用适当的参数远程调用所需的方法。应用程序进行远程调用时,必须等待该调用返回后才能继续处理。
RPC的同步特性使得基于这种架构的应用程序本身就会变慢。另外,远程服务可能会在一段时间内不可用,这就需要应用开发者使用防御性编程来识别服务是否可用,并做出相应的反应。
企业消息系统则通过引入中间服务,解耦了消息发送者和接收者。通过提供一个标准化和可靠的组件来完成解耦,该组件作为处理数据的持久缓冲区,消息的发送者和接收者不必同时在线。
企业消息系统有一些关键特性
异步通信:消息系统允许服务和应用程序以非阻塞的方式相互通信。
消息持久化:RPC的消息只存在于网络上,而发布到消息传递系统中的消息会被持久化,直到它们被成功投递。
消息确认:消息系统必须保留消息,直到所有的接收者都收到信息。因此需要一种机制,使消费者能够确认消息的成功投递。这样,消息系统就可以清除所有成功投递的消息。
消息消费模式
发布订阅模式——支持向一个特定的消息主题生产消息,多个订阅者可能对接收来自特定消息主题的消息感兴趣。
消息队列模式——用于消息生产者和消息消费者之间点到点通信。消息生产者将消息发送到由某个名字标识的特定消费者。这个名字实际上对于消费服务中的一个 队列(Queue),在消息传递给消费者之前它被存储在这个队列中。
消息系统已经存在了几十年,并得到了广泛的应用。让我们回顾一下消息系统的演进。
2、面向消息的中间件
第一类消息系统通常被称为面向消息的中间件(Message Oriented Middleware,MOM),它的设计目的是在运行于不同网络、操作系统等的分布式系统之间提供进程间通信和应用集成。最著名的MOM实现之一是1993年发布的IBM WebSphere MQ。
最早的实现被设计为部署在一台机器上,这意味着系统的可扩展性受限于主机的物理硬件,这台单一的服务器负责处理所有的客户请求和存储所有的消息。这些单服务器MOM系统可以服务的并发生产者和消费者的数量受到网卡带宽的限制,存储容量受到机器上物理磁盘的限制。
通过为MOM系统中增加集群功能,可以解决可扩展性问题。这使得多个单服务实例可以分担消息的处理,并提供一些负载平衡。尽管MOM是集群部署,但实际上每个服务实例负责为所有主题的一个子集提供服务和消息存储。在出现主题"热点"的情况下,分配给该特定主题的实例仍然会成为瓶颈。
这种局限性要求用户必须注意的消息分布,调整主题的分别,使主题与底层物理硬件相匹配,确保负载在集群中均匀分布。更好的做法是,能够将一个主题分布在多台机器上,这正是分布式消息系统所做的事情。
3、企业服务总线
企业服务总线(Enterprise Service Bus, ESB)出现于本世纪初,当时XML是使用基于SOAP的SOA架构应用的首选消息格式。ESB的核心概念是 "消息总线",它是所有应用程序和服务之间的通信通道。这种集中式的架构与面向消息的中间件(MOM)所采用的点对点的集成方式形成了直接对比。
每个应用向 ESB "注册 "自己,并指定一套规则,用于识别它感兴趣的消息,而 ESB 将处理所有必要的逻辑,以便从总线上动态地路由符合这些规则的消息。同样,每个服务不再需要事先知道消息的预定目标,只需将消息发布到 "总线 "上,让它对消息进行路由。每个应用或服务通过ESB发送和接收所有消息,而不必指定它们想要发布和消费的特定主题名称。
ESB在 "流处理 "上迈出了第一步,强调在消息系统内部处理消息的能力。大多数ESB提供消息转换服务,通过XSLT或XQuery,处理发送和接收者之间的消息格式转换。这是对消息系统的一种全新的思考方式,在这之前,消息系统几乎只被用作一种传输通道。现在ESB都支持更先进的计算功能,包括业务流程编排、事件关联和模式匹配等复杂事件处理。
ESB在今天仍然非常流行,但它们是集中式系统,被设计成部署在单台主机上。ESB和MOM一样,同样存在着可扩展性的问题。
4、分布式消息系统
随着Hadoop的普及,分布式计算模式开始被广泛采用。分布式计算最大的一个优势就是,只需在系统中增加新的机器,就可以横向扩展系统。新的系统架构将计算和存储分离,并且分布在多台机器上,不再受单机物理硬件的限制。
消息系统已经向分布式计算模式过渡。当前最流行的 Kafka,以及最近崛起的 Pulsar都采用了分布式计算模式,以满足互联网、大型企业对可扩展性和性能的需求。
在分布式消息系统中,一个主题被分布在多台机器上,以便在消息层提供水平可扩展的存储。将数据分布存储还提供了一些优势,包括数据的冗余和高可用性,增加了消息的存储容量,增加了消息吞吐量,以及消除了系统内的单点故障。
分布式消息系统和集群式单节点系统在架构上的关键区别,是存储层的设计方式。在以前的单节点系统中,主题的消息数据都被存储在一台机器上,这将主题的大小限制在该机器上磁盘容量大小。在分布式消息系统中,数据分布在集群内的多台机器上。
分布式消息系统的另一个好处是,可以有多个broker为给定的主题提供消息服务,通过将负载分散在多台机器上,提高了消息的生产和消费吞吐量。
我们以新近崛起的Pulsar为例,它就是典型的分布式消息系统架构。Pulsar使用了存储和计算分离的云原生架构,数据从 Broker 搬离,存在共享存储内部。上层是无状态 Broker,复制消息分发和服务;下层是持久化的存储层 Bookie 集群。Pulsar存储是分片的,这种构架可以避免扩容时受限制,实现数据的独立扩展和快速恢复。Pulsar解决了Kafka在设计上的一些并不能很好地适应于云原生环境的缺陷,比如消息服务和消息存储的紧耦合、IO并不隔离、基于物理分区的存储模型等。Pulsar还内置了一个轻量级计算引擎,为用户提供了一个部署简单、运维方便的 FaaS(Function as a service)平台。
在人力资源管理部门会出现很多英文字母让人一头雾水不知所云,比如说HC、HR等等,那么它们是哪个英文单词的缩写呢?具体的含义又是什么呢?
在医疗行业中,医药管理系统软件扮演着至关重要的角色。它不仅能够提高药品管理的效率和准确性,还能保障患者安全,同时符合法规要求。一个好用的医药管理系统软件应具备以下特点。 首先,系统的界面应直观易用,允许用户无障碍地进行操作。 复杂的
近日,深圳市帝迈生物技术有限公司(以下简称帝迈)数字化升级项目上线汇报会在深圳圆满召开。帝迈携手金蝶软件(中国)有限公司(以下简称
10月18日,在2023全球工业互联网大会期间,沈阳芯源微电子设备股份有限公司(以下简称“芯源微”)与金蝶软件(中国)有限公司(以下简称“金蝶”)在辽宁沈阳签署战略合作协议。此次合作,将基于金蝶云·星空,建设芯源微运营管控平台,从而实现公司产研一体化、业财一体化,提升公司整体业务水平。
已有 1 个回答 | 1年前
已有 1 个回答 | 1年前
已有 1 个回答 | 1年前
已有 1 个回答 | 1年前
已有 1 个回答 | 1年前
近些年来,各个行业都迎来了数字化转型浪潮,随着企业对于云计算的理解和实践不断深入,基于云计算的分布式架构已经越来越多地成为企业应用构建的首选方案。
现如今,云和云计算技术已经被企业广泛所接受,关于云、云计算、云原生技术都有非常多的话题。云原生技术是目前技术阶段,企业IT系统的最优模式的集合。在全面数字化转型的大潮下,云原生技术犹如推动器,助力传统企业迈入“云时代”的大门。
当今数字共生时代,在新基建背景下,云计算作为其中重要的信息基础设施,是新基建中的关键支撑点之一。而在云计算领域,云原生也正在成为实现新基建的重要抓手,业务应用软件云原生技术正成为企业“上云”后的重要创新方向。