gRPC ja suorituskykyiset API:t · Oppitunti

gRPC-koodin generointi

Tutustu prosessiin, jossa Protobuf-määritykset käännetään eri ohjelmointikielten stub-koodeiksi.

Oppitunti 2/411 vaihetta

gRPC-koodin generointi on ilmainen gRPC ja suorituskykyiset API:t-oppitunti CoddyKitissä. Tämä on oppitunti 2/4. Voit lukea koko oppitunnin alta ilmaiseksi ja harjoitella sen jälkeen käytännössä selaimessa sisäänrakennetulla koodieditorilla ja ympäri vuorokauden käytettävissä olevan tekoälytuutorin avulla. Oppitunti kuuluu gRPC ja suorituskykyiset API:t-oppimispolkuun, ja edistymisesi synkronoituu verkon ja CoddyKit-sovelluksen välillä. gRPC ja suorituskykyiset API:t-kurssilla on yhteensä 4 oppituntia.

Johdatus koodin generointiin

Tervetuloa takaisin! Edellisessä oppitunnissa opimme määrittelemään tietorakenteita ja palveluita Protocol Buffersin (Protobuf) avulla.

Miten näitä määrittelyjä sitten käytetään valitsemassamme ohjelmointikielessä? Tässä kohtaa koodin generointi astuu kuvaan!

Se tarkoittaa lähdekoodin automaattista luomista skeemasta, joten toistuvaa runkokoodia ei tarvitse kirjoittaa käsin.

Miksi gRPC tarvitsee tynkiä

gRPC perustuu vahvasti generoituun koodiin, josta käytetään usein nimityksiä tyngät tai välityspalvelimet. Nämä toimivat siltana sovelluslogiikkasi ja gRPC:n taustalla olevien viestintämekanismien välillä.

  • Asiakkaan tyngät: tarjoavat metodeja, jotka vastaavat .proto-tiedostossa määriteltyä palvelua. Kun kutsut asiakkaan tynkämetodia, se pakkaa tiedot, lähettää ne verkon yli ja purkaa vastauksen.
  • Palvelimen tyngät: määrittävät rajapinnan, jonka palvelintoteutuksen on täytettävä. Ne käsittelevät pyyntöjen vastaanottamisen, välittävät ne koodillesi ja lähettävät vastaukset takaisin.

Tutustu Protobuf-kääntäjään

Näiden tynkien luonnin taustalla on Protobuf Compiler, joka tunnetaan yleisesti nimellä protoc.

protoc on komentorivityökalu, joka lukee .proto-tiedostosi ja luo lähdekoodia eri kielillä määrittämiesi liitännäisten perusteella.

Se on olennainen osa jokaista gRPC-projektia, sillä se varmistaa vahvan tyypityksen ja yhdenmukaiset viestintärajapinnat eri palveluiden ja ohjelmointikielten välillä.

Peruskomento `protoc`

protoc-komennon yleinen syntaksi näyttää tältä:

protoc --<LANG>_out=. --grpc_out=. my_service.proto
  • --<LANG>_out=.: Tämä valitsin käskee protoc-ohjelmaa luomaan Protobuf-viestiluokat tietylle kielelle (esimerkiksi --java_out tai --python_out) ja määrittää niiden sijainnin (. tarkoittaa nykyistä hakemistoa).
  • --grpc_out=.: Tämä valitsin, jota käytetään usein gRPC-kohtaisen liitännäisen kanssa, luo gRPC-palvelurajapinnan ja tynkäluokat.
  • my_service.proto: Protobuf-määritystiedoston polku.

`protoc`-ohjelman asentaminen (periaatteet)

Ennen kuin voit luoda koodia, sinun on asennettava protoc. Asennusprosessi vaihtelee käyttöjärjestelmän mukaan:

  • Binäärin lataaminen: Voit ladata valmiiksi käännettyjä binäärejä viralliselta Protobufin GitHub-julkaisut-sivulta.
  • Pakettienhallinta: Linuxissa voit käyttää komentoa apt-get install protobuf-compiler. macOS:ssä komento on brew install protobuf.
  • Lähdekoodista kääntäminen: Edistyneet käyttäjät voivat kääntää ohjelman sen lähdekoodista.

Varmista aina, että protoc löytyy järjestelmäsi PATH-muuttujasta.

Esimerkkimme Protobuf

Käytetään yksinkertaista greet.proto-tiedostoa koodin luonnin havainnollistamiseen. Tämä tiedosto määrittelee Greeter-palvelun ja sen viestit:

syntax = "proto3";

package greeter;

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

message HelloRequest {
  string name = 1;
}

message HelloReply {
  string message = 1;
}

Tämä toimii protoc-kääntäjämme syötteenä.

Java-tynkien luominen

Luodaksemme Java-koodia greet.proto-tiedostostamme käyttäisimme tyypillisesti esimerkiksi seuraavaa komentoa:

protoc \
  --plugin=protoc-gen-grpc-java=/path/to/grpc-java-plugin \
  --java_out=. \
  --grpc_out=. \
  greet.proto

Tässä --plugin kertoo protoc-ohjelmalle tarkasti, mistä gRPC Java -liitännäinen löytyy. Liitännäinen tarvitaan gRPC-palvelurajapintojen luomiseen.

Luotujen tiedostojen tarkastelu

Kun olet suorittanut protoc-komennon, määrittämääsi tuloshakemistoon ilmestyy uusia Java-tiedostoja. greet.proto-esimerkkimme yhteydessä näet tyypillisesti seuraavat tiedostot:

  • GreeterGrpc.java: Sisältää abstraktin GreeterImplBase-palvelun ja asiakkaan tynkäluokat (esimerkiksi GreeterBlockingStub ja GreeterFutureStub).
  • Greet.java: Säilöluokka, joka sisältää luodut Protobuf-viestiluokat, kuten HelloRequest- ja HelloReply-luokat, sekä niiden rakentajat ja aksessorit.

Nämä tiedostot huolehtivat kaikista sarjallistamiseen, sarjallistamisen purkamiseen ja verkkoviestintään liittyvistä yksityiskohdista.

Liitännäisten rooli

On tärkeää ymmärtää, että protoc luo itsessään vain Protobuf-viestien perusluokat.

gRPC-kohtaisten palvelurajapintojen ja tynkien luomiseen se käyttää liitännäisiä. Javaa varten tarvitaan esimerkiksi protoc-gen-grpc-java-liitännäinen.

Jokaisella gRPC:n tukemalla kielellä (Python, Go, C++, Node.js ja muut) on oma liitännäisensä, joka yhdistyy protoc-ohjelmaan ja tuottaa tarvittavan gRPC-koodin.

Pikatarkistus: koodin luonti

Mitkä seuraavista gRPC-koodin luontia koskevista väitteistä ovat tosia?

Kertaus ja seuraavat vaiheet

Hienoa työtä! Olet oppinut gRPC-koodin luonnin perusprosessin:

  • Ymmärsit, miksi tyngät ovat välttämättömiä gRPC-viestinnässä.
  • Tutustuit protoc-kääntäjään, joka suorittaa koodin luonnin.
  • Näimme, kuinka liitännäiset laajentavat protoc-ohjelmaa kielikohtaisen gRPC-koodin luomiseksi.
  • Kävimme läpi esimerkin Java-koodin luomisesta .proto-määrityksen perusteella.

Seuraavaksi käytämme luotua koodia yksinkertaisen yksisuuntaisen gRPC-palvelun ja asiakkaan toteuttamiseen!

Aloita maksutta

Opi gRPC ja suorituskykyiset API:t tekoälytuutorin avulla — ilmaiseksi

Kirjoita ja suorita oikeaa koodia selaimessa, saa välitöntä apua tekoälytuutorilta ympäri vuorokauden ja jatka siitä, mihin jäit, verkossa tai sovelluksessa.

Kurssit
12
Oppitunnit
48

Usein kysytyt kysymykset

Onko oppitunti ”gRPC-koodin generointi” ilmainen?

Kyllä – oppitunnin ”gRPC-koodin generointi” koko tekstin voi lukea täällä verkossa ilmaiseksi. Jos haluat harjoitella interaktiivisesti sisäänrakennetulla koodieditorilla ja ympäri vuorokauden käytettävissä olevan tekoälytuutorin avulla sekä avata koko gRPC ja suorituskykyiset API:t-kurssin, päivitä CoddyKit PROhon. gRPC ja suorituskykyiset API:t-kurssilla on yhteensä 4 oppituntia.

Mitä opin oppitunnilla ”gRPC-koodin generointi”?

Tutustu prosessiin, jossa Protobuf-määritykset käännetään eri ohjelmointikielten stub-koodeiksi. Harjoittelet gRPC ja suorituskykyiset API:t-aihetta koodilla, jonka suoritat suoraan selaimessa. Ympäri vuorokauden käytettävissä oleva tekoälytuutori vastaa kysymyksiisi oppitunnin aikana.

Tarvitsenko kokemusta aloittaakseni gRPC ja suorituskykyiset API:t-opiskelun?

Aiempi kokemus ei ole tarpeen. CoddyKitin gRPC ja suorituskykyiset API:t-oppimispolku sopii vasta-alkajista edistyneisiin, joten voit aloittaa tästä tai alusta ja edetä omaan tahtiisi. Tämä on oppitunti 2/4.

Kuinka kauan ”gRPC-koodin generointi”-oppitunnin suorittaminen kestää?

Useimmat CoddyKitin oppitunnit kestävät noin 5–10 minuuttia. Jokainen oppitunti on lyhyt ja interaktiivinen, joten edistyt tasaisesti ja voit jatkaa siitä, mihin jäit – sekä verkossa että sovelluksessa.

Voinko kirjoittaa ja suorittaa koodia tällä gRPC ja suorituskykyiset API:t-oppitunnilla?

Kyllä. Jokainen gRPC ja suorituskykyiset API:t-oppitunti sisältää sisäänrakennetun koodieditorin, joten voit kirjoittaa ja suorittaa oikeaa koodia suoraan selaimessa ja saada välitöntä palautetta tekoälyltä – paikallista asennusta ei tarvita.

Kaikki tämän kurssin oppitunnit

  1. Protobuf-skeeman määrittäminen
  2. gRPC-koodin generointi
  3. Yksinkertainen unary gRPC -palvelu
  4. Streaming-RPC:t: palvelin, asiakas ja kaksisuuntainen suoratoisto
← Takaisin: gRPC ja suorituskykyiset API:t