1、什么是企業(yè)消息系統(tǒng)?
企業(yè)消息系統(tǒng)(Enterprise Messaging System)是提供實現(xiàn)各種消息協(xié)議的軟件,如AMQP、MSMQ等。這些協(xié)議支持在企業(yè)內(nèi)部的分布式系統(tǒng)和應用程序之間發(fā)送和接收消息。企業(yè)消息系統(tǒng)是為了解決遠程過程調(diào)用(RPC)的一些問題而設計的。在RPC架構(gòu)中,當一個進程想要與遠程服務交互時,它首先需要通過服務發(fā)現(xiàn)確定服務的位置,然后使用適當?shù)膮?shù)遠程調(diào)用所需的方法。應用程序進行遠程調(diào)用時,必須等待該調(diào)用返回后才能繼續(xù)處理。
RPC的同步特性使得基于這種架構(gòu)的應用程序本身就會變慢。另外,遠程服務可能會在一段時間內(nèi)不可用,這就需要應用開發(fā)者使用防御性編程來識別服務是否可用,并做出相應的反應。
企業(yè)消息系統(tǒng)則通過引入中間服務,解耦了消息發(fā)送者和接收者。通過提供一個標準化和可靠的組件來完成解耦,該組件作為處理數(shù)據(jù)的持久緩沖區(qū),消息的發(fā)送者和接收者不必同時在線。
企業(yè)消息系統(tǒng)有一些關(guān)鍵特性
異步通信:消息系統(tǒng)允許服務和應用程序以非阻塞的方式相互通信。
消息持久化:RPC的消息只存在于網(wǎng)絡上,而發(fā)布到消息傳遞系統(tǒng)中的消息會被持久化,直到它們被成功投遞。
消息確認:消息系統(tǒng)必須保留消息,直到所有的接收者都收到信息。因此需要一種機制,使消費者能夠確認消息的成功投遞。這樣,消息系統(tǒng)就可以清除所有成功投遞的消息。
消息消費模式
發(fā)布訂閱模式——支持向一個特定的消息主題生產(chǎn)消息,多個訂閱者可能對接收來自特定消息主題的消息感興趣。
消息隊列模式——用于消息生產(chǎn)者和消息消費者之間點到點通信。消息生產(chǎn)者將消息發(fā)送到由某個名字標識的特定消費者。這個名字實際上對于消費服務中的一個 隊列(Queue),在消息傳遞給消費者之前它被存儲在這個隊列中。
消息系統(tǒng)已經(jīng)存在了幾十年,并得到了廣泛的應用。讓我們回顧一下消息系統(tǒng)的演進。
2、面向消息的中間件
第一類消息系統(tǒng)通常被稱為面向消息的中間件(Message Oriented Middleware,MOM),它的設計目的是在運行于不同網(wǎng)絡、操作系統(tǒng)等的分布式系統(tǒng)之間提供進程間通信和應用集成。最著名的MOM實現(xiàn)之一是1993年發(fā)布的IBM WebSphere MQ。
最早的實現(xiàn)被設計為部署在一臺機器上,這意味著系統(tǒng)的可擴展性受限于主機的物理硬件,這臺單一的服務器負責處理所有的客戶請求和存儲所有的消息。這些單服務器MOM系統(tǒng)可以服務的并發(fā)生產(chǎn)者和消費者的數(shù)量受到網(wǎng)卡帶寬的限制,存儲容量受到機器上物理磁盤的限制。
通過為MOM系統(tǒng)中增加集群功能,可以解決可擴展性問題。這使得多個單服務實例可以分擔消息的處理,并提供一些負載平衡。盡管MOM是集群部署,但實際上每個服務實例負責為所有主題的一個子集提供服務和消息存儲。在出現(xiàn)主題"熱點"的情況下,分配給該特定主題的實例仍然會成為瓶頸。
這種局限性要求用戶必須注意的消息分布,調(diào)整主題的分別,使主題與底層物理硬件相匹配,確保負載在集群中均勻分布。更好的做法是,能夠?qū)⒁粋€主題分布在多臺機器上,這正是分布式消息系統(tǒng)所做的事情。
3、企業(yè)服務總線
企業(yè)服務總線(Enterprise Service Bus, ESB)出現(xiàn)于本世紀初,當時XML是使用基于SOAP的SOA架構(gòu)應用的首選消息格式。ESB的核心概念是 "消息總線",它是所有應用程序和服務之間的通信通道。這種集中式的架構(gòu)與面向消息的中間件(MOM)所采用的點對點的集成方式形成了直接對比。
每個應用向 ESB "注冊 "自己,并指定一套規(guī)則,用于識別它感興趣的消息,而 ESB 將處理所有必要的邏輯,以便從總線上動態(tài)地路由符合這些規(guī)則的消息。同樣,每個服務不再需要事先知道消息的預定目標,只需將消息發(fā)布到 "總線 "上,讓它對消息進行路由。每個應用或服務通過ESB發(fā)送和接收所有消息,而不必指定它們想要發(fā)布和消費的特定主題名稱。
ESB在 "流處理 "上邁出了第一步,強調(diào)在消息系統(tǒng)內(nèi)部處理消息的能力。大多數(shù)ESB提供消息轉(zhuǎn)換服務,通過XSLT或XQuery,處理發(fā)送和接收者之間的消息格式轉(zhuǎn)換。這是對消息系統(tǒng)的一種全新的思考方式,在這之前,消息系統(tǒng)幾乎只被用作一種傳輸通道?,F(xiàn)在ESB都支持更先進的計算功能,包括業(yè)務流程編排、事件關(guān)聯(lián)和模式匹配等復雜事件處理。
ESB在今天仍然非常流行,但它們是集中式系統(tǒng),被設計成部署在單臺主機上。ESB和MOM一樣,同樣存在著可擴展性的問題。
4、分布式消息系統(tǒng)
隨著Hadoop的普及,分布式計算模式開始被廣泛采用。分布式計算最大的一個優(yōu)勢就是,只需在系統(tǒng)中增加新的機器,就可以橫向擴展系統(tǒng)。新的系統(tǒng)架構(gòu)將計算和存儲分離,并且分布在多臺機器上,不再受單機物理硬件的限制。
消息系統(tǒng)已經(jīng)向分布式計算模式過渡。當前最流行的 Kafka,以及最近崛起的 Pulsar都采用了分布式計算模式,以滿足互聯(lián)網(wǎng)、大型企業(yè)對可擴展性和性能的需求。
在分布式消息系統(tǒng)中,一個主題被分布在多臺機器上,以便在消息層提供水平可擴展的存儲。將數(shù)據(jù)分布存儲還提供了一些優(yōu)勢,包括數(shù)據(jù)的冗余和高可用性,增加了消息的存儲容量,增加了消息吞吐量,以及消除了系統(tǒng)內(nèi)的單點故障。
分布式消息系統(tǒng)和集群式單節(jié)點系統(tǒng)在架構(gòu)上的關(guān)鍵區(qū)別,是存儲層的設計方式。在以前的單節(jié)點系統(tǒng)中,主題的消息數(shù)據(jù)都被存儲在一臺機器上,這將主題的大小限制在該機器上磁盤容量大小。在分布式消息系統(tǒng)中,數(shù)據(jù)分布在集群內(nèi)的多臺機器上。
分布式消息系統(tǒng)的另一個好處是,可以有多個broker為給定的主題提供消息服務,通過將負載分散在多臺機器上,提高了消息的生產(chǎn)和消費吞吐量。
我們以新近崛起的Pulsar為例,它就是典型的分布式消息系統(tǒng)架構(gòu)。Pulsar使用了存儲和計算分離的云原生架構(gòu),數(shù)據(jù)從 Broker 搬離,存在共享存儲內(nèi)部。上層是無狀態(tài) Broker,復制消息分發(fā)和服務;下層是持久化的存儲層 Bookie 集群。Pulsar存儲是分片的,這種構(gòu)架可以避免擴容時受限制,實現(xiàn)數(shù)據(jù)的獨立擴展和快速恢復。Pulsar解決了Kafka在設計上的一些并不能很好地適應于云原生環(huán)境的缺陷,比如消息服務和消息存儲的緊耦合、IO并不隔離、基于物理分區(qū)的存儲模型等。Pulsar還內(nèi)置了一個輕量級計算引擎,為用戶提供了一個部署簡單、運維方便的 FaaS(Function as a service)平臺。
在醫(yī)療行業(yè)中,醫(yī)藥管理系統(tǒng)軟件扮演著至關(guān)重要的角色。它不僅能夠提高藥品管理的效率和準確性,還能保障患者安全,同時符合法規(guī)要求。一個好用的醫(yī)藥管理系統(tǒng)軟件應具備以下特點。 首先,系統(tǒng)的界面應直觀易用,允許用戶無障礙地進行操作。 復雜的
在人力資源管理部門會出現(xiàn)很多英文字母讓人一頭霧水不知所云,比如說HC、HR等等,那么它們是哪個英文單詞的縮寫呢?具體的含義又是什么呢?
10月18日,在2023全球工業(yè)互聯(lián)網(wǎng)大會期間,沈陽芯源微電子設備股份有限公司(以下簡稱“芯源微”)與金蝶軟件(中國)有限公司(以下簡稱“金蝶”)在遼寧沈陽簽署戰(zhàn)略合作協(xié)議。此次合作,將基于金蝶云·星空,建設芯源微運營管控平臺,從而實現(xiàn)公司產(chǎn)研一體化、業(yè)財一體化,提升公司整體業(yè)務水平。?
近日,深圳市帝邁生物技術(shù)有限公司(以下簡稱帝邁)數(shù)字化升級項目上線匯報會在深圳圓滿召開。帝邁攜手金蝶軟件(中國)有限公司(以下簡稱
已有 1 個回答 | 1年前
已有 1 個回答 | 1年前
已有 1 個回答 | 1年前
已有 1 個回答 | 1年前
已有 1 個回答 | 1年前
近些年來,各個行業(yè)都迎來了數(shù)字化轉(zhuǎn)型浪潮,隨著企業(yè)對于云計算的理解和實踐不斷深入,基于云計算的分布式架構(gòu)已經(jīng)越來越多地成為企業(yè)應用構(gòu)建的首選方案。
現(xiàn)如今,云和云計算技術(shù)已經(jīng)被企業(yè)廣泛所接受,關(guān)于云、云計算、云原生技術(shù)都有非常多的話題。云原生技術(shù)是目前技術(shù)階段,企業(yè)IT系統(tǒng)的最優(yōu)模式的集合。在全面數(shù)字化轉(zhuǎn)型的大潮下,云原生技術(shù)猶如推動器,助力傳統(tǒng)企業(yè)邁入“云時代”的大門。
當今數(shù)字共生時代,在新基建背景下,云計算作為其中重要的信息基礎設施,是新基建中的關(guān)鍵支撐點之一。而在云計算領域,云原生也正在成為實現(xiàn)新基建的重要抓手,業(yè)務應用軟件云原生技術(shù)正成為企業(yè)“上云”后的重要創(chuàng)新方向。