使用gRPC服务定义作为多个实例的接口

用户名

假设我们有一个Search-Service

service Search {
  rpc Search (SearchRequest) returns (SearchReply) {}
}

message SearchRequest {
  string query = 1;
}

message SearchReply {
  repeated string message = 1;
}

现在,让我们考虑一下我们应该有多个都应该实现该接口以提供搜索的搜索引擎。

我碰到的难题是gRPC只允许在单个IP:PORT对后面提供单身的Search服务。因此,在环境中集成多个搜索引擎的唯一方法是将每个搜索引擎置于不同的IP:PORT后面,不可能将它们放在同一端口上。

埃里克·安德森

同一台服务器上不能有同一服务的多个实例。解决问题的方法主要有以下三种,具体取决于问题的类型:

  1. 合并结果
  2. 包含请求参数
  3. 使用不同的服务名称

如果“多个搜索引擎”在语义上是等效的,则无需使用单独的方法,而是使用汇总结果进行响应。

如果“多个搜索引擎”与数据有关,则在中包含另一个参数SearchRequest,例如string dataset = 2;

否则,请提供单独的服务:ImageSearchWebSearch

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章