Я столкнулся с проблемой обработки ошибок на моем клиенте gRP C. Коротко: у меня клиент и сервер gRP C работают в Kubernetes. Клиент делает синхронные звонки на сервер, чтобы получить некоторые данные. Все идет хорошо, но когда-то go клиент получил ошибку rpc error: code = Unavailable desc = resolver returned no addresses
. Я перезапустил POD, и он снова подключился без проблем.
После поиска в Google и просмотра исходного кода балансировщика gRP C я обнаружил, что эта ошибка возвращается, когда балансировщик не может получить IP от DNS (это вполне логично). Похоже, это последствия перебалансировки POD Kubernetes или около того.
Но вопрос в том, как правильно обработать эту ошибку? Клиент GRP C имеет встроенный механизм переподключения, но в этой ситуации он не срабатывает. Конечно, я могу уловить эту ошибку, закрыть существующее соединение и снова набрать номер, но я не хочу строить велосипед, если есть более правильный способ его обработки.
Спасибо!