User Tools

Site Tools


dido:public:ra:xapend:xapend.b_stds:defact:google:grpc

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
dido:public:ra:xapend:xapend.b_stds:defact:google:grpc [2021/07/26 16:07]
murphy
dido:public:ra:xapend:xapend.b_stds:defact:google:grpc [2021/11/09 15:41] (current)
char ↷ Links adapted because of a move operation
Line 1: Line 1:
 ===== Google: gRPC ===== ===== Google: gRPC =====
-[[dido:​public:​ra:​xapend:​xapend.b_stds:​defact:​google| return to Google page ]]+[[dido:​public:​ra:​xapend:​xapend.b_stds:​defact:​google:start| return to Google page ]]
  
 <​table>​ <​table>​
Line 31: Line 31:
 **Source: [[https://​en.wikipedia.org/​wiki/​Git | The following is from the about gRPC page ]]** **Source: [[https://​en.wikipedia.org/​wiki/​Git | The following is from the about gRPC page ]]**
  
-//gRPC is a modern open source high performance [[dido:​public:​ra:​xapend:​xapend.b_stds:​tech:​ietf:​1831]] framework that can run in any environment. It can efficiently connect services in and across data centers with pluggable support for load balancing, tracing, health checking and [[dido:​public:​ra:​xapend:​xapend.a_glossary:​a:​authentication|authentication]]. It is also applicable in last mile of distributed computing to connect devices, mobile applications and browsers to backend services.//+//gRPC is a modern open source high [[dido:​public:​ra:​xapend:​xapend.a_glossary:​p:​performance|performance]] ​[[dido:​public:​ra:​xapend:​xapend.b_stds:​tech:​ietf:​1831]] framework that can run in any environment. It can efficiently connect services in and across data centers with pluggable support for load balancing, tracing, health checking and [[dido:​public:​ra:​xapend:​xapend.a_glossary:​a:​authentication|authentication]]. It is also applicable in last mile of distributed computing to connect devices, mobile applications and browsers to backend services.//
  
 //The main usage scenarios://​ //The main usage scenarios://​
Line 52: Line 52:
 // The protocol itself is based on http2, and exploits many of its benefits. Google’s development of SPDY laid down the first designs for  what eventually became http2.// // The protocol itself is based on http2, and exploits many of its benefits. Google’s development of SPDY laid down the first designs for  what eventually became http2.//
  
-// gRPC supports several built in features inherited from http2, such as compressing headers, persistent single TCP connections,​ cancellation and timeout contracts between client and server.//+// gRPC supports several built in features inherited from http2, such as compressing headers, persistent single TCP connections,​ cancellation and timeout contracts between ​[[dido:​public:​ra:​xapend:​xapend.a_glossary:​c:​client|client]] ​and [[dido:​public:​ra:​xapend:​xapend.a_glossary:​s:​server|server]].//
  
-// The protocol has built in flow control from http2 on data frames. ​ This is very handy for insuring clients respect the throughput of your system, but does add an extra level of complexity when diagnosing issues in your infrastructure,​ because either client or server can set their own flow control values.//+// The protocol has built in flow control from http2 on data frames. ​ This is very handy for insuring clients respect the [[dido:​public:​ra:​xapend:​xapend.a_glossary:​t:​thruput|throughput]] of your system, but does add an extra level of complexity when diagnosing issues in your infrastructure,​ because either client or server can set their own flow control values.//
  
 // Load balancing (LB) is normally performed by the client, which chooses the server for a given request from a list provided by a Load Balancing server. The LB server will monitor the health of endpoints and use this and other factors to manage the list provided to clients. Clients will use a simple algorithm such as round-robin internally, but note that the LB server may apply more complex logic when compiling the list for a given client.// // Load balancing (LB) is normally performed by the client, which chooses the server for a given request from a list provided by a Load Balancing server. The LB server will monitor the health of endpoints and use this and other factors to manage the list provided to clients. Clients will use a simple algorithm such as round-robin internally, but note that the LB server may apply more complex logic when compiling the list for a given client.//
Line 67: Line 67:
 // Streaming is really powerful and can be accomplished in three different configurations: ​ client pushing messages to a stream; server pushing messages to a stream; or bidirectional,​ where client and server are both sending data in two streams in the same method. ​ In all cases the client initiates the RPC method.// \\  // Streaming is really powerful and can be accomplished in three different configurations: ​ client pushing messages to a stream; server pushing messages to a stream; or bidirectional,​ where client and server are both sending data in two streams in the same method. ​ In all cases the client initiates the RPC method.// \\ 
  
-//Streams don’t provide any acknowledgement of receipt until the stream completes, which can add complexity when the system needs to cope with node failures or network partitions. ​ This can be mitigated by using a bidirectional stream to return ACKs.  If a server is given a chance to kill a connection gracefully a message will be returned indicating the last received message.//+//Streams don’t provide any acknowledgement of receipt until the stream completes, which can add complexity when the system needs to cope with [[dido:​public:​ra:​xapend:​xapend.a_glossary:​n:​node|node]] ​failures or network partitions. ​ This can be mitigated by using a bidirectional stream to return ACKs.  If a server is given a chance to kill a connection gracefully a message will be returned indicating the last received message.//
  
 /​**=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- /​**=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
dido/public/ra/xapend/xapend.b_stds/defact/google/grpc.1627330075.txt.gz · Last modified: 2021/07/26 16:07 by murphy