go-chassis добавляет расширенные облачные функции в grpc-go

задняя часть gRPC

gRPC и переходное шасси

Хотя сам grpc-go также обладает некоторыми облачными возможностями, такими как балансировка нагрузки, этого далеко не достаточно, и пользователям необходимо написать собственный код для реализации.

go шасси — это унифицированная среда разработки микросервисов, которая может интегрировать различные протоколы связи и использовать унифицированное управление маршрутизацией, балансировку нагрузки, понижение уровня автоматического выключателя, ограничение тока, мониторинг и другие функции.

С ростом популярности grpc, компания go решила интегрировать grpc в свою собственную структуру, чтобы добавить в grpc-go более богатые и мощные функции.

Возможности, которые может предоставить шасси, можно понять из этой статьи.

Среда разработки микросервисов на языке Go

принцип

шасси go предназначено для обеспечения доступа к любому протоколу

Независимо от протокола вы можете получить доступ к платформе шасси go, реализовав клиентский и серверный интерфейсы.

GitHub.com/go-chassis/…

GitHub.com/go-chassis/…

Каждый запрос будет преобразован в унифицированный абстрактный вызов, а вызов — это стандартная модель управления микросервисами, поэтому вы можете использовать стандартные функции, такие как балансировка нагрузки, объединение, управление маршрутизацией и т. д., и, наконец, использовать стандартный протокол для отправки запроса. повторный запрос, протокол полностью совместим с родным протоколом.

пример

Написание программ grpc с использованием шасси go должно соответствовать определенным стандартам, что отличается от собственного метода написания.Полный пример находится вGitHub.com/go-chassis/…

На этот раз в качестве центра регистрации будет использоваться сервисный центр Apache ServiceComb.

Написать прото IDL

1. Напишите файл описания прототипа

Внутри шасси есть понятия схемы и операции: helloworld.Greeter — схема, SayHello — операция.

2. Создайте helloworld.pb.go

протокол --go_out=.helloworld.proto

Следующие шаги отличаются от родного grpc-go.

3. Вручную изменить переменную в helloworld.pb.go

_Greeter_serviceDesc необходимо изменить на Greeter_serviceDesc

То есть эта переменная открыта для использования другими пакетами.

Сторона провайдера

1. Напишите бизнес-логику

2. Прописать бизнес-логику для перехода на шасси, переменную Greeter_serviceDesc, которую необходимо изменить в данный момент.

Первый параметр указывает, на каком сервере протоколов вы хотите зарегистрироваться, второй — бизнес-логику, а третий — описание grpc service.

3. Измените конфигурационный файл шасси.yaml, минимальные элементы конфигурации, необходимые для настройки сервисного центра, и укажите сервер протокола, который необходимо запустить.

4. Измените microservice.yaml, указав имя микрослужбы.

5. Запустите службу

Потребительская сторона

1. Получите файл pb для создания кода перехода

протокол --go_out=.hello.proto

2. Измените конфигурационный файл шасси.yaml

3. Измените microservice.yaml и назовите потребителя

4. Вызвать сервер в main, указать имя микросервиса (RPCServer), схему, операцию и параметры и вернуться

Итак, теперь у grpc есть базовые возможности балансировки нагрузки, сервер регистрируется в сервисном центре.

Потребитель будет периодически кэшировать список экземпляров провайдера для балансировки нагрузки.

Более расширенные функции, настройка документации

Go-Chassis.read Doc S.io/en/latest/!...?)