Stories

Detail Return Return

XXL-RPC v1.9.0 | RPC服務框架 - Stories Detail

Release Notes

  • 1、【優化】服務底層代碼重構優化,精簡依賴、減少依賴包體;
  • 2、【調整】內置註冊中心XxlRpcRegister(xxl-rpc-admin)遷移,整合至XXL-CONF:

    • XXL-CONF:一站式服務管理平台(配置中心、註冊中心),提供 動態配置管理、服務註冊及發現能力;降低中間件認知及運維成本。
    • Github:https://github.com/xuxueli/xxl-conf );
    • 官方文檔:https://www.xuxueli.com/xxl-conf/
  • 3、【調整】服務註冊中心邏輯調整,藉助 XXL-CONF 的OpenApi 實現 動態服務註冊與發現;
  • 4、【優化】優化獲取本地IP地址邏輯,調整了獲取本地地址順序;
  • 5、【升級】多個項目依賴升級至較新穩定版本;

XXL- RPC 快速接入示例

代碼參考github倉庫 /test 目錄:https://github.com/xuxueli/xxl-rpc/tree/master/xxl-rpc-samples

1、服務註冊中心搭建:一行命令啓動註冊中心,一站式提供服務動態註冊發現能力。

基於 XXL-CONF 搭建 “輕量級註冊中心”:一行命令啓動註冊中心,一站式提供服務動態註冊發現能力。

  • XXL-CONF:分佈式服務管理平台,作為服務 配置中心 與 註冊中心,提供 動態配置管理、服務註冊與發現 等核心能力;
  • Github:https://github.com/xuxueli/xxl-conf
  • 官方文檔:https://www.xuxueli.com/xxl-conf/

    // 説明:xxl-conf 詳細配置可參考官方文檔
    docker pull xuxueli/xxl-conf-admin
    docker run -p 8080:8080 -v /tmp:/data/applogs --name xxl-conf-admin  -d xuxueli/xxl-conf-admin

img_12.png

2、XXL-PRC接入配置:與Spring無縫集成,也支持無框架接入。

XxlRpcSpringFactory factory = new XxlRpcSpringFactory();
factory.setBaseConfig(new BaseConfig(env, appname));
factory.setRegister(new XxlRpcRegister(address, accesstoken));
factory.setInvokerConfig(new InvokerConfig(invokerOpen));
factory.setProviderConfig(providerOpen ?
        new ProviderConfig(
                NettyServer.class,
                JsonbSerializer.class,
                port,
                corePoolSize,
                maxPoolSize,
                null) : new ProviderConfig(providerOpen));

經過上述2步,已完成全部配置工作,可以直接展開業務編碼工作。

3、業務代碼開發:

  • 3.1、接口定義代碼:

    public interface DemoService {
    
    public UserDTO load(String name);
    
    }
  • 3.2、服務端代碼:
    註解式,一行代碼將現有接口轉換成 XXL-RPC 服務。

    @XxlRpcService
    @Service
    public class DemoServiceImpl implements DemoService {
    
    @Override
    public UserDTO load(String name) {
      return new UserDTO("jack", "hello world");
    }
    
    }
  • 3.3、調用端代碼:
    註解式,一行代碼引入 XXL- RPC 服務。

    
    @XxlRpcReference(appname = "app01")
    private DemoService demoService;
    
    ... 
    UserDTO userDTO = demoService.sayHi(name);

簡介

XXL-RPC 是一個RPC服務框架,提供一站式服務通信及運營能力。擁有“輕量級、高性能、負載均衡、故障容錯、安全性、註冊發現、服務治理”等分佈式特性。現已開放源代碼,開箱即用。

  • 中文文檔
  • Github地址

img_DNq6.png

特性

  • 1、易學易用:無縫集成SpringBoot,三分鐘即可上手;
  • 2、服務透明:系統完整的封裝了底層通信細節,開發時調用遠程服務就像調用本地服務,在提供遠程調用能力時不損失本地調用的語義簡潔性;
  • 3、多調用類型:支持多種調用類型,包括:SYNC、ONEWAY、FUTURE、CALLBACK 等;
  • 4、多通訊協議:支持多種通訊協議,支持TCP、HTTP;
  • 5、多序列化方案:支持多種序列化協議,包括:HESSIAN/2、HESSIAN1、Gson、PROTOSTUFF、KRYO 等序列化方案;
  • 6、註冊中心:內置服務註冊中心支持服務動態發現,提供輕量級、一站式解決方案。也支持擴展集成其他註冊中心,或者不使用註冊中心、直接指定服務提供方機器地址調用;
  • 7、負載均衡:支持多種負載均衡策略,包括:輪詢、隨機、LRU、LFU、一致性HASH等;
  • 8、服務治理:提供服務治理能力,支持在線管理註冊的服務信息,如服務鎖定、IP禁用……等;
  • 9、服務監控:支持在線監控服務調用統計信息以及服務健康狀況等(計劃中);
  • 10、故障容錯:支持自動巡檢線上服務並摘除故障節點,消費方實時感知並移除失效節點將流量分發到其餘節點,提高系統容錯能力。
  • 11、高兼容性:得益於優良的兼容性與模塊化設計,不限制技術棧;除 spring/springboot 技術棧之外,理論上支持運行在任何Java代碼中,甚至main方法直接啓動運行;
  • 12、泛化調用:支持服務調用方直接發起服務調用,不依賴服務方提供的API;
  • 13、服務安全:支持序列化安全空間機制,以及通訊token加密機制;
user avatar king_wenzhinan Avatar u_17513518 Avatar chuanghongdengdeqingwa_eoxet2 Avatar tssc Avatar lenve Avatar wuliaodechaye Avatar javalover Avatar kuaidi100api Avatar xiaoxiansheng_5e75673e1ae30 Avatar innsane Avatar toplist Avatar nogeek Avatar
Favorites 20 users favorite the story!
Favorites

Add a new Comments

Some HTML is okay.