Разница между go-micro и go-grpc

Я построил сервис "go-micro". Насколько я понимаю, go-micro использует protobuf для создания определения и создания структур сообщений gRPC в качестве сетевого протокола (я, конечно, могу ошибаться здесь).

Если приведенное выше верно, то для чего используется плагин "go-grpc"?

Спасибо!

2 ответа

Решение

Go-micro использует интерфейс Go для своих абстракций. Из-за этого базовая реализация может быть заменена. Go-Micro по умолчанию использует HTTP для связи

Go-GRPC - это простая оболочка для go-micro и плагинов grpc для клиента и сервера.

Позвольте мне попробовать.

RPC - это просто модель вызова метода, если мы можем вызывать удаленный сервис из локальной системы, мы можем сказать, что это некий тип RPC.

RPC бывают разных типов, так как клиент и сервис могут взаимодействовать в разных протоколах, таких как UTP, TCP, HTTP, HTTP/2.

Protobuf, как и JSON, XML, является просто форматом обмена данными, за исключением того, что json и xml основаны на тексте, а protobuf основан на байтах и ​​экономит много трафика и время сериализации.

Итак, вместе мы можем объединить эти два, чтобы сформировать все виды RPC. Например, отправка данных JSON через UTP - это одна из форм RPC, отправка данных XML через TCP - это еще одна, отправка данных Protobuf через UTP - еще одна.

GRPC - это одна из форм RPC, которая отправляет данные Protobuf через протокол HTTP/2.

go-mico - это инфраструктура микросервисов, сервисы обмениваются данными через RPC, поэтому go-micro предлагает разработчикам все виды RPC на выбор, и они представлены в виде плагинов, таких как UTP, HTTP, GRPC и т. д.

GRPC является коммуникационной моделью и может быть реализована на большинстве языков, таких как C++, JAVA, Go. Таким образом, Go-GRPC - это плагин GRPC, написанный на языке Go.

Надеюсь, я объяснил это ясно, и поправьте меня, если я ошибаюсь,

Другие вопросы по тегам