frpc是一款基于Netty的轻量级高性能分布式RPC服务框架。
- 支持Springboot主流框架,使用约定大于配置原则,便捷高效地开发分布式应用。
- 支持主流注册中心,如:Zookeeper,Consul,Eureka。
- 支持主流常用的序列化方式,如:fastjson,hession,kryo。
- 支持数据包压缩方式,如:Snappy,Lz4等。
- 支持负载均衡,服务可用性配置。
写一个api服务,接口如下:
//指定服务提供者的service名称(spring ioc bean name)
@RpcInterface(serviceName = "calculateServiceImpl")
public interface CalculateService {
int sum(int a, int b);
}
application.yml配置:
frpc:
registry:
address: localhost:2181
protocol: zookeeper
server:
port: 123456
启动类配置如下:
@SpringBootApplication
//启用Frpc框架,并指定扫描路径
@EnableFrpc(basePackages = "com.jibug")
public class Application {
public static void main(String[] args) {
SpringApplication.run( Application.class, args );
}
}
同时编写对应的实现类: 使用@RpcService注解标注在实现类上
@RpcService
public class CalculateServiceImpl implements CalculateService {
@Override
public int sum(int a, int b) {
return a + b;
}
}
application.yml配置:
frpc:
registry:
address: localhost:2181
protocol: zookeeper
server:
port: 123456
启动类配置如下:
@SpringBootApplication
//启用Frpc框架,并指定扫描路径
@EnableFrpc(basePackages = "com.jibug")
public class Application {
public static void main(String[] args) {
SpringApplication.run( Application.class, args );
}
}
在需要引用服务的地方使用@RpcReference注解进行注入
@RpcReference
private CalculateService calculateService;