XXL-RPC v1.2.2,分佈式服務框架

Release Notes

  • 一、默認通信方案切換爲 Netty,可選方案依賴均調整爲 provided 類型;提供強制依賴最小精簡選型組合 "netty + hessian + 無註冊中心(推薦採用:XXL-RPC原生註冊中心)";
  • 二、XXL-RPC原生註冊中心:底層抽象註冊中心模塊,並原生提供自研基於DB的註冊中心,真正實現開箱即用,更輕量級、下降第三方依賴;至今XXL-RPC以提供三種註冊中心具體實現:"XXL-RPC原生註冊中心方案","ZK方案","Local方案";其中"XXL-RPC原生註冊中心方案"特性以下:html

    • 輕量級:基於DB與磁盤文件,只須要提供一個DB實例便可,無第三方依賴;
    • 實時性:藉助內部廣播機制,新服務上線、下線,能夠在1s內推送給客戶端;
    • 數據同步:註冊中心內部10s會全量同步一次磁盤數據,清理無效服務,確保服務數據實時可用;
    • 性能:服務發現時僅讀磁盤文件,性能很是高;服務註冊、摘除時經過磁盤文件校驗,防止重複註冊操做;
    • 擴展性:可方便、快速的橫向擴展,只需保證 "xxl-rpc-admin" 配置一致便可,可藉助負載均衡組件如Nginx快速集羣部署;
    • 多狀態:服務內置三種狀態:正常狀態=支持動態註冊、發現,服務註冊信息實時更新;鎖定狀態=人工維護註冊信息,服務註冊信息固定不變;禁用狀態=禁止使用,服務註冊信息固定爲空;
    • 跨語言:註冊中心提供HTTP接口供客戶端實用,語言無關,通用性更強;
    • 兼容性:「XXL-RPC原生輕量級註冊中心」雖然爲XXL-RPC設計,可是不限於XXL-RPC使用。兼容支持任何服務框架服務註冊實用,如dubbo、springboot等;
    • 容器化:提供官方docker鏡像,並實時更新推送dockerhub,進一步實現"XXL-RPC原生註冊中心方案"產品開箱即用;
  • 三、XXL-RPC客戶端適配"XXL-RPC原生註冊中心",可快速接入,只須要切換註冊中心實現爲 "NativeServiceRegistry" 便可,文檔由專門章節介紹;
  • 四、註冊中心啓動參數位置調整,與註冊中心實現關聯;
  • 五、服務提供者參數優化,IP爲空時原生動態獲取,核心參數啓動時加強校驗;
  • 六、註冊模塊API優化,改成批量模式進一步提高性能;
  • 七、文檔加強,註冊中心配置切換、通信方案配置切換說明;
  • 八、IP工具類優化,兼容 Inet6Address 格式地址;
  • 九、Netty銷燬邏輯優化;
  • 十、擴展第三方註冊中心ZK底層邏輯優化,避免舊註冊信息沒法清理的問題;

簡介

XXL-RPC 是一個分佈式服務框架,提供穩定高性能的RPC遠程服務調用功能。擁有"高性能、分佈式、註冊中心、軟負載、服務治理"等特性。現已開放源代碼,開箱即用。nginx

輸入圖片說明

「XXL-RPC」 特性:

  • 一、快速接入:接入步驟很是簡潔,兩分鐘便可上手;
  • 二、服務透明:系統完整的封裝了底層通訊細節,開發時調用遠程服務就像調用本地服務,在提供遠程調用能力時不損失本地調用的語義簡潔性;
  • 三、多調用方案:支持 SYNC、ONEWAY、FUTURE、CALLBACK 等方案;
  • 四、多通信方案:支持 TCP 和 HTTP 兩種通信方式進行服務調用;其中 TCP 提供可選方案 NETTY 或 MINA ,HTTP 提供可選方案 Jetty;
  • 五、多序列化方案:支持 HESSIAN、HESSIAN一、PROTOSTUFF、JSON 等方案;
  • 六、軟負載均衡及容錯:服務提供方集羣註冊時,在使用軟負載算法進行流量分發;
  • 七、註冊中心:可選組件,支持服務註冊並動態發現;可選擇不啓用,直接指定服務提供方機器地址通信;選擇啓用時,原生提供多種開箱即用的註冊中心可選方案,包括:「XXL-RPC原生輕量級註冊中心」、「ZK註冊中心」、「Local註冊中心」等;
  • 八、服務治理:提供服務治理中心,可在線管理註冊的服務信息,如服務鎖定、禁用等;
  • 九、服務監控:可在線監控服務調用統計信息以及服務健康情況等(計劃中);
  • 十、容錯:服務提供方集羣註冊時,某個服務節點不可用時將會自動摘除,同時消費方將會移除失效節點將流量分發到其他節點,提升系統容錯能力。
  • 十一、解決1+1問題:傳統分佈式通信通常經過nginx或f5作集羣服務的流量負載均衡,每次請求在到達目標服務機器以前都須要通過負載均衡機器,即1+1,這將會把流量放大一倍。而XXL-RPC將會從消費方直達服務提供方,每次請求直達目標機器,從而能夠避免上述問題;
  • 十二、高兼容性:得益於優良的兼容性與模塊化設計,不限制外部框架;除 spring/springboot 環境以外,理論上支持運行在任何Java代碼中,甚至main方法直接啓動運行;

「XXL-RPC原生輕量級註冊中心」 特性:

  • 一、輕量級:基於DB與磁盤文件,只須要提供一個DB實例便可,無第三方依賴;
  • 二、實時性:藉助內部廣播機制,新服務上線、下線,能夠在1s內推送給客戶端;
  • 三、數據同步:註冊中心內部10s會全量同步一次磁盤數據,清理無效服務,確保服務數據實時可用;
  • 四、性能:服務發現時僅讀磁盤文件,性能很是高;服務註冊、摘除時經過磁盤文件校驗,防止重複註冊操做;
  • 五、擴展性:可方便、快速的橫向擴展,只需保證 "xxl-rpc-admin" 配置一致便可,可藉助負載均衡組件如Nginx快速集羣部署;
  • 六、多狀態:服務內置三種狀態:正常狀態=支持動態註冊、發現,服務註冊信息實時更新;鎖定狀態=人工維護註冊信息,服務註冊信息固定不變;禁用狀態=禁止使用,服務註冊信息固定爲空;
  • 七、跨語言:註冊中心提供HTTP接口供客戶端實用,語言無關,通用性更強;
  • 八、兼容性:「XXL-RPC原生輕量級註冊中心」雖然爲XXL-RPC設計,可是不限於XXL-RPC使用。兼容支持任何服務框架服務註冊實用,如dubbo、springboot等;
  • 九、容器化:提供官方docker鏡像,並實時更新推送dockerhub,進一步實現"XXL-RPC原生註冊中心方案"產品開箱即用;

文檔地址

技術交流

相關文章
相關標籤/搜索