Proteus是使用RSocket構建流式微服務的新平臺
Netifi Proteus是類似Spring Cloud的,但是基於RSocket構建的下一代反應式微服務平臺,它讓開發人員通過在單個可部署中透明地提供API管理,路由,服務發現,預測負載平衡和超低延遲RPC來專注於他們的產品。
Spring Cloud各個元件之間通訊時基於通常Pull的Http協議方式,而Proteus是基於推的RScoket + Protobuf動態方式。
Proteus = SpringCloud + Vert.x
Proteus採用一種新穎的方法來解決網路高效通訊、斷路器和負載平衡,而不是在傳統通訊協議之上進行分層。Proteus提供了基於三層的解決方案:
- Proteus是反應性的,不僅在應用層,而且在網路層。與基於傳統網路模型構建的其他解決方案不同,Proteus構建在專為雲原生應用程式設計的應用程式網路堆疊上。這為您提供了構建實時流應用程式的強大工具。
- Proteus很聰明。與提供更多設定並需要頻繁手動調整的其他解決方案不同,Proteus使用有關您的應用程式和應用程式流量的資訊來防止諸如雷鳴般的群鳴,重試風暴和其他常見問題。
- Proteus在應用程式之間提供強大的合同 合同為您提供隱式版本資訊,有關交換資料的資訊,應用程式之間的互動模型以及狀態感知服務發現。
訊息重組和背壓感知流
無論應用程式是傳送簡短的HTTP請求還是兆位元組的流視訊,Proteus提供的訊息路由都十分高效。RSocket具有內建的訊息分塊/重構邏輯,可管理的有效負載大小實現流式傳輸大型資料集。
Proteus支援各種背壓策略,以確保資料消費者能夠跟上資料生成者的步伐,而無需任何人需要實現自己的背壓或重試邏輯。作為一種服務,您可以設定一種機制來流式傳輸客戶端可能需要的所有資料,並且客戶端的需求和消耗率可以調節資料實際通過線路傳送的速度 - 而不是任何複雜的伺服器端邏輯。
支援多語種
客戶端,伺服器和對等應用程式可以使用多種語言編寫,然後可以使用RSocket 開源協議進行全雙工,反應性通訊,Protobuf 介面保證相互相容性定義語言。
生態系統
Proteus主要元件是Proteus Broker,是一個類似訊息匯流排的代理,其完整生態系統包括:
支援Protobuf和原始RSocket的反應式RPC層。您可以在有或沒有Broker的情況下使用它。
雲原生訊息代理Broker,可直接在應用程式之間提供虛擬連線,無論位於何處。Proteus代理促進客戶端和伺服器應用程式之間的通訊 - 包括移動裝置,Web瀏覽器和雲中的微服務 - 無論它們位於何處,就好像它們具有點對點連線一樣。
Proteus代理構建在Reactive Streams 和RSocket 之上。它是一個非阻塞應用程式,它根據底層傳輸建立最佳執行緒數(例如,使用TCP和WebSockets時,它將為每個核心建立一個執行緒)。
Proteus不需要使用長輪詢或定期查詢,以便了解哪些客戶端和服務應用程式處於活動狀態。相反,它依賴於RSocket的面向連線的特性,並且只要該應用程式與Proteus代理保持連線,就只保留有關每個應用程式的資訊。Proteus代理與其叢集中的任何其他代理共享此連線資訊,以便及時將狀態更改傳播到其他代理。
多個Broker可以攜手合作,提高可靠性和可擴充套件性。
Proteus的入口網站,提供管理和監視。
從命令列管理和詢問Proteus代理群集的狀態。
您實現通過Proteus系統進行通訊的客戶端和微服務。
利用代理和Proteus RPC為遺留應用程式建立Proteus生態系統的HTTP / 1.1 Restful橋的HTTP閘道器。
允許您從Proteus應用程式收集指標,並將它們連線到現有的指標收集系統。
利用Proteus生態系統並從任何位置收集Open Tracing資訊。
https://github.com/netifi/proteus-spring-kafka-example 展示瞭如何使用Proteus和reactor-kafka 實現訊息整合。
https://github.com/netifi/RxNetty 是Netty的響應式擴充套件介面卡。