• About
  • Privacy Policy
  • Disclaimer
  • Contact
TomorrowPosT
  • Home
  • Computers
    • Gaming
  • Gear
    • Apple
    • Mobile
  • Microsoft
    • Software & Apps
  • Review
    • Security
  • Tech for Business
  • Tech News
  • News
  • Termini e condizioni
No Result
View All Result
  • Home
  • Computers
    • Gaming
  • Gear
    • Apple
    • Mobile
  • Microsoft
    • Software & Apps
  • Review
    • Security
  • Tech for Business
  • Tech News
  • News
  • Termini e condizioni
No Result
View All Result
TomorrowPost
No Result
View All Result

Ridimensionamento con GRPC e Protobuf

Michele by Michele
20/04/2025
Home Software & Apps
Condividi su FacebookCondividi su WhatsappCondividi su Twitter


In questo articolo, esploreremo come GRPC e la generazione del codice possono aiutarti:

  • Scrivi documentazione che le persone leggono e usano effettivamente,
  • Standardizzare la comunicazione tra i microservizi,
  • Evita la duplicazione del codice tra i servizi.

Al giorno d’oggi, molti sviluppatori hanno già familiarità con GRPC. Non sorprende più che i crew relativi al servizio preferiscano per la comunicazione inter-servizio e persino per scopi di documentazione.

Cominciamo con l’concept chiave: Definire interfacce e strutture di dati in un unico posto – .proto File-e generare automaticamente tutto il resto.

Come scrivere la documentazione tecnica che viene letto

È una sfida difficile, indipendentemente dal tuo processo. Alcune modifiche al codice e i documenti sono già obsoleti. Allora, cosa possiamo fare?

Problemi comuni

  • La documentazione diventa obsoleta più velocemente del codice.
  • È difficile trovare il contratto corretto.
  • Non esiste un singolo formato: alcuni usano la confluenza, alcuni usano i file readme e altri non scrivono nulla.

Ma cosa succede se .proto I file potrebbero risolvere questo problema? E se avessimo scritto il codice che si documenta? Diciamo che creiamo un /post-context listing con quanto segue:

// widespread/message.proto
syntax = "proto3";

package deal widespread;

// Person-generated content material (publish) object
message Put up {
  string id = 1;           // Distinctive ID
  string title = 2;        // Title
  string content material = 3;      // Physique
  repeated string tags = 4;// Tags
}

Allora cosa? Eseguiamo solo la generazione di codice e generato documenti direttamente da CI/CD:

protoc 
  -I. 
  --doc_out=markdown,docs.md:./docs 
  api/widespread/*.proto api/publish/**/*.proto

E questo è tutto.

Takeaway chiave

  • Utilizzo .proto come il singola fonte di verità.
  • Aggiungere commenti significativi advert ogni messaggio e RPC.
  • Usa strumenti come protoc-gen-doc, grpc-gatewayo Swagger/OpenApi a Genera automaticamente la documentazione.

Ciò si traduce in documentazione aggiornata, leggibile e mantenuta automatica.

Come standardizzare la comunicazione del servizio

Diciamo che ora hai molti contesti e listing. Come assicurati che tutto segue uno normal?

Problemi attuali

  • Un servizio utilizza JSON, un altro XML e un altro GRPC.
  • Lo stesso oggetto (advert es. Put up) è descritto in modo diverso in ciascun luogo.
  • L’aggiunta di nuovi servizi è doloroso.

E se ci muoviamo tutto possibile In GRPC – anche messaggi Kafka?

Il nostro approccio

  1. Definisci evento Kafka PostCreatedEvent In widespread/occasion.proto.
  2. Basta importare ciò di cui hai bisogno:
import "widespread/message.proto";
import "widespread/occasion.proto";

Certo, accade la duplicazione. Soprattutto quando i crew si muovono velocemente: enum, codici di errore e altro possono essere copiati. E poi un piccolo cambiamento provoca una cascata di aggiornamenti manuali.

Seguiamo la struttura:

api
├── widespread
│   ├── message.proto       # Put up object
│   └── occasion.proto         # PostCreatedEvent for Kafka
├── publish
│   ├── post-service
│   │   ├── messages.proto  # Particular DTOs
│   │   └── service.proto   # CreatePost methodology
│   └── posts-admin
│       ├── messages.proto
│       └── service.proto   # GetPost, UpdatePost strategies
└── content material
    └── event-service
        ├── messages.proto  # Empty DTO
        └── service.proto   # Empty service

Esempio: usando un condiviso Put up oggetto.

// post-service/service.proto
syntax = "proto3";
package deal publish;
import "widespread/message.proto";

service PostService {
  rpc CreatePost (widespread.Put up) returns (CreatePostResponse);
}

message CreatePostResponse {
  string id = 1;
}

E livello di servizio:

// posts-admin/service.proto
syntax = "proto3";
package deal admin;
import "widespread/message.proto";

service PostsAdminService {
  rpc GetPost (GetPostRequest) returns (widespread.Put up);
  rpc UpdatePost (widespread.Put up) returns (UpdatePostResponse);
}

message GetPostRequest {
  string id = 1;
}
message UpdatePostResponse {
  bool success = 1;
}

Problemi risolti

  • Tutta la comunicazione passa attraverso GRPC.
  • Tutti i contratti sono definiti in .proto file all’interno api/.
  • I tipi riutilizzabili (DTOS, eventi) sono mantenuti api/widespread/.
  • Gli oggetti duplicati non esistono

Se lo colleghi a una pipeline CI/CD condivisa – Congratulazioni, hai la piena automazione!

Conclusione

Lasciami dire questo con sicurezza:

GRPC + protobuf + codegen = leggibile, scalabile e rapido.

Takeaway chiave

  • I documenti vengono letti-perché sono generati automaticamente da una singola fonte aggiornata.
  • La comunicazione è standardizzata, perché GRPC applica contratti rigorosi.
  • La duplicazione del codice è ridotta al minimo, grazie a tipi condivisi e definizioni di eventi.

Non aver paura di standardizzare e ottimizzare le specifiche.

Spero che questo articolo ti abbia aiutato a vedere come protoc e GRPC può risolvere problemi del mondo reale con documentazione e integrazione.

Buona fortuna là fuori!

Tags: conGRPCProtobufRidimensionamento
Michele

Michele

Next Post
Pacchetti npm canaglia imitare l’API bot telegramma per piantare backoors ssh su sistemi Linux

Pacchetti npm canaglia imitare l'API bot telegramma per piantare backoors ssh su sistemi Linux

Recommended.

Mario Kart 9 è un gioco di lancio Open World Change 2

Mario Kart 9 è un gioco di lancio Open World Change 2

02/04/2025
Corpo doppio per le chiamate zoom in modo da poter essere ovunque

Corpo doppio per le chiamate zoom in modo da poter essere ovunque

09/02/2025

Trending.

I tagli di finanziamento NIH sembrano attingere al rapporto della Fondazione Heritage che fa esplodere lo “workers Dei”

I tagli di finanziamento NIH sembrano attingere al rapporto della Fondazione Heritage che fa esplodere lo “workers Dei”

11/02/2025

TomorrowPost

Welcome to Tomorrow Post – your trusted source for the latest in computers, gaming, tech gear, Microsoft, software, cybersecurity, and much more! Our mission is simple: to provide technology enthusiasts, professionals, and business leaders with accurate, insightful, and up-to-date information that helps them navigate the ever-evolving world of technology.

Categorie

  • Apple
  • Computers
  • Gaming
  • Gear
  • Microsoft
  • Mobile
  • News
  • Review
  • Security
  • Software & Apps
  • Tech for Business
  • Tech News

Recent News

Recensione di pantaloni da viaggio leggero inviato bluffworks

Recensione di pantaloni da viaggio leggero inviato bluffworks

04/06/2025
Modello di AI “onesto” per proteggere dagli agenti Rogue AI

Modello di AI “onesto” per proteggere dagli agenti Rogue AI

04/06/2025
  • About
  • Privacy Policy
  • Disclaimer
  • Contact

© 2025- https://tomorrowpost.net- All Rights Reserved

No Result
View All Result
  • Home
  • Computers
    • Gaming
  • Gear
    • Apple
    • Mobile
  • Microsoft
    • Software & Apps
  • Review
    • Security
  • Tech for Business
  • Tech News
  • News
  • Termini e condizioni

© 2025- https://tomorrowpost.net- All Rights Reserved