跨 平台 全双工 双向 (异步) RPC 系统, 也 通信 两端 都 可以 作为 RPC 服务 方 和 客户 端.
**********************
Build StatusWindows:
************************** Linux:******************动机
的 PC RPC 系统 大多 用于 互联网 行业 后端 系统 , 他们 之间 更像 一个 单向 图 彼此 彼此 依赖 互相 / 互相 调用 , 但 游戏 等行业 中 则 两 节点 之间 可能 相互 调用。 PC 我们 需要 一个 PC RPC , 在 一个 链接 链接 两端 均可 开启 服务 和 客户 端 , 这里 的 链接 是 一个 虚拟 , 它 不一定 基于 , TCP , 也 即 “链接” 的 两端可以 只 存在 逻辑 链接 而 没有 网络 直 连。
设计 准则
- ************************** RPC 对 拦截 器 , 能够 对 Request 或 Response 做 一些 处理 (比如 监控 、 认证 、 加 解密 、 分布式 跟踪)
- RPC 核心 不 依赖 网络 网络 传输 协议 , 即 : 我们 可以 开发 任何 网络开启 和 逻辑 来 PC RPC 两端 , 将 收到 的 消息 PC RPC 核心 , 并 通过 拦截 器 实现 / 决定 把 Request 或 Response 以 何种 方式 传递 给 谁。 (******************************** 此 RPC 是 基于 异步 回调 , 我 认为 C 里 比较 安全和 靠谱 的 方式 , 除了 回调 地狱 让人 恶心 ……
- RPC 系统 核心 (以及 以及) 是 线程 安全 的 任意 线程 调用 调用RPC ; 且 可以 在 任意 线程 使用 XXXReply :: PTR 返回 onse Response。
- RPC 是 并行 的 , 即 : 客户 端 可以 随意 发送 Request 而 不必 等待之前 的 完成。 且 允许 先 后 后 的 Request 的 Response。
- RPC 系统 会 为 每 一个 “链接” S XXXService 对象 , 这样 可以 让的 的 “链接” 绑定 / 持有 各自 的 业务 对象 (有 状态) (而 pc grpc 等 那样 , 一个 一个 一个 一个 对象 PC RPC service 链接 类似 短 链接 : 收到 请求 返回 数据 即可 即可)
- HTTP API (同理 2, 此 功能 通过 具体 通信 协议 和 拦截 器支持 支持, RPC 核心 本身 与 此 无关).
- ********************
Windows 下 可 使用vcpkgc 安装 以下 依赖 库.
******************
protobuf
请 注意, 使用 使用 Windows 时, 务必 使用vcpkg install brynet –head安装 brynet.
且 务必 根据 自身 系统 中 的 protoc 版本 对 gayrpc_meta.proto 和 gayrpc_option.proto 预先 生成 代码 在 在 c src 目录 执行:
https://github.com/IronsDu/gayrpc/tree/master/examples
Latency (single threaded):
GIPHY App Key not set. Please check settings