Architektura
Pokročilý
gRPC Tutorial — rychlá interní komunikace
gRPC pro komunikaci mezi mikroservisami. Protocol Buffers, streaming a příklady v Node.js.
Proč gRPC?
- ~10x rychlejší serializace (Protobuf vs JSON)
- HTTP/2 multiplexing
- Bi-directional streaming
- Generovaní klienti z definice
Proto definice
syntax = "proto3";
service OrderService {
rpc CreateOrder (CreateOrderRequest) returns (Order);
rpc ListOrders (ListRequest) returns (stream Order);
}
message Order {
string id = 1;
string customer_id = 2;
double total = 3;
string status = 4;
}
Node.js implementace
// Server
const grpc = require('@grpc/grpc-js');
const proto = grpc.loadPackageDefinition(protoLoader.loadSync('order.proto'));
const server = new grpc.Server();
server.addService(proto.order.OrderService.service, {
createOrder: (call, cb) => {
const order = { id: genId(), ...call.request, status: 'CREATED' };
cb(null, order);
}
});
server.bindAsync('0.0.0.0:50051', grpc.ServerCredentials.createInsecure(), () => {});
Shrnutí
gRPC je výborný pro interní služby. Pro veřejné API zůstaňte u REST/GraphQL.
Potřebujete pomoct s implementací?
Náš tým má zkušenosti s návrhem a implementací moderních architektur. Rádi vám pomůžeme.
Nezávazná konzultace