# feige-rpc **Repository Path**: lzrd-java/feige-rpc ## Basic Information - **Project Name**: feige-rpc - **Description**: 飞鸽RPC是一个非常轻量级,且容易修改整合到实际项目中的JAVA远程调用框架,基于NIO框架netty开发,轻松支持高并发,支持服务负载均衡,无缝整合spring - **Primary Language**: Unknown - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 51 - **Created**: 2016-11-22 - **Last Updated**: 2020-12-19 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README ####飞鸽RPC是一个非常轻量级,且容易修改整合到实际项目中的远程调用框架,基于NIO框架netty开发,轻松支持高并发,支持服务负载均衡,无缝整合spring ##一、provider配置 服务器配置 feige.properties 放在classpath下 #服务绑定的ip,可选 feige.host=127.0.0.1 #服务端口 feige.port=10221 #服务调用时处理线程池线程数量 feige.poolsize=50 feige.host=127.0.0.1 #协议以及对象序列化配置,本配置为可选,不配置则对象序列化使用java原生序列化 feige.protocol=io.feige.rpc.protocol.kryo.KryoObjectProtocol ###服务导出,提供两种方式,任选一种即可 ####1. API导出服务 RpcProducerService rpcProducerService = new RpcProducerService(); //该对象全局唯一即可,不能重复实例化 rpcProducerService.start(); rpcProducerService.exportService(serviceInterfaceName, serviceObj); ####2. spring配置
##二、consumer使用配置 配置 feige.properties 放在classpath下 #协议以及对象序列化配置,本配置为可选,不配置则对象序列化使用java原生序列化;如果一个应用同时包括服务提供者和调用者 feige.properties配置文件可以合并 feige.protocol=io.feige.rpc.protocol.kryo.KryoObjectProtocol 需要调用的服务配置,每个服务可以配置多个服务提供者,即host的配置,可以根据你的配置自动进行负载均衡 feige-import.xml 该文件放在classpath:feige/feige-import.xml io.feige.rpc.TestService 30 130.255.2.107 10221 1 130.255.2.107 10222 2 ###服务调用 ####1. API调用 RpcConsumerService rpcConsumerService=new RpcConsumerService();//该对象全局唯一即可,不要重复实例化 rpcConsumerService.start("feige/feige-import.xml"); //由于与服务器建连需要一定时间,还没有建连成功就调用会出异常,所以这睡眠2秒,便于测试 Thread.sleep(2000); TestService service=rpcConsumerService.getProxyService(TestService.class); service.test(); ####2. spring整合 ##三、后续 监控、自动发现服务、性能优化、多语言 ##四、特别说明 1.feige.protocol配置为io.feige.rpc.protocol.kryo.KryoObjectProtocol时,所有类必需有默认构造方法,否则会出错,因为kryo依赖默认构造方法,但kryo序列化效率确实比java原生序列化高
2.服务提供者与调用者feige.protocol如果要配置,配置必需一致 ##五、下载 jar包下载:[http://www.feige.io/rpc/](http://www.feige.io/rpc/)
示例项目:[http://www.feige.io/rpc/samples/](http://www.feige.io/rpc/samples/)