egg-uki-grpc
依赖说明
依赖的 egg 版本
egg-uki-grpc 版本 | egg 1.x |
---|---|
1.x | 😁 |
0.x | ❌ |
依赖的插件
grpc jeager
开启插件
// config/plugin.jsexportsukiGrpc = enable: true package: 'egg-uki-grpc';
使用场景
syntax = "proto3"; package proto; //下方的引入需要删除 // import "google/api/annotations.proto"; message Ping string value = 1; string age = 2; message Post string name = 1; string age = 2; service Demo rpc { //下方的方法需要删除 // option (google.api.http) = { // get: "/qa/get" // }; }
特别注意:
- 因为grpc在go使用的一些特殊需要,会有一些我们不需要且无法兼容的内容, 这些内容需要我们在复制时删除,如上图proto中的两个注释
proto文件如上,通过下方代码可以使用如下方式调用grpc。 调用方法封装为promise
const result= await ctx
- demo : server名
- Demo : service名
- getPing : rpc方法名 无论原文件是否大小写 第一个字母一律小写
- data : 数据内容
- opts : 默认不需要,当有对某个接口有特殊的超时需求时可以设置 opts= {timeout:10000} 即设置这次请求超时时间为10s
详细配置
请到 config/config.default.js 查看详细配置项说明。
exportsukiGrpc = clients: //server名 demo: file: 'app/proto/demo.proto' //具体的文件地址 //TODO:可能需要一些配置 clientOptions: endpoint: 'localhost:50051' //grpc服务的连接地址 timeout: 5000 //超时时间 ;//链路追踪的配置exportsjaeger = serviceName: 'service' //当前服务的名字 sampler: type: 'const' param: 1 reporter: collectorEndpoint: 'http://127.0.0.1:14268/api/traces' //链路地址 线上使用下方地址