Müzakirə

gRPC ile Node.js Uygulamaları Geliştirme

Başladan Celal · 27 iyl 2026 01:50 · 1 Baxış · 0 Cavablar
Mövzunu Açan #0
gRPC, Google tarafından geliştirilen ve HTTP/2 protokolü üzerinden çalışan bir uzaktan prosedür çağrısı (RPC) çerçevesidir. Yüksek performans ve çok dilli destek sunması nedeniyle, mikro hizmet mimarisinde yaygın olarak kullanılmaktadır. Bu yazıda, gRPC'yi Node.js ile kullanarak nasıl uygulama geliştirebileceğinizi detaylı bir şekilde ele alacağız.

gRPC, Protobuf (Protocol Buffers) adı verilen bir veri serileştirme formatını kullanır. Bu format, veri yapılarınızı tanımlamak için bir .proto dosyası oluşturmanızı gerektirir. Örneğin, basit bir "Hello World" uygulaması için aşağıdaki gibi bir .proto dosyası oluşturabilirsiniz:

CODE
12345678910111213syntax = "proto3";

service Greeter {
  rpc SayHello (HelloRequest) returns (HelloReply) {}
}

message HelloRequest {
  string name = 1;
}

message HelloReply {
  string message = 1;
}


Bu dosyayı oluşturduktan sonra, Protobuf derleyicisi kullanarak JavaScript dosyaları oluşturmalısınız. Komut satırında aşağıdaki komutu çalıştırarak bunu yapabilirsiniz:

CODE
1protoc -I=. --js_out=import_style=commonjs,binary:. --grpc_out=. --plugin=protoc-gen-grpc=`which grpc_tools_node_protoc_plugin` ./greeter.proto


Ardından, sunucu ve istemci kodunuzu yazmaya başlayabilirsiniz. Sunucu tarafında, aşağıdaki gibi bir kod yapısı oluşturabilirsiniz:

CODE
12345678910111213const grpc = require('grpc');
const greeterProto = grpc.load('greeter.proto');

const server = new grpc.Server();
server.addService(greeterProto.Greeter.service, {
  SayHello: (call, callback) => {
    callback(null, { message: 'Hello ' + call.request.name });
  }
});

server.bind('0.0.0.0:50051', grpc.ServerCredentials.createInsecure());
console.log('Server running at http://0.0.0.0:50051');
server.start();


İstemci tarafında ise şu şekilde bir yapı oluşturabilirsiniz:

CODE
123456789101112const grpc = require('grpc');
const greeterProto = grpc.load('greeter.proto');

const client = new greeterProto.Greeter('localhost:50051', grpc.credentials.createInsecure());

client.SayHello({ name: 'World' }, (error, response) => {
  if (!error) {
    console.log('Greeting:', response.message);
  } else {
    console.error(error);
  }
});


Sonuç olarak, gRPC'yi Node.js ile kullanarak mikro hizmet mimarisi içerisinde etkili bir iletişim kanalı oluşturabilirsiniz. Bu yapı, yüksek performans ve düşük gecikme süreleri sunarak uygulamalarınızın verimliliğini artıracaktır. gRPC hakkında daha fazla deneyim veya öneri paylaşımında bulunmak isterseniz, yazının devamında tartışabiliriz.

Cavab vermək üçün daxil olmalısınız.

0 sitat seçildi