Client automatically manages connections and automatically reconnects to the server on connection errors.
Client supports response timeouts.
Client supports RPC batching.
Client supports async requests' canceling.
Client prioritizes new requests over old pending requests if server fails to handle the given load.
Client detects stuck servers and immediately returns error to the caller.
Client supports fast message passing to the Server, i.e. requests without responses.
Both Client and Server provide network stats and RPC stats out of the box.
服务端
服务端超时
服务端调用失败
失败自动切换
失败通知
失败缓存
快速失败
Server provides graceful shutdown out of the box.
Server supports RPC handlers' councurrency throttling out of the box.
Server may pass client address to RPC handlers.
Server gracefully handles panic in RPC handlers.
Dispatcher accepts functions as RPC handlers.
Dispatcher supports registering multiple receiver objects of the same type under distinct names.
Dispatcher supports RPC handlers with zero, one (request) or two (client address and request) arguments and zero, one (either response or error) or two (response, error) return values.