Solon rpc 之 SocketD 協議 - 概述

Solon rpc 之 SocketD 協議系列
Solon rpc 之 SocketD 協議 - 概述
Solon rpc 之 SocketD 協議 - 消息上報模式
Solon rpc 之 SocketD 協議 - 消息應答模式
Solon rpc 之 SocketD 協議 - 消息訂閱模式
Solon rpc 之 SocketD 協議 - RPC調用模式
Solon rpc 之 SocketD 協議 - 單連接雙向RPC模式
Solon rpc 之 SocketD 協議 - 消息加密模式html

1. 簡介

SocketD 是一種二進制的點對點通訊協議,是一種新的網絡通訊第七層協議。旨在用於分佈式應用程序中。從這個意義上講,SocketD能夠是RSocket等其餘相似協議的替代方案。它的消息協議規範具備異步,背壓的雙向,多路複用,斷線重連,基於消息等特性。暫時只提供Java實現,目前作爲Solon rpc的sockte通道協議。git

2. 背景

說到這裏就有一些疑問了,爲何要搞這個協議?難道程序員吃飽了撐得搞點新東西折騰本身?上面提到了RSocket。若是你對這個規範不熟悉就可補下課。但它用起來仍是比較複雜,尤爲是相似RxJava的接口風格,感觀上更利於作響應式計算。而SockteD更適應傳統使用習慣,更專注的面向服務請求。程序員

3. 特性

特性與RSocket很是像,這裏簡單總結一下:網絡

  • 具備語言無關性的二進制通訊協議
  • 異步非阻塞消息驅動通訊,高性能
  • 實現了網絡通訊的背壓處理,在此基礎上進行流量控制、鏈接恢復
  • 自然支持雙向通訊。如:單連接雙向RPC
  • 更加適合分佈式通訊場景

4. SocketD三種交互模型

SocketD定義了三種交互模型來彌補Http協議的不足之處:框架

  • Send(msg):只發送不響應。在不須要響應時很是有用,例如非關鍵事件日誌記錄。
  • SendAndResponse(msg):發送並等待響應。相似Http的請求/響應模型。它是異步和多路複用的。
  • SendAndCallback(msg, (msg2)->{}):發送並在有響應時回調。相似Ajax異步回調。

5. SocketD兩種協議模型

容器消息,用於實現消息加密或壓縮之類非業務處理。內容消息,用於承載業務內容。異步

6.部分演示示例

附:項目源碼

相關文章
相關標籤/搜索