I'm learning gRPC and when I was checking asynchronous servers, I noticed that a call for obtaining gRPC requests like:
"service_->RequestSayHello(&ctx_, &request_, &responder_, new_call_cq_, notification_cq_, this);"
takes 2 completion queues as input. From their name, it seems that they are for finding getting new calls and for notifications separately. I have seen that same queue is used as for both, but is there any benefit for using 2 different queues for each one?
In addition, what factors are important for selecting number of completion queues? Should I select 1 per service or 1 per rpc call? or use other factors such as selecting 1 for a highly accessed service?