Я планирую использовать grp c в качестве протокола связи c синхронизации между службами. Есть много разных сервисов, и я создал файл pb.go
со всем соответствующим кодом для клиента и сервера, используя protoc
с плагином go -rp c.
Теперь я пытаясь выяснить лучший или распространенный способ использования этой услуги из другой службы. Вот что у меня есть:
Вариант 1
- используйте файл
.proto
из сервиса (загрузите его) - запустите компилятор
protoc
и сгенерируйте файл ...pb.go
для использования потребителем
Вариант 2
- , потому что
...pb.go
уже сгенерирован на стороне службы grp c для реализации сервера, а мой клиент - это еще одна служба, написанная в go. Я могу представить это как подмодуль (другой файл .mod
в подкаталоге) - используйте
go get github.com/usr/my-cool-grpc-service/client
Вариант 2 кажется мне более привлекательным, потому что он делает использование услуги очень простым и доступным для всех других услуг, которые могут этого требовать.
На С другой стороны, я знаю, что файл .proto
- это контракт, который не может генерировать клиентов для многих разных языков и должен использоваться как источник истины.
Боюсь, что, выбрав вариант 2, я ничего не знаю. возможные подводные камни, с которыми я мог бы столкнуться в отношении обратной совместимости bility или любой другой топи c ..
Итак, каков идиоматический c способ использования услуги gRP C?