动态

详情 返回 返回

XXL-RPC v1.8.1 | RPC服務框架 - 动态 详情

Release Notes

  • 1、【安全】序列化安全性增強,默認開啓package安全空間機制;
  • 2、【擴展】序列化擴展性增強,支持自定義序列化package白名單;
  • 3、【優化】序列化類型主動檢測,提升問題定位效率;
  • 4、【能力】服務註冊發現實效性提升,優化long-polling邏輯;
  • 5、【擴展】模塊 xxl-rpc-netty-shade 獨立拆分,與Core模塊解耦;
  • 6、【優化】通訊組件選擇HttpServer時,HttpObjectAggregator限制調大至20M,支持大消息傳輸;
  • 7、【升級】多個項目依賴升級至較新穩定版本,涉及 xxl-rpc-netty-shade、netty、slf4j 等;

XXL- RPC 快速接入示例

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

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

docker pull xuxueli/xxl-rpc-admin

docker run -p 8080:8080 -v /tmp:/data/applogs --name xxl-rpc-admin  -d xuxueli/xxl-rpc-admin

image.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 mirrorship 头像 u_15702012 头像 yizhidanshendetielian 头像 aipaobudezuoyeben 头像 nianqingyouweidenangua 头像 changqingdezi 头像 zohocrm 头像 mangrandedanche 头像 xinliangcoder 头像 jieduanxingdebugger 头像 dblens_com 头像 shanliangdeyanjing 头像
点赞 27 用户, 点赞了这篇动态!
点赞

Add a new 评论

Some HTML is okay.