說明eip、esb、api閘道器:
在聊eip esb這些知識前,首先要了解什麼是soa。
soa是面向服務架構,是一種建設企業it生態系統的架構指導思想。soa的關注點是服務。服務最基本的業務功能單元,由平台中立性的介面契約來定義。
通過將業務系統服務化,可以將不同模組解耦,各種異構系統間可以輕鬆實現服務呼叫、訊息交換和資源共享。
借用一下來自02.soa架構與落地方式 的內容:
落地方式:
esb集中式管理
esb是乙個整合的容器,是乙個集中式的服務匯流排。通過esb,可以實現整合業務處理,監控系統間訊息流動,管理系統間互動的業務服務。esb的關注點是整合,核心概念是服務和訊息,主要方式是協議適配和中介處理。esb的核心內容:系統與系統間的互動方式是服務。服務與服務之間,以及服務內部傳遞的都是訊息。通過各種不同的協議適配,將各種不同平台的異構服務接入到esb,轉換成訊息流。再通過各種中介處理:路由、轉換、增強、分支、聚合等等。最後再將訊息轉換成適當形式,傳送到指定的目的地或返回給呼叫方。
一般來說,esb本身的模型就是管道和過濾器。管道就是各種傳輸和訊息傳遞。各種中介處理,就是過濾器。可以比擬成自來水管和各種閥門的關係。
比較流行的商業esb有ibm的wmb和oracle的osb,開源esb有mule、servicemix、jbossesb、wso2esb和openesb。
eip(enterprise integration patterns,企業整合模式)是整合領域的聖經,也是各種mom訊息中介軟體和esb的理論基礎。我們在mq和esb中常見的各種概念和術語,基本都是來自於eip,比如訊息**、訊息通道、訊息端點、訊息路由、訊息轉換、訊息增強、資訊分支、訊息聚合、訊息分解、訊息重排等等,並在《企業整合模式:設計、構建及部署訊息傳遞解決方案》一書中詳細的描述了它們的內容與特點。《企業整合模式:設計、構建及部署訊息傳遞解決方案》還提供了乙個官方**,裡面非常詳細的介紹了65種messaging patterns, 參見這裡:eip的直接實現一般叫eip框架,開源的知名eip框架有兩個:camel和spring integration。eip可以作為esb的基礎骨架,在這個基礎上填充其他必要的部分,定製出來乙個esb容器。
api閘道器是乙個伺服器,是系統的唯一入口。從物件導向設計的角度看,它與外觀模式類似。api閘道器封裝了系統內部架構,為每個客戶端提供乙個定製的api。它可能還具有其它職責,如身份驗證、監控、負載均衡、快取、請求分片與管理、靜態響應處理。一般分為流量閘道器、業務閘道器,兩者的作用:api閘道器方式的核心要點是,所有的客戶端和消費端都通過統一的閘道器接入微服務,在閘道器層處理所有的非業務功能。通常,閘道器也是提供rest/http的訪問api。服務端通過api-gw註冊和管理服務。
注:引自 第7屆mad技術論壇-百億流量api閘道器的設計與實現-kimmking-v1.0
常見閘道器以及效能比較可以參考:
可以實現專案整合、,典型的比如說:
典型的框架就是apache camel。
可以參考 的案例。
具體一點的例子:
camel都改造完、上線後,動態配置中心裡header.foo先配置成rabbitmq, 使得原有路徑不動;
進行遷移操作時,直接修改動態配置中心即可。
參見:其他的例子:比如說activemq與rabbitmq使用camel整合, 參見
camel官方提供的示例:
參見包括:參考上面的
什麼是api閘道器
中的截圖。eip:apache camel, spring integration
esb:比較流行的商業esb有ibm的wmb和oracle的osb,開源esb有mule、servicemix、jbossesb、wso2esb和openesb。
api閘道器:
- 業務閘道器:zuul, spring cloud gateway
- 流量閘道器:openresty, kong
soul閘道器學習筆記二
目錄 web專案如何引入soul閘道器 壓力測試 第二天學習分析 總結 相關使用文件可參考官方文件 今天是學習soul閘道器的第二天,今天的目標是使用soul專案提供的http例子,學會如何在業務專案中引入使用soul。在soul專案裡面有個子模組 soul examples,官方例子。其中http...
gateway閘道器筆記
gateway在專案中充當閘道器的作用 使用可看spring官方文件 projects spring cloud learn spring cloud gateway reference doc.route 路由 predicate 斷言 filter 過濾器 配置方式 spring cloud g...
API 閘道器(API Gateway)學習
我是做客戶端開發的,老是聽到服務端開發的同學提到閘道器,最近培訓課上一位老師又講到了閘道器,雖然不知道是什麼,但是聽他講的就是很好,非常方便,所以就來學習一下了。1.1.定義 api 閘道器是乙個處於應用程式或服務 提供 rest api 介面服務 之前的系統,用來管理授權 訪問控制和流量限制等,這...