天天看點

Netty實戰 基于Netty實作 RPC 架構 (相容Spring)1 簡介2 工程介紹3 流程介紹4 項目示範5 代碼位址

1 簡介

1 注冊中心采用zookeepr
2 接口調用采用netty (需要相容spring)

           
Netty實戰 基于Netty實作 RPC 架構 (相容Spring)1 簡介2 工程介紹3 流程介紹4 項目示範5 代碼位址

2 工程介紹

Netty實戰 基于Netty實作 RPC 架構 (相容Spring)1 簡介2 工程介紹3 流程介紹4 項目示範5 代碼位址
1 netty-rpc
  core: netty rpc 核心包 公用編解碼、注解、handler、格式定義、工具類等功能。
  client:服務消費者依賴包,提供服務發現、channel複用、監聽服務提供資訊等功能。
  server:服務提供者依賴包,提供服務注冊、client調用響應等功能。

2 spring-demo:
  api:定義相關接口
  spring-customer: 服務消費。
  spring-provider: 服務提供者。


           

3 流程介紹

3.1 服務提供者

1 啟動服務提供者,掃描RoshRpcService注解,并把相關接口注冊相關資訊到zk上。
2 啟動NettyServer,提供rpc服務響應。
           

3.2 服務消費者

1 啟動服務消費者,發現zk相關服務資訊,并且監聽變化。
2 後置處理器,收集RoshRpcRemote相關注解service,采用動态代理進行加強。

           

3.3 編解碼

1 TCP粘包、半包采用LengthFieldBasedFrameDecoder,固定header,變body。
2 請求格式RpcRequest、響應格式為RpcResponse,根據用戶端/服務端場景不同,采用不同的RpcResponse、RpcRequest 編解碼器。


           

4 項目示範

1 依次啟動spring-provider、spring-customer。

2 檢視zk服務注冊資訊。

Netty實戰 基于Netty實作 RPC 架構 (相容Spring)1 簡介2 工程介紹3 流程介紹4 項目示範5 代碼位址

3 通路消費者接口

Netty實戰 基于Netty實作 RPC 架構 (相容Spring)1 簡介2 工程介紹3 流程介紹4 項目示範5 代碼位址
Netty實戰 基于Netty實作 RPC 架構 (相容Spring)1 簡介2 工程介紹3 流程介紹4 項目示範5 代碼位址

5 代碼位址

https://gitee.com/zhurongsheng/netty-rpc