У меня есть сервис Go, который подключается и на основе плагина служит различным целям. В начале он регистрирует адрес и порт в открытии службы консула и имеет такие теги, как plugin1
, plugin2
, plugin3
и т. Д.
На стороне клиента я хочу подключиться к сервисам на основе того, что он реализует. Я могу получить их у консула, позвонить по номеру grpc.Dial
и передать его клиентской реализации прото. Когда я вызываю нужную конечную точку, я просто закрываю соединение и продолжаю.
Проблема с этим, grpc.Dial
может быть многоразовым соединением, поэтому нет необходимости вызывать его в любое время, когда я хочу подключиться к услуге, но это слишком динамично, чтобы иметь постоянное соединение со службами, потому что службы могут могут быть удалены или могут появиться новые услуги.
Каков наилучший способ постоянного подключения к службам на основе этих требований / проблем?