gRPC и переходное шасси
Хотя сам grpc-go также обладает некоторыми облачными возможностями, такими как балансировка нагрузки, этого далеко не достаточно, и пользователям необходимо написать собственный код для реализации.
go шасси — это унифицированная среда разработки микросервисов, которая может интегрировать различные протоколы связи и использовать унифицированное управление маршрутизацией, балансировку нагрузки, понижение уровня автоматического выключателя, ограничение тока, мониторинг и другие функции.
С ростом популярности grpc, компания go решила интегрировать grpc в свою собственную структуру, чтобы добавить в grpc-go более богатые и мощные функции.
Возможности, которые может предоставить шасси, можно понять из этой статьи.
Среда разработки микросервисов на языке Go
принцип
шасси go предназначено для обеспечения доступа к любому протоколу
Независимо от протокола вы можете получить доступ к платформе шасси go, реализовав клиентский и серверный интерфейсы.
Каждый запрос будет преобразован в унифицированный абстрактный вызов, а вызов — это стандартная модель управления микросервисами, поэтому вы можете использовать стандартные функции, такие как балансировка нагрузки, объединение, управление маршрутизацией и т. д., и, наконец, использовать стандартный протокол для отправки запроса. повторный запрос, протокол полностью совместим с родным протоколом.
пример
Написание программ 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 есть базовые возможности балансировки нагрузки, сервер регистрируется в сервисном центре.
Потребитель будет периодически кэшировать список экземпляров провайдера для балансировки нагрузки.
Более расширенные функции, настройка документации