究竟要不要ESB?

2021-06-14 11:24:01 字數 1134 閱讀 4354

最近遇到乙個it專案,由於專案前期已經做了一些工作,系統功能被分散到了各個預先定義好的子系統中,後面接手的設計師根據這一現實,以及專案中需要用到一些業務流程,堅持要用esb來整合這些子系統。

一定要用esb嗎?

究竟esb是什麼,適用於什麼開發場景?我們不得不回到最初的問題。

esb是什麼?

esb 是一種體系結構模式,而不是軟體產品。不同的軟體產品可以構成 esb。在某些情況下,公司在不同的區域中使用多種產品,利用特定的功能來滿足其獨特的需求。可以將這些不同的產品聯合在一起實現 esb 模式。

概括地講,esb 具有四個主要功能:

在給定的事務中,通常會合併這些主要高階功能。例如,傳入訊息可能是乙個使用 soap/http 的 web 服務呼叫,而目的地是需要使用 websphere mq 的固定長度訊息格式的遺留系統。必須轉換訊息、協調協議並且必須將訊息路由到正確的位置。

對 esb 程式設計通常涉及虛擬環境,並將邏輯表示為稱為訊息流或中介流的連線活動流。這些流都是事務型的,使用的是兩階段提交之類的機制,這樣在失敗時可以回滾整個流,或者在成功時提交整個流。這些流是無狀態的;通常情況下是訊息傳入,流對該訊息執行各種操作,然後傳送傳出訊息。

由於 esb 的無狀態事務特性,因此高效能是前提條件。在大型組織中,esb 每天處理數百萬條訊息的情況並不少見。

esb的優點

esb 的主要優點之一就是處理訊息。訊息的傳入和傳出也許會用到協議或格式中介。當這些需求明顯需要處理訊息時,使用 esb 可以提供許多優勢,其中包括在轉換中處理較複雜事務的能力。當這些需求需要使用 esb 基本功能(如訊息路由、轉換或協議中介)之一時,則 esb 是最佳選擇。

esb 的另乙個優點是效能。esb 在計畫上能夠處理大量的訊息。例如,如果需求是每天處理 200,000 條訊息,則 esb 顯然是較好的選擇。

如果需求是以資料為中心的,則顯然要選擇 esb。

需要思考的問題

就我們這個專案而言,沒有遺留系統,所有子系統間的邊界、訊息可以重新定義和設計(原有設計中有很多不合理之處)。首先可以通過資料整合、重新劃分業務的方式,減少子系統的數量。其次,通過把子系統間交換的資訊定義標準化來解決子系統間整合的問題。根本沒有必要一定要使用esb,這是典型的過度設計。

迅視財經 每天出門究竟要不要關路由器?

網路時代,無線路由器成了每個家庭的必需裝置。對大部分人來說,無線路由器幾 乎從不斷電,長期插在電源上。有人可能會發出這樣的疑問,無線路由器需要每天斷電嗎?一直插在電源上會不會壞呢?這需要從路由器的各項指標情況來分析。一 硬體材料 無線路由器作為重要的上網裝置,在設計路由器時,廠家也考慮到了其長時間及...

實習了迷惑了,究竟要不要堅持自己紮實基本功的學習?

2007年06月28日 12 15 00 居然快過了兩年了,我從乙個大二學生變成現在大四的學生了,感觸很深,現在在公司實習半個月了,在這裡別人只會問你能不能做出公司要的,不會問你究竟公司的知識的是不是你以後發展要用到的。我想打好基礎,可是小組組長和技術員對我的印象不好,他們希望我能先做出來再說,可是...

租借高防伺服器究竟要不要求考慮機房要素

關於網際網路來說,最怕的事情之一便是事務不夠安穩,導致不受使用者的信賴,打不開 開啟慢甚至使用者資料被竊取等等,頻繁遭受進犯,令人不耐其煩,各種進犯手法層出不窮,比方ddos進犯,即分布式拒絕服務,頻繁發出大量無用的資料占有資源,使真正的使用者無法拜訪 導致 受到衝擊,嚴峻是會導致經濟損失。針對這些...