阅读《2024 中国开源开发者报告》赢大奖,扫码申请享特权
Release Notes
- 1、【优化】服务底层代码重构优化,精简依赖、减少依赖包体;
- 2、【调整】内置注册中心XxlRpcRegister(xxl-rpc-admin)迁移,整合至XXL-CONF:
- XXL-CONF:一站式服务管理平台(配置中心、注册中心),提供 动态配置管理、服务注册及发现能力;降低中间件认知及运维成本。
- Github:github.com/xuxueli/xxl…
- 官方文档:https://www.xuxueli.com/xxl-conf
- 3、【调整】服务注册中心逻辑调整,借助 XXL-CONF 的OpenApi 实现 动态服务注册与发现;
- 4、【优化】优化获取本地IP地址逻辑,调整了获取本地地址顺序;
- 5、【升级】多个项目依赖升级至较新稳定版本;
XXL- RPC 快速接入示例
代码参考github仓库 /test 目录:github.com/xuxueli/xxl…
1、服务注册中心搭建:一行命令启动注册中心,一站式提供服务动态注册发现能力。
基于 XXL-CONF 搭建 “轻量级注册中心”:一行命令启动注册中心,一站式提供服务动态注册发现能力。
- XXL-CONF:分布式服务管理平台,作为服务 配置中心 与 注册中心,提供 动态配置管理、服务注册与发现 等核心能力;
- Github:github.com/xuxueli/xxl…
- 官方文档:https://www.xuxueli.com/xxl-conf
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地址
特性
- 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加密机制;
还没有评论,来说两句吧...