热度 1||
根据DIY需要,自己需要一个服务器,虽然开源的服务器很多,比如XMPP的openfire等,但是总是比较复杂,当然功能也很强大。但是我只需要比较简单的一个转发服务器来实现数据的传输,抱着学习研究的目的,自己基于Java搭建一个socket服务器。服务器初步的框图如下 1.收下客户面对一个WEB服务器,访问web服务器取得一个TCP服务器的连接地址(web服务器也充当了负载均衡,使得个端口的连接基本一样)
2.TCP服务器接收数据,把数据存入队列中(保证每个队列中的业务数据差不多,再一次均衡负载) 3.每个队列由一个线程池处理数据,判断数据的业务类型 然后向不同的业务逻辑压数据。 4.不同的业务由单独的线程池来处理,到此完成业务的处理。
不同的业务处理复杂度不同,用户的业务请求频率也不同,可以动态分配相应的业务的线程数量,从而使用客户的业务请求频率。
我没有维护过服务器,以上是全凭个人对服务器的理解想出来的,多个地方让负责进行均衡,已经比如早上业务A请求很多,到下午业务B请求很多的这种情况,服务器能试试调整相应业务的线程数。很多不足的地方还请大家指出来。我个人感觉按照这个思路实现100万并发的服务器应该可以吧?????????????????下面是根据上面的思路画的图。