gRPC: Mikroservisler Arası Ultra Hızlı İletişim

  • Konbuyu başlatan Konbuyu başlatan irfo
  • Başlangıç tarihi Başlangıç tarihi

irfo

Moderatör
Katılım
7 Ocak 2026
Mesajlar
290
Tepkime puanı
2
Puanları
18

JSON Neden Yavaş?​

Mikroservisler birbirleriyle konuşurken genellikle REST API (JSON) kullanır. Ancak JSON metin tabanlıdır, boyutu büyüktür ve serileştirilmesi (parse) yavaştır.Google'ın geliştirdiği gRPC, HTTP/2 üzerinden Binary (İkili) veri taşır. JSON'dan 10 kata kadar daha hızlıdır.

Protocol Buffers (.proto)​

gRPC'de veri yapısı .proto dosyalarında tanımlanır. Bu dosya hem Go, hem Python, hem Java için otomatik kod üretir.

user.proto:
Kod:
syntax = "proto3";

service UserService {rpc GetUser (UserRequest) returns (UserResponse);}

message UserRequest {int32 id = 1;}

message UserResponse {string name = 1;string email = 2;}

Go Sunucu Örneği (Kavramsal)​

Otomatik üretilen kodları kullanarak sunucuyu ayağa kaldırmak çok basittir.

Kod:
func (s *server) GetUser(ctx context.Context, req *pb.UserRequest) (*pb.UserResponse, error) {// Veritabanından kullanıcıyı bul...return &pb.UserResponse{Name: "Gopher", Email: "[email protected]"}, nil}

Sonuç​

İç iletişimde (Backend-to-Backend) gRPC kullanmak, ağ trafiğini azaltır ve CPU kullanımını düşürür. Tarayıcı ile konuşurken REST, servisler arası konuşurken gRPC standarttır.
 
Geri
Üst