1. 程式人生 > >rpcx服務框架淺析9-序列化

rpcx服務框架淺析9-序列化

RPCX分散式服務框架主要致力於提供高效能和透明化的RPC遠端服務呼叫。

RPCX訊息序列化

      RPC是RPCX框架中最核心的一種高效能、高吞吐量的遠端呼叫方式,可以稱之為多路複用的TCP長連線呼叫,簡單的說:

  • 長連線:避免了每次呼叫新建TCP連線,提高了呼叫的響應速度
  • 多路複用:單個TCP連線可交替傳輸多個請求和響應的訊息,降低了連線的等待閒置時間,從而減少了同樣併發數下的網路連線數,提高了系統吞吐量。

      序列化對於遠端呼叫的響應速度、吞吐量、網路頻寬消耗等同樣也起著至關重要的作用,是我們提升分散式系統性能的最關鍵因素之一。

序列化/反序列化一般位置:

  1. Client向Server傳送命令時,在Send前將訊息結構體
    序列化為二進位制資料。
  2. Server在收到Client命令資料後,將原始網路流資料反序列化為內部使用訊息結構體。

在RPCX中,同時支援多種序列化方式,例如:

  1. JSON序列化。
  2. ProtoBuffer序列化。
  3. MsgPack序列化。
  4. Thrift序列化。

RPCX序列化時將輸入引數進行序列化,Encode之後的資料放入到Payload中。