# urpc-frame **Repository Path**: openus/urpc-frame ## Basic Information - **Project Name**: urpc-frame - **Description**: 简易PRC实现 - **Primary Language**: Unknown - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 1 - **Forks**: 0 - **Created**: 2024-08-28 - **Last Updated**: 2025-05-13 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README ## 简易RPC实现 使用服务名注册,减少注册中心压力,像 spring cloud 注册中心一样,只注册服务名称以及其服务节点地址 ### 客户端 + 服务发现 + 负载均衡 + 远程调用 + 序列化 + netty 通信 ### 服务端 + 注册服务 + 序列化 + 反序列化 + 反射 客户端接收响应 ```bash response: hello from server张三 response: {"description":"测试","message":"hello from server"} ```` 服务器接收到 ```bash read index:0 write index:483 capacity:483 +-------------------------------------------------+ | 0 1 2 3 4 5 6 7 8 9 a b c d e f | +--------+-------------------------------------------------+----------------+ |00000000| 48 45 4c 4c 4f 52 50 43 01 00 01 00 00 01 d3 00 |HELLORPC........| |00000010| ac ed 00 05 73 72 00 25 63 6f 6d 2e 77 74 66 2e |....sr.%com.wtf.| |00000020| 72 70 63 2e 63 6f 72 65 2e 74 72 61 6e 73 70 6f |rpc.core.transpo| |00000030| 72 74 2e 52 70 63 52 65 71 75 65 73 74 47 2f 01 |rt.RpcRequestG/.| |00000040| d2 aa ff 34 58 02 00 06 5b 00 04 61 72 67 73 74 |...4X...[..argst| |00000050| 00 13 5b 4c 6a 61 76 61 2f 6c 61 6e 67 2f 4f 62 |..[Ljava/lang/Ob| |00000060| 6a 65 63 74 3b 4c 00 0a 69 6e 74 65 72 66 61 63 |ject;L..interfac| |00000070| 65 73 74 00 12 4c 6a 61 76 61 2f 6c 61 6e 67 2f |est..Ljava/lang/| |00000080| 53 74 72 69 6e 67 3b 4c 00 06 6d 65 74 68 6f 64 |String;L..method| |00000090| 71 00 7e 00 02 5b 00 0e 70 61 72 61 6d 65 74 65 |q.~..[..paramete| |000000a0| 72 54 79 70 65 73 74 00 12 5b 4c 6a 61 76 61 2f |rTypest..[Ljava/| |000000b0| 6c 61 6e 67 2f 43 6c 61 73 73 3b 4c 00 09 72 65 |lang/Class;L..re| |000000c0| 71 75 65 73 74 49 64 71 00 7e 00 02 4c 00 0b 73 |questIdq.~..L..s| |000000d0| 65 72 76 69 63 65 4e 61 6d 65 71 00 7e 00 02 78 |erviceNameq.~..x| |000000e0| 70 75 72 00 13 5b 4c 6a 61 76 61 2e 6c 61 6e 67 |pur..[Ljava.lang| |000000f0| 2e 4f 62 6a 65 63 74 3b 90 ce 58 9f 10 73 29 6c |.Object;..X..s)l| |00000100| 02 00 00 78 70 00 00 00 01 73 72 00 19 63 6f 6d |...xp....sr..com| |00000110| 2e 77 74 66 2e 72 70 63 2e 61 70 69 2e 64 74 6f |.wtf.rpc.api.dto| |00000120| 2e 48 65 6c 6c 6f 5c 14 1f c6 c7 28 02 bc 02 00 |.Hello\....(....| |00000130| 02 4c 00 0b 64 65 73 63 72 69 70 74 69 6f 6e 71 |.L..descriptionq| |00000140| 00 7e 00 02 4c 00 07 6d 65 73 73 61 67 65 71 00 |.~..L..messageq.| |00000150| 7e 00 02 78 70 74 00 06 e6 b5 8b e8 af 95 74 00 |~..xpt........t.| |00000160| 06 e5 bc a0 e4 b8 89 74 00 1c 63 6f 6d 2e 77 74 |.......t..com.wt| |00000170| 66 2e 72 70 63 2e 61 70 69 2e 48 65 6c 6c 6f 53 |f.rpc.api.HelloS| |00000180| 65 72 76 69 63 65 74 00 05 68 65 6c 6c 6f 75 72 |ervicet..hellour| |00000190| 00 12 5b 4c 6a 61 76 61 2e 6c 61 6e 67 2e 43 6c |..[Ljava.lang.Cl| |000001a0| 61 73 73 3b ab 16 d7 ae cb cd 5a 99 02 00 00 78 |ass;......Z....x| |000001b0| 70 00 00 00 01 76 71 00 7e 00 07 74 00 24 61 35 |p....vq.~..t.$a5| |000001c0| 31 31 31 66 35 35 2d 39 31 62 31 2d 34 36 39 62 |111f55-91b1-469b| |000001d0| 2d 61 65 66 36 2d 34 61 64 38 61 35 33 34 64 31 |-aef6-4ad8a534d1| |000001e0| 61 66 70 |afp | +--------+-------------------------------------------------+----------------+ ``` ### 注册中心 这里默认实现使用 zookeeper, zookeepr使用3.5.x,因为 curator 4.x 需要支持 zookeeper 3.5.x