Hi,
I've implemented zookeeper balanced grpc server and client.
Following are the execution configuration details:
Grpc Client:
Channel Count: 1
Boss/Acceptor Thread: 1
Nio Threads: 100
Executor/App Threads: 100
Grpc Server:
Nio Threads: 100
Executor/App Threads: 400
Max conucurrent calls per connection: 100
Here, I'm using ForkJoinPool while setting executor. I'm sending messages on RabbitMQ and forwards to gRPC client. Publisher rate is 10k messages per 10sec.
As I've observed each request when reaches server it executes till 10seconds. And as configured most 400 tasks are getting executed concurrently at a time. Due to this piling up other 9600 requests as waiting for application threads to be available.
This is slowing overall process as piling up the requests and I couldn't delegate the tasks to other thread pool as executor has already been dedicated for the same.
Also, I've given 16gb for application. Increasing the thread count could help here as I have already given sufficient configuration.
How do I improve the execution faster?
Thanks,
qplc