How many Transport Clients do I need in one Java application?


Our Java application clusters are using the transport clients to query data from ElasticSearch.
Since our application clusters are nearly 1000 thousands tomcat instances, if each tomcat instance hold many transports clients, such as 50 transport clients, the sum will be 1000 * 50 transports.

ElasticSearch version: 1.5.2
server numbers: 5( cpu:24 cores, mem:64G, hd: 2.4T)

Our query qps: 100/second

My question:

  1. If the sum of all the transport clients is 50000, can the elasticsearch servers accept such many transport clients(As far as I know, one transport client will occupy more than 10 tcp connections, as a result: 50000 * 10 > all the port numbers in one machine 65535 )?
  2. If I only accept assign one transport client to each tomcat instance, can one transport client handle parallel requests simultaneously, for example, 100 qps?

From this link, I have known that we should have only one transportClient in our application!