Consul 注册的信息
reg := api.AgentServiceRegistration{
ID: strconv.FormatInt(time.Now().UnixNano(), 10),
Name: name,
Address: listen,
Port: port,
Check: &api.AgentServiceCheck{
GRPC: fmt.Sprintf("%v:%v/%v", listen, port, name),
Interval: "5s",
Notes: "Consul check service health status.",
DeregisterCriticalServiceAfter: "10s",
},
}
我按照 https://www.consul.io/docs/discovery/checks 里的 grpc 检查里,写了个 proto
syntax = "proto3";
package grpc_health_v1;
option go_package = ".;grpc_health_v1";
message HealthCheckRequest {
string service = 1;
}
message HealthCheckResponse {
enum ServingStatus {
UNKNOWN = 0;
SERVING = 1;
NOT_SERVING = 2;
SERVICE_UNKNOWN = 3; // Used only by the Watch method.
}
ServingStatus status = 1;
}
service Health {
rpc Check(HealthCheckRequest) returns (HealthCheckResponse);
rpc Watch(HealthCheckRequest) returns (stream HealthCheckResponse);
}
我用 BloomRPC 和自己写的 client 都能正常访问这个 Check 方法,但是注册上了 Consul 却显示失败
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.