wolfstudy opened a new issue #164: Discusses the logic of the current 
connection pool implementation
URL: https://github.com/apache/pulsar-client-go/issues/164
 
 
   #### Expected behavior
   
   When a consumer receives messages that are blocked, other consumers can 
continue to receive messages.
   
   #### Actual behavior
   
   The consumer receives logic is as follows:
   
   
![image](https://user-images.githubusercontent.com/20965307/71818855-10fe1900-30c5-11ea-91af-1f6830d05962.png)
   
   The `queue channel` is buffered chan, the buffer size is `receiveQueueSize`, 
when the buffer of the `queue channel` reaches the size of the cache, the 
channel will be blocked.
   
   Because all client connections reuse the connections in the connection pool, 
if one of the chan blocks, the TCP connection will be blocked, and other 
consumers will not be able to continue to receive messages.
   
   In here, there are two ways:
   
   - We need to make sure chan is not blocked, or after blocking, need to be 
able to automatically expand(same as java logic)
   - Remove connection pool, create a new connection for each client
   
   #### Steps to reproduce
   
   The issue discusses the logic of the current connection pool implementation.
   
   #### System configuration
   **Pulsar version**: x.y
   

----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
 
For queries about this service, please contact Infrastructure at:
[email protected]


With regards,
Apache Git Services

Reply via email to