几个月前,参照spring boot 注册@Component Bean写的,很简单,就不贴代码了,直接上链接https://github.com/zhucemo/rpc-annotation-driver.git
发布RPC服务的方法
就像Spring boot 启动类上的各种@Enable***注解一样,在启动类上加上@EnableRpcServer,然后在需要提供rpc接口服务的实现类上添加@WaykichainRpcService就行,如果类implements 多个接口,默认以第一个接口提供rpc服务,路由默认为/rpc
访问RPC服务的方法
这个就更简单了,在启动类上添加@EnableRpcClient,并将接口的包路径赋值basePackages或value属性,rpc提供方的url赋值给urls,包路径和url顺序对应,然后就可以依赖注入包路径下的接口使用了,像使用mybatis的mapper接口一样。
缺点
客户端没有做负载,所以rpc提供方为集群没有代理的话,如果集群不是DNS负载,就只能访问单个实例,而且客户端没有熔断机制。