# 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!
## 🤖 体系

## ➰ 项目亮点
✅基于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...
}
```
## 🍺 交流 & 学习
非常感谢阅读该项目文档,以下是个人联系方式和博客地址,欢迎进行项目答疑和学习交流。

## 📄 免责声明 Disclaimers
The code is for demo and testing only. 代码仅用于演示和测试。用于商业用途,请联系授权并注明来源。
⚠⚠⚠请勿将本系统代码用于商业用途!