# tianai-rpc-springboot-starter
**Repository Path**: tianai/tianai-rpc-springboot-starter
## Basic Information
- **Project Name**: tianai-rpc-springboot-starter
- **Description**: tianai-rpc 的SpringBoot快速启动器
- **Primary Language**: Java
- **License**: Apache-2.0
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 8
- **Forks**: 4
- **Created**: 2020-02-02
- **Last Updated**: 2025-01-07
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
# 这是对**TIANAI-RPC** 框架的**springboot**脚手架工具,方便配置启动
## 使用方式
### 1. 在Springboot项目中引入依赖
```xml
cloud.tianai.rpc
tianai-rpc-springboot-starter
1.3.7
```
### 2. 相关配置
> 配置服务注册、序列化、断开等等
- server端
```yaml
tianai-rpc:
# 服务注册, 默认 zookeeper
registry:
name: zookeeper # 支持zookeeper和nacos
# 服务注册的地址, 默认 127.0.0.1:2181
address: 127.0.0.1:2181 # 地址
# otterProp: 配置nacos一些其他配置时这样配置,比如配置namespace
# namespace: xxx
# 序列化 默认hessian2
codec: hessian2
server:
# server端启动时的端口, 默认20881
port: 20883
# 超时,单位 ms
timeout: 5000
```
- client端
```yaml
tianai-rpc:
registry:
# 指定服务注册 为nacos,默认zookeeper
name: nacos
# 指定注册地址 默认 127.0.0.1:2181
address: 127.0.0.1:8848
otterProp:
# 配置nacos命名空间
namespace: 1ca3c65a-92a7-4a09-8de1-4bfe1c89d240
# 指定序列化,默认hessian2
codec: hessian2
```
---
### 3. 使用(注解方式):
- server端
>
>要提供RPC服务的类上加上 **@RpcProvider**注解即可
```java
@Service
@RpcProvider
public class DemoServiceImpl implements DemoService {
}
```
- client端
>要使用RPC服务的接口的field中加上 **@RpcConsumer** 注解即可
```java
@RestController
public class DemoController {
@RpcConsumer
private DemoService demoService;
@GetMapping("/port")
public Integer getPort() {
demoService.toString();
return demoService.getPort();
}
}
```
### 4. xml 方式
- server端
```xml
```
- client端
```xml
```
- 将配置好的xml注入到spring中
例如: `@ImportResource(locations = "classpath:rpc.xml")`
- client直接使用原生spring方式注入接口就可以使用了
例如:
```java
@RestController
public class DemoController {
@Autowired
private DemoService demoService;
@GetMapping("/port")
public Integer getPort() {
demoService.toString();
return demoService.getPort();
}
}
```
这只是简单的用法,它很强大,
基于 tianai-rpc的高扩展性以及架构的便捷性,基本可以实现你想实现的大部分需求
### 5. 其它使用方式详见 tianai-rpc
### 6. 如果你想了解它的一些其他扩展,可以了解下
1. 后处理器
> # 注 : 直接实现该接口然后注入到spring中,它会自动装配
>
> ```
> RpcClientPostProcessor // client后处理器
> RpcInvocationPostProcessor // provider 后处理器
> ```
2. 便捷工具类 `RpcContext` 可以直接使用该工具类在业务中做简单扩展
3. 基于SPI的 `Registry`, `RemotingDataCodec`, `RemotingClient`,`RemotingServer`, `LoadBalance`
这些接口都可以自定义扩展,
实现该接口后在`META-INF/tianai-rpc/` 目录下按照规范编写对应是SPI文件即可自动装配到 tianai-rpc中
详情请参考 tianai-rpc框架
http://www.gitee.com/tianai/tianai-rpc
- qq群: 1021884609