lhotari opened a new pull request #13834:
URL: https://github.com/apache/pulsar/pull/13834


   ### Motivation
   
   Pulsar Proxy will create a new Pulsar Client instance for each and every 
proxied connection. 
   
   Currently 2 threads will be created for every Pulsar Client instance for the 
internal/IO and external/listener  executors. This causes a lot of overhead and 
inefficiency in the Pulsar Proxy. 
   
   In the current solution, it's already possible to share the EventLoopGroup 
and HashedWheelTimer instances. Support for sharing the timer was added by 
#9802.
   
   A recently merged PR, #12037, added support for sharing the the internal/IO 
and external/listener  executors in PulsarClientImpl instances. This feature 
has been used in this PR to share the executors across all PulsarClientImpl 
instances created in the Pulsar Proxy.
   
   ### Modifications
   
   - add new configuration key `brokerClientNumIOThreads` which can be used to 
configure the number of threads for the internal/IO executor. It defaults to 2 
* number of available processors.
   - create shared executors in ProxyService
   - add method for creating PulsarClientImpl to ProxyService that uses the 
shared executors
   - refactor ProxyConnection to use this method for PulsarClientImpl 
instantiation
   


-- 
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.

To unsubscribe, e-mail: commits-unsubscr...@pulsar.apache.org

For queries about this service, please contact Infrastructure at:
us...@infra.apache.org


Reply via email to