потребление grp c service с использованием go - PullRequest
1 голос
/ 26 мая 2020

Я планирую использовать grp c в качестве протокола связи c синхронизации между службами. Есть много разных сервисов, и я создал файл pb.go со всем соответствующим кодом для клиента и сервера, используя protoc с плагином go -rp c.

Теперь я пытаясь выяснить лучший или распространенный способ использования этой услуги из другой службы. Вот что у меня есть:

Вариант 1

  1. используйте файл .proto из сервиса (загрузите его)
  2. запустите компилятор protoc и сгенерируйте файл ...pb.go для использования потребителем

Вариант 2

  1. , потому что ...pb.go уже сгенерирован на стороне службы grp c для реализации сервера, а мой клиент - это еще одна служба, написанная в go. Я могу представить это как подмодуль (другой файл .mod в подкаталоге)
  2. используйте go get github.com/usr/my-cool-grpc-service/client

Вариант 2 кажется мне более привлекательным, потому что он делает использование услуги очень простым и доступным для всех других услуг, которые могут этого требовать.

На С другой стороны, я знаю, что файл .proto - это контракт, который не может генерировать клиентов для многих разных языков и должен использоваться как источник истины.

Боюсь, что, выбрав вариант 2, я ничего не знаю. возможные подводные камни, с которыми я мог бы столкнуться в отношении обратной совместимости bility или любой другой топи c ..

Итак, каков идиоматический c способ использования услуги gRP C?

...