# micro-rpc **Repository Path**: iiww/micro-rpc ## Basic Information - **Project Name**: micro-rpc - **Description**: 一个基于spring和netty的rpc框架。符合springcloud规范,实现服务远程调用功能,支持注册中心、负载均衡、限流熔断等,它的使用方式和openfeign一样简单 - **Primary Language**: Java - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 4 - **Forks**: 1 - **Created**: 2024-01-02 - **Last Updated**: 2024-11-15 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README **-----------------客户端配置----------------** ``` @MicroRpcClient(name = "test-service", url = "127.0.0.1:28777") public interface OrderService { /** * 方式一:同步请求,直接返回结果,发生错误时抛出异常 */ OrderEntity submitOrder(OrderEntity order); /** * 方式二:同步请求,使用ResponseHolder对结果进行包装,用来获取到错误信息 */ ResponseHolder submitOrder(OrderEntity order); /** * 方式三:异步请求,该请求会立即返回,然后通过SendCallBack的自定义实现类异步处理结果 * public interface SendCallback { * void onSuccess(Object result); * void onException(Throwable e); * } */ void submitOrder(OrderEntity order, SendCallback sendCallback); } ``` **-----------------服务端service方法----------------** ``` /** * service不用额外判断,如果开启全新,需要进行权限配置 */ @Service public class OrderService { public OrderEntity submitOrder(OrderEntity order) { System.out.println("接收订单:" + order.toString()); order.setSubmit(true); return order; } } ``` example-client 客户端示例 example-server 服务端示例 microrpc-core rpc核心框架,负责通信,解码 microrpc-sentinel-adapter @MicroRpcClient标注的请求自动识别为sentinel资源,可以通过sentinel配置拦截策略 spring-cloud-start-microrpc microrpc的springcloud版本,依赖该项目可以实现服务注册,服务发现,负载均衡功能 初步性能测试 1、单机1200k, 10000次请求耗时: { "http": "21885", "netty": "5585" } 2、局域网两台笔记本,1200k,10000次请求 { "http": "77304", "netty": "35201" } 3、局域网两台笔记本,12k,10000次请求 { "http": "58177", "netty": "30134" } 4、局域网两台笔记本,10000k,10000次请求 { "http": "154912", "netty": "52027" } 5、局域网两台笔记本,10000k,10000次请求 { "http": "180901", "netty": "60529" }