Реестр на стороне клиента для сервисов gRPC, полученных от Consul с постоянным подключением - PullRequest
0 голосов
/ 17 января 2019

У меня есть сервис Go, который подключается и на основе плагина служит различным целям. В начале он регистрирует адрес и порт в открытии службы консула и имеет такие теги, как plugin1, plugin2, plugin3 и т. Д.

На стороне клиента я хочу подключиться к сервисам на основе того, что он реализует. Я могу получить их у консула, позвонить по номеру grpc.Dial и передать его клиентской реализации прото. Когда я вызываю нужную конечную точку, я просто закрываю соединение и продолжаю.

Проблема с этим, grpc.Dial может быть многоразовым соединением, поэтому нет необходимости вызывать его в любое время, когда я хочу подключиться к услуге, но это слишком динамично, чтобы иметь постоянное соединение со службами, потому что службы могут могут быть удалены или могут появиться новые услуги.

Каков наилучший способ постоянного подключения к службам на основе этих требований / проблем?

...