You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
|**`go_client`**| Go client implementation demonstrating cross-language gRPC interoperability. |
36
38
37
39
## ✨ Key Features
38
40
@@ -49,7 +51,7 @@ The project is organized into the following modules to ensure separation of conc
49
51
50
52
---
51
53
52
-
## Quick Start
54
+
## Quick Start
53
55
54
56
### 1. Prerequisites (Nacos)
55
57
@@ -67,6 +69,9 @@ docker run --name nacos-standalone \
67
69
68
70
Execute the following commands to start the Java RPC Provider. This will build the project and register the `HelloService` to your local Nacos instance.
69
71
72
+
The default `rpc.protocol` is `netty` for Java-to-Java Provider/Consumer calls.
73
+
If you need Python/Go interoperability, switch to `grpc` in `rpc-core/src/main/resources/rpc-config.yaml`.
74
+
70
75
```bash
71
76
# 1. Build Project
72
77
mvn clean package -DskipTests
@@ -96,7 +101,7 @@ mvn test -pl rpc-core,rpc-transport-netty
96
101
Run the full integration test suite:
97
102
98
103
```bash
99
-
mvn test -pl rpc-consumer -Dtest=FullIntegrationTest
104
+
mvn test -pl rpc-consumer -am -Dtest=FullIntegrationTest
100
105
```
101
106
102
107
### 5. Performance & Benchmark Results
@@ -138,17 +143,22 @@ Configure the framework via `rpc-core/src/main/resources/rpc-config.yaml`.
load-balancer: roundrobin # Load Balancer: roundrobin, random
155
+
max-message-size: 8388608# 8MB
150
156
```
151
157
158
+
> [!IMPORTANT]
159
+
> Use `netty`/`http`/`http2` with `rpc-consumer` (`RpcClientProxy`).
160
+
> Switch to `grpc` only when interoperating with standard grpc clients (Python/Go).
161
+
152
162
## 🔌 SPI Design & Ecosystem
153
163
154
164
XiaoYu RPC adheres to the **Microkernel Architecture**, where the core (`rpc-core`) only provides the lifecycle management and SPI (Service Provider Interface) definitions, while all specific functionalities are implemented as plugins. This design ensures the framework is highly extensible, lightweight, and follows the **Open-Closed Principle**.
@@ -289,7 +299,7 @@ This framework supports interoperability with standard gRPC clients (e.g., Pytho
0 commit comments