最近有个项目,采用的架构如下:
1) java实例进程
2) java实例进程下起了很多并发的线程。
3) 每个线程会再起一个worker进程,线程与worker进程之间通过管道通信。
4) client会与线程建立连接,然后发送请求,worker进程具体干活,然后通过线程交易应答返回给client.
系统有40CPU. 内存也比较大。
我的问题是:
如果并发的client比较多, 如有500甚至3000个常连的并发连接时,应如何来配置比较好。
是用一个java实例,起多个thread
还是可以起多个java实例进程,每个再起一些thread. 这样可以将thread分到多个java进程中。
之所以想这样做,是因为害怕一个进程下管理这么多个线程,会不会超成管理开销,而且一个进程出问题,影响整个服务。如果一个进程下挂3000个线程,可行吗? 一个进程下,挂多少个线程是比较好的?
由于没有java方面的经验,所以在此请教此方面的专家,能提供一些帮助。
谢谢!