Spring Integration學習筆記 簡介

2021-10-11 14:28:40 字數 1316 閱讀 4393

本文是自己學習的總結筆記,主要學習資料如下。

唉,到了新公司,發現公司用的是spring integration框架,被迫學習。學習資料實在太少,integration系列的學習筆記的參考資料基本都在自與官方文件,有些部分都是在翻譯文件內容。

spring integration也是spring 全家桶的一員,該框架的設計初衷是為了整合各個系統中的通訊方式。如果現在開發的系統是處在各個系統中間既需要jms互動,又需要database/redis/mongodb,還需要監聽tcp/udp等,還有固定的檔案轉移,分析。還面對著時不時的更改需求的風險。那麼,它再適合不過了。

integration整合了很多系統之間傳輸資料的方式,比如訊息佇列,redis等。這些通訊方法在各自的框架中都各有不同,但spring integration都將他們抽象化了,所有的通訊方法都可以由一下三個部分組成:資訊體(message),通道(message channel),端點(message endpoint)。

資訊體顧名思義就是用來儲存資訊的。我們想要傳的資料會先包裝成資訊體格式,然後才在各個點中傳輸。

資訊體主要有兩部分組成,乙個是資訊頭(header),另乙個是主體(payload)。

通道是指資料在點到點之間的傳輸過程,通道是乙個訊息佇列的模式,也就是生產者向通道傳送資料,消費者接受資料。管道的意義就是解耦,生產者傳送資訊後就可以去做其他的事了。

通道是可以快取資料的。

這樣的通道可以支援『點對點』(point-to-point),也可以支援『訂閱-發布』(publish-subscribe)。點對點是生產者只有乙個,而消費者也只能有乙個;而訂閱-發布則允許有多個消費者。

通道除了可以分為『點對點』和『訂閱-發布』兩種型別,還可以分為可快取通道(pollabechannel)和不可快取通道(subscribablechanenl)。

管道連線的兩端就是端點。在integration中,端點是與管道相連,但是要注意,端點不是指業務**。integration並不會將資訊直接傳送給業務**這一層,因為integration設計的初衷就是解耦,所以通道的傳送端和接收端不可能和某乙個具體的**實體繫結,只能是先傳送到端點,然後再根據一些配置資訊(比如xml)和具體的業務**指定具體的業務**來接收資訊。

端點有多個型別。接收資訊後我們可以對資訊進行過濾、拆分等操作,這些操作都可以用對應型別的端點來完成。

下面是integration中的端點型別。

Spring Integration學習筆記二

三 message channel詳述 message channel用來將多個訊息端點 message endpoint 連線在一起,message channel可以保障訊息可以安全的在多個訊息端點 message endpoint 之間進行收發。為了message channel可以更容易的和...

python學習筆記簡書 Python學習筆記

1.輸入 輸出 1 輸出 printf aaa printf aa a printf 100 200 100 200 結果為aaa aa a 100 200 300 輸出不輸出回車方法 print end 2 輸入 name intput printf name 結果為mike mike name ...

python學習筆記簡書 python學習筆記

一.list和tuple list是一種有序的集合 可以改變 例如用.insert插入資料 pop刪除資料 可以寫成 user a b c tuple也叫作元組 定義好不可改變 可以寫成 user a b c 定義乙個空的元組 user 可以看出他們的區別是 list用的是,元組用的是 關鍵字引數 ...