5. Сложности
в микросервисной
архитектуре
● и т.д.
● Дебаггинг
● Мониторинг
● Стриминг данных
● Взаимодействие между языками
● Безопасность / Аутентификация
● Сериализация данных
● Скорость общения по сети
9. Protocol Buffers
IDL (Язык описания
интерфейсов)
Описывает и генерирует
интерфейсы для разных
языков программирования.
Модель данных
Структуры запросов и
ответов.
Бинарный формат
Для передачи данных.
syntax = “proto3”;
message Profile {
string name = 1;
int32 id = 2;
string email = 3;
enum PhoneType {
MOBILE = 0;
HOME = 1;
WORK = 2;
}
message PhoneNumber {
string number = 1;
PhoneType type = 2;
}
repeated PhoneNumber phone = 4;
}
10. Определение Сервисов
service RouteGuide {
rpc GetPlace(Point) returns (Place);
rpc RouteChat(stream RouteNote) returns (stream RouteNote);
}
message Point {
int32 Latitude = 1;
• int32 Longitude = 2;
}
message RouteNote {
Point location = 1;
string message = 2;
}
message Place {
string name = 1;
Point location = 2;
}
26. Хочешь узнать больше?
Документация и код
• http://www.grpc.io
• https://github.com/grpc
• https://github.com/grpc-ecosystem
Помощь и поддержка
• https://gitter.im/grpc/grpc
• https://groups.google.com/forum/#!forum/grpc-io