Norbert PartitionedNetworkClient Flow - linkedin/norbert GitHub Wiki
This page outlines the flow of a Norbert client request in Norbert's PartitionedNetworkClient.
Notes:
- The client request flows from the Client Application Thread, to the Netty CachedThreadPool and finally to the ThreadPoolResponseHandler.
- The actual I/O operations (ie. socket.write() and socket.read()) are asynchronous.
- The 'loadBalancer' object is global to a PartitionedNetworkClient. So the loadBalancer referred to in the Client Application Thread is the same as the loadBalancer object referenced in the Zookeeper Listener Actor.
- ClusterIoClient, Channelpool, and Channel are the names of classes as well as instances of those classes in the code.
- A PartitionedNetworkClient.sendRequest() call will always return to the client immediately. However, the next() call on the returned iterator will block until data is received from the server.