1.0.7 • Published 4 years ago
egg-uki-grpc v1.0.7
egg-uki-grpc
依赖说明
依赖的 egg 版本
egg-uki-grpc 版本 | egg 1.x |
---|---|
1.x | 😁 |
0.x | ❌ |
依赖的插件
grpc jeager
开启插件
// config/plugin.js
exports.ukiGrpc = {
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 GetPing (Ping) returns (Ping) {
//下方的方法需要删除
// option (google.api.http) = {
// get: "/qa/get"
// };
}
}
特别注意:
- 因为grpc在go使用的一些特殊需要,会有一些我们不需要且无法兼容的内容, 这些内容需要我们在复制时删除,如上图proto中的两个注释
proto文件如上,通过下方代码可以使用如下方式调用grpc。 调用方法封装为promise
const result= await ctx.grpcInvoker('demo', 'Demo', 'getPing', { data: { value: '3333' } })
- demo : server名
- Demo : service名
- getPing : rpc方法名 无论原文件是否大小写 第一个字母一律小写
- data : 数据内容
- opts : 默认不需要,当有对某个接口有特殊的超时需求时可以设置 opts= {timeout:10000} 即设置这次请求超时时间为10s
详细配置
请到 config/config.default.js 查看详细配置项说明。
exports.ukiGrpc = {
clients: {
//server名
demo: {
file: 'app/proto/demo.proto', //具体的文件地址
//TODO:可能需要一些配置
clientOptions: {
},
endpoint: 'localhost:50051', //grpc服务的连接地址
timeout: 5000, //超时时间
},
},
};
//链路追踪的配置
exports.jaeger = {
serviceName: 'service', //当前服务的名字
sampler: {
type: 'const',
param: 1,
},
reporter: {
collectorEndpoint: 'http://127.0.0.1:14268/api/traces', //链路地址 线上使用下方地址
},
}
单元测试
提问交流
License
1.0.7
4 years ago
1.0.6
4 years ago
1.0.5
4 years ago
1.0.4
5 years ago
1.0.3
5 years ago
1.0.2
5 years ago
1.0.1
5 years ago
1.0.0
5 years ago
0.1.4
5 years ago
0.1.3
5 years ago
0.1.2
5 years ago
0.1.1
5 years ago
0.0.9
5 years ago
0.0.8
5 years ago
0.0.7
5 years ago
0.0.6
5 years ago
0.0.5
5 years ago
0.0.4
5 years ago
0.0.3
5 years ago
0.0.2
5 years ago
0.0.1
5 years ago