Sobes.tech
Назад к вопросам
Principal
13

gRPC — что это такое, работали ли с ним?

Компании, где спрашивали
ИП Ганус Александр Андреевич

Ответ от нейросети

sobes.tech AI

gRPC — это современный фреймворк удалённого вызова процедур (RPC), разработанный Google. Он позволяет клиентам и серверам общаться эффективно и с высокой производительностью, используя HTTP/2 для транспортировки и Protocol Buffers (protobuf) для сериализации данных.

Основные особенности gRPC:

  • Высокая производительность: HTTP/2 обеспечивает мультиплексирование, сжатие заголовков и двоичный протокол.
  • Поддержка нескольких языков: gRPC поддерживает множество языков программирования.
  • Определение сервисов через protobuf: Интерфейсы и сообщения описываются в .proto файлах.
  • Различные типы вызовов: однонаправленные, серверный стриминг, клиентский стриминг и двунаправленный стриминг.

В контексте Flutter gRPC часто используется для эффективного взаимодействия с backend-сервисами, особенно когда важна производительность и строгая типизация.

Пример простого gRPC клиента на Dart (Flutter):

import 'package:grpc/grpc.dart';
import 'generated/helloworld.pbgrpc.dart';

void main() async {
  final channel = ClientChannel(
    'localhost',
    port: 50051,
    options: const ChannelOptions(credentials: ChannelCredentials.insecure()),
  );

  final stub = GreeterClient(channel);

  try {
    final response = await stub.sayHello(HelloRequest()..name = 'Flutter');
    print('Greeting: \\${response.message}');
  } catch (e) {
    print('Caught error: $e');
  }

  await channel.shutdown();
}

Я работал с gRPC в проектах, где требовалась быстрая и надёжная коммуникация между мобильным приложением и микросервисами, особенно когда REST API не обеспечивал необходимой производительности или удобства.