微服務框架surging學習之路

2022-09-23 19:18:11 字數 1138 閱讀 8248

之前看到在群裡的朋友門都在討論微服務,看到他們的討論,我也有了一些自己的理解,所謂微服務就是系統裡的每個服務都 可以自由組合。自由組合這個就很厲害了,這樣一來,每個服務與服務之間基本的物理 耦合為0,橫向擴充套件整個系統就會非常非常靈活。

surging的厲害之處也恰恰是可以做到這些,所以surging 是.net core 裡面乙個非常不錯的微服務框架。

2.surging的序列化方式 2.1 json.net

surging 使用的是newtonsoft.json, 它是基於json格式的序列化和反序列化的元件

json.net 有以下優點:

侵入性:可以不新增attribute,就能進行序列化操作

靈活性:可以靈活性配置,比如允許被序列化的成員自定義名字,遮蔽的非序列化屬性成員

可讀性: 資料格式比較簡單, 易於讀寫

依賴性:可以序列化成jobject,無需依賴物件進行序列化和泛型化。

2.2protobuf

surging 使用的是protobuf-net, 它是基於二進位制格式的序列化和反序列化的元件

protobuf 有以下優點:

效能高 : 序列化後體積相比json和xml很小,適合rpc二進位制傳輸

跨語言:支援跨平台多語言

相容性:訊息格式公升級和相容性還不錯

速度快 :序列化反序列化速度很快,快於json的處理速度

2.3messagepack

messagepack:surging 使用的是messagepack-csharp, 它是基於二進位制格式的序列化和反序列化的元件

messagepack有以下優點:

效能高:序列化後體積相比json和xml很小,適合rpc二進位制傳輸

跨語言:支援跨平台多語言

相容性:訊息格式公升級和相容性還不錯

速度快 :序列化反序列化速度很快,快於json的處理速度

針對於protobuf和messagepack都是基於二進位制格式的序列化和反序列化,優點都一樣,但是基於messagepack的messagepack-csharp元件侵入性更小,可以不需要加attribute,而且效能上更優.

3.每種序列化元件的效能對比

一張圖就可以說明問題

通過上圖,可以發現messagepack不管是小資料量還是大資料量都保持比較穩定的效能

(四)surging 微服務框架使用系列之閘道器

一 什麼是api閘道器 api閘道器是乙個伺服器,是系統對外的唯一入口。api閘道器封裝了系統內部架構,為每個客戶端提供乙個定製的api。api閘道器方式的核心要點是,所有的客戶端和消費端都通過統一的閘道器接入微服務,在閘道器層處理所有的非業務功能。通常,閘道器也是提供rest http的訪問api...

Surging微服務的注意事項

做個記錄 1 service的方法必須是非同步方法 這個是同事發現的,非非同步方法swagger會用不了 2 倉儲層不能用介面 這個是自己做的,根據同事的例子,本來好好的,想著在倉儲層給加個介面,然後用介面注入,加上之後就悲劇了用不了,後來才想起來,倉儲層要繼承baserepository,原因好像...

微服務框架之OpenFeign

在微服務架構中,spring cloud openfeign通過將openfeign整合到服務中的方式,為服務之間的呼叫提供了解決方案。openfeign可以做到通過http請求的方式呼叫遠端服務,就像呼叫本地方法一樣。2.1 配置pom.xml openfeign的依賴包 org.springfr...