# Echo-RPC框架 **Repository Path**: whiteinjava/echo-rpc ## Basic Information - **Project Name**: Echo-RPC框架 - **Description**: 项目描述:参考Dubbo开源项目自主设计实现的Java高性能RPC调用框架。同时为该框架配备了 SpringBoot Starter,支持注解驱动、SPI动态扩展、负载均衡、服务发现、心跳检测以及故障容错等能力。 关键词: RPC、Java SPI、反射、JDK动态代理、Load Balancing、Fault Tolerance、Service Discovery - **Primary Language**: Java - **License**: BSD-2-Clause - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 1 - **Forks**: 1 - **Created**: 2024-05-10 - **Last Updated**: 2024-08-05 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README ## 📖 简介 - 欢迎来到Echo-RPC的后端仓库,我正在使用Java对现有的RPC框架持续改进。 - 作为一个新颖的Java学习项目,你可以从【快速开始】和【技术栈】部分得到有效的信息🎉 - Echo-RPC完全免费和开源,欢迎各位小伙伴进行Fork和发起PR! ## 🤖 体系 ![](https://gitee.com/whiteinjava/echo-rpc/raw/master/images/overview.jpeg) ## ➰ 项目亮点 ✅基于JDK动态代理和工厂模式实现无感知服务调用
✅基于Java SPI和反射增强框架定制性
✅基于Vert.x TCP服务器自实现RPC协议,提高网络传输性能
✅基于RecordParser解决TCP半、粘包问题,提高服务稳定性
✅智能负载均衡
✅高扩展性
✅心跳检测和续约
✅容错策略 ## 🔰 快速开始 🎈第零步:框架集成 ```xml com.shuai xs-rpc-spring-boot-starter 1.0.0 ``` 🎈第一步:框架配置 ```properties xs-rpc.name=XS-RPC xs-rpc.version=1.0.0 xs-rpc.serverAddress=127.0.0.1 xs-rpc.serverPort=8085 ``` 更多配置请查看:[https://www.yuque.com/xiaoshuai.bxs/zwcsw0/eeexc77vgxbut8mx?singleDoc#](https://www.yuque.com/xiaoshuai.bxs/zwcsw0/eeexc77vgxbut8mx?singleDoc#) 🎈第二步:定义RPC接口 ```java package com.shuaiechorpc.samples.api; public interface GreetingsService { String sayHi(String name); } ``` 🎈第三步:定义上述接口实现 ```java package com.shuai.echorpc.samples.provider; import com.shuai.echorpc.samples.api.GreetingsService; @Service @RpcProvider public class GreetingsServiceImpl implements GreetingsService { @Override public String sayHi(String name) { return "hi, " + name; } } ``` 🎈第四步:消费方服务调用 ```java package com.shuai.echorpc.samples.consumer; // package others... @Service public class GreetingsServiceConsumer { @RpcConsumer private GreetingsService greetingsService; // consume greetingService... } ``` ## 🍺 交流 & 学习 非常感谢阅读该项目文档,以下是个人联系方式和博客地址,欢迎进行项目答疑和学习交流。 ![](https://gitee.com/whiteinjava/echo-rpc/raw/master/images/self.png) ## 📄 免责声明 Disclaimers The code is for demo and testing only. 代码仅用于演示和测试。用于商业用途,请联系授权并注明来源。 ⚠⚠⚠请勿将本系统代码用于商业用途!