我的程序需要将数据发送到多个(约50个)“客户端”站。必须通过TCP发送重要的数据位以确保到达。这些连接大多是固定的,并且在程序的单个活动期间不会发生变化。
您认为最好的架构是什么?我听说通常不建议每个连接创建一个新线程,但是当连接预计不会改变时,这个建议是否有效?可扩展性会很好,但不会引起太大关注,因为客户站的数量预计不会增长。
如果重要的话,程序是用Java编写的。
谢谢,
亚历
答案 0 :(得分:2)
如果不考虑可扩展性,吞吐量和内存使用率,那么使用50个线程是一个合适的解决方案。它的优点是简单,简单是一件好事。
如果您希望能够扩展,或者您担心内存使用(N个线程意味着N个线程堆栈),那么您需要考虑使用NIO选择器的架构。但是,最好的架构可能取决于:
答案 1 :(得分:1)
50个线程很好,去吧。这几乎不重要。超过200个线程,开始担心..
答案 2 :(得分:0)
无论如何我都会使用线程池。根据您的线程池配置,它将根据您的需要创建尽可能多的线程,但此解决方案更具可扩展性。它不仅适用于50个客户端,也适用于5000个客户端。
答案 3 :(得分:0)
为什么不使用类似连接池的东西来限制线程数?