Upload
others
View
6
Download
0
Embed Size (px)
Citation preview
Odmor za REST uz
Karlo Novak, SV Group [email protected]
• REST i ostala klasika
• RPC
• gRPC, Protobuf, HTTP2
• gRPC i Java
• The great showdown!
– gRPC, Thrift, Spring MVC
• ...i mikroservisi
Sadržaj
• Sučelje za pristup podacima ili
funkcionalnostima neke aplikacije/sustava
• API = REST ?
– Bitka za naziv REST je izgubljena!
API naš svagdašnji
REST
Vi stvarno pišete REST servise?
• Fokus na akcijama, ne resursima
• Contract između klijenta i servera
• Nije nužno vezan uz HTTP
• Najčešće rabi binarne protokole
– Protobuf, TBinary, CBOR
• Postoji dugi niz godina...
– Java RMI, Spring HttpInvoker, NFS, XML-
RPC, CORBA itd.
RPC
• RPC framework iz Google-a
• HTTP/2, Protocol Buffers v3
• Protocol Buffers IDL
• Podržava 10 jezika (Java, C, nodejs...)
• Mikroservisi!
gRPC
gRPC
• Google, razni jezici, neovisan o platformi
• Kao XML (samo „kao!”) no brži, manji i
jednostavniji
Protobuf
- čitljivost
- podrška- brz
- shematiziran
- strong typing
ProtobufPredefinirani tipovi, defaultne vrijednosti verzioniranje, višejezičnost....
• Binaran prijenos
• Multiplexing
HTTP/2
• Kompresija headera
• Bidirectional streaming
• Baziran na Nettyu
• Maven plugin (protoc)
• Blocking, Future, Observer stub
gRPC i Java
The great showdown!
• gRPC vs Thrift vs Spring Boot (MVC - JSON)
• Stress test API-a koji prima request:
– Integer requestId, String sender, String greeting
• I vraća response:
– Integer requestId, Boolean success
50 korisnika, 20.000 iteracija, 1.000.000 requestova
Spring
217 sec.Thrift
42 sec.
gRPC
44 sec.
Obrada
1.000.000
requestova
Response
kroz vrijeme
• Višejezičnost & višeplatformnost
• Odaberite jezik koji odgovara problemu/servisu
• Lagana izmjena i kombiniranje tehnologija
generiranjem klijenata i servera
• Performanse!
– Mikroservisi su teški na HTTP pozivima
– HTTP2 i Protobuf čine razliku
MIKROSERVISI!!!
Zaključak
• (punokrvni) REST je kompliciran
• RPC je fleksibiliniji
• gRPC je brz, jako brz
• Zamjena za REST i JSON?
– Ovisi o veličini throughputa
Nije srebni metak, nije za svakoga!
A sad vi...