Motan是一套高性能,易於使用的RPC框架。提供了服務治理,包括服務節點自動發現,摘除,高可用和負載均衡。Motan具備良好擴展性,主要模塊都提供了不一樣實現,例如多種註冊中心,多種rpc協議等。java
Motan框架中主要有register,transport,serialize,protocol幾個功能,各個模塊都支持經過SPI進行擴展。spring
用來和註冊中心交互,包括服務註冊,服務訂閱,服務變動通知,服務心跳發送等。server端會在系統初始化時經過registry模塊註冊服務,client端在系統初始化時經過registry模塊訂閱到服務提供者列表,當server列表變動時由registry模塊通知client。併發
用來進行RPC服務端描述和RPC服務端配置管理,能夠添加不一樣filter來統計併發限制等功能。負載均衡
將RPC請求中的參數,結果等對象進行序列化和反序列化,進行對象與字節流互相轉換,默認使用對java友好的hessian2。框架
用來進行遠程通訊,默認使用Netty nio的TCP長連接方式。分佈式
Client端使用的模塊,cluster是一組可用的server在邏輯上的封裝,包含若干能夠提供RPC服務的server,實際請求時,會根據不一樣的高可用和負載均衡策略選擇一個可用server發起遠程調用。高併發
在進行RPC請求時,client經過代理機制調用cluster模塊,cluster根據配置和HA和LoadBalance選出一個可用的server,經過serialize模塊把RPC請求轉換成字節流,而後經過transport發送到server端。性能
Motan將功能模塊抽象爲四個可配置的元素,分別爲:優化
Motan擴展來6個自定義的Spring xml標籤:編碼