日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

SOA:ESB 服务注册中心

發布時間:2024/1/8 编程问答 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 SOA:ESB 服务注册中心 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

一、概述

1、什么是ESB

就是企業數據總線的意思,他的核心功能就是兼容各種協議接口,可以將數據在各種協議之間進行流轉,并且可以針對數據格式進行編排轉換

代表性的項目有:JBOSS ESB,Mule,Camel 以及一些其他的esb項目

2、什么是服務注冊

就是將所有的服務接口(很多時候是hession協議的接口),注冊到一個中心的分布式服務集群上(你可以考慮成apache的zookeeper服務實現的效果)。各個業務系統直接訪問分布式服務查找需要調用的接口位置,進而調用

代表性開源項目有:阿里的dubbo,淘寶的HSF(現在不知道是否繼續開源了)

二、雙方特點

1、ESB

ESB一般采用集中式轉發請求,適合大量異構系統集成,并且壓力不大的情況

但集中式轉發也是有優勢的,比如調用方用http協議,提供方用rmi協議,轉發就可以轉換協議,對雙方都透明。另外,在總線上還可以執行流程引擎,做服務編排,比如A和B兩個服務經常一起調,就可以編排成服務C,而不用再單獨啟一個服務去做。還有,安全,流控,做起來也更方便。

支持groovy類型的腳本語言,在總線上可以給數據格式做轉換

2、服務注冊管理

采用的是分布式調用,注冊中心只記錄地址信息,然后直連調用,適合并發及壓力比較大的情況。

對于網站應用,大多是垂直業務,直接從數據庫拉數據展示。

三、應用場景

1、ESB

esb最常見的場景是,把系統里的集成邏輯,單拉出來, 放到esb容器里來部署,并跟應用系統適配。 這樣讓應用系統變得只有自己的業務邏輯,簡單、輕薄。

劣勢:在所有的服務上增加了一個總線作為溝通的渠道。對于較大的并發量會將瓶頸推到ESB總線上。很多時候ESB總線都采用MQ類的消息服務器來異步處理緩解壓力

2、服務注冊

淘寶和阿里的各個業務系統提供了很多的接口,這個時候需要統一管理提供個各子業務系統使用,讓各個子業務系統可以通過注冊中心很快找到對應的服務

劣勢:服務編排和協議轉換還是靠各個業務子系統了

四、綜述

1、兩類開源項目側重點不同,ESB側重任務的編排,性能問題可通過異構的方式來進行規避。無法支持特別大的并發

2、服務注冊側重服務的治理,將各個服務顆粒化,各個子業務系統在程序邏輯上完成業務的編排。但是比較實用較大的并發量,因為dubbo類的只是存放服務地址。有zookeeper類的分布式通訊框架,能保證單點的失敗不影響整個系統的業務調用,因為業務接口都是在各個提供服務的子系統中

=========================================================================


?

1、首先做個概念上的澄清,ESB是企業服務總線,不是數據總線,從某種角度上可以說ESB包含了數據總線的功能、但不僅僅是數據總線;

dubbo最初是阿里的一個Java遠程調用框架(阿里貢獻出來給開源社區了,現在是apache dubbo),不是什么“注冊服務管理”,dubbo支持使用zookeeper或者redis做注冊中心,所以你也可以認為dubbo包含了注冊服務管理的功能(主要強調注冊、管理功能較弱)、但又不僅僅是服務注冊管理。

2、個人對ESB的理解:不是特定的產品或框架,甚至不是規范,而是一個寬泛的概念。這是什么意思呢?比如Oracle公司有自己的ESB產品,JBoss也有ESB產品,還有各種開源的ESB產品,這些ESB雖然都叫做ESB,但使用起來決然不同,基本上也不可能做到平滑的產品替換(比如把開源ESB換成Oracle的ESB)。

ESB試圖用一種大而全的方式,把企業里的服務調用都“管理”起來,這里的“管理”的范疇非常寬泛,比如服務注冊、查找ESB要管,數據傳輸也要管,數據轉換也要管,總之這是個事無巨細都要管起來的“管家婆”。

假設A系統要調用B系統的某個服務,A系統的服務都是走基于HTTPS的SOAP方式的、而B系統都是HTTP的REST服務,這兩個系統之間如果要直接交互基本上是雞同鴨講。但只要B系統在ESB上注冊過、并配好各種轉換規則啥的,那么對A系統來說,只要把調用的數據給ESB,剩下的全部就是ESB來幫你搞定了,A系統根本不關心B系統的服務的具體實現方式是啥、開發語言是啥,只要知道B系統確實有這個服務就行了。

3、個人對Dubbo的理解,這是一個阿里的java遠程調用框架、底層通信基于netty開發,并且天生就和spring完美結合,從這里就可以看出,dubbo不是ESB那種試圖管天管地啥都要管的東西,dubbo的目的很明確,就是提供一個java應用之間的、高效的遠程調用框架。

dubbo的注冊中心,只是提供一個注冊和查找服務的地方,查找到之后,A系統就直接調用B系統的服務了,中間并沒有一個統一的數據通道之類的東西。

至于什么java應用和.net應用之間怎么交互,XML轉換為Json、或者Json轉XML,dubbo說:我從來就沒想過這些啊!

4、小結,ESB和dobbo的區別

1)概念上就不同,ESB是個寬泛的概念,dubbo是個具體的應用框架

2)具體產品層面,ESB有很多種實現,有大廠的、也有開源的,體量有大有小、投資也有大有小,dubbo有阿里親生的版本,有段時間阿里不再維護dubbo了,又生出若干變種,比如dubbox,最新的dubbo則是apache dubbo,但說到底dubbo只是一個只有幾M大小的jar包,免費下載免費用

3)功能上,ESB非常強大、五花八門的啥功能都有,更像是一個企業SOA的全面解決方案,而dubbo則非常單一:java的高性能RPC框架

4)從程序員角度,dubbo是個值得去了解、學習的一個框架,哪怕你現在所在的公司、團隊不用dubbo。但ESB么,知道下是個啥概念就行了,學就不用了,就算你想學,你學哪個?IBM的?Oracle的?還是開源的?

總結

以上是生活随笔為你收集整理的SOA:ESB 服务注册中心的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。