当前位置:编程学习 > JAVA >>

一个高性能的需求。

监视4000台机器, 每个机器没秒发送5条消息。 

在server端需要接受这些消息,并且解析出来, 存储在数据库中,通过一个web page能显示出来实时的数据。 


问题是两个:
1)在接受端有什么好办法处理没?

2)想法是把接受消息,解析消息和插入数据库分开操作, 有什么好办法没? --------------------编程问答-------------------- 那位处理过类似问题,请赐教。  --------------------编程问答-------------------- 一秒钟20000条消息,你服务器端能承受得了么?

要看接收的消息是什么样的了,接收到消息的时候,先缓存到内存中,由线程一定时间(或者等达到一定数据量后)统一写入数据库中。 --------------------编程问答-------------------- 1种情况接收端一台机器接收性能要足够强,单独处理,这样大概得小型机。。。
2种情况,接收端的机器只管接收,分发,用Balance把数据分给其他机器(个数自己看着定)处理,这个比上边的好些 --------------------编程问答--------------------
引用 3 楼 dongdong406 的回复:
1种情况接收端一台机器接收性能要足够强,单独处理,这样大概得小型机。。。
2种情况,接收端的机器只管接收,分发,用Balance把数据分给其他机器(个数自己看着定)处理,这个比上边的好些




基本上是按照2种方法去处理, 

一个负责收,
另外一个去解析与插入操作。

--------------------编程问答--------------------
引用 2 楼 rumlee 的回复:
一秒钟20000条消息,你服务器端能承受得了么?

要看接收的消息是什么样的了,接收到消息的时候,先缓存到内存中,由线程一定时间(或者等达到一定数据量后)统一写入数据库中。




现在的问题,是收的时候估计都够呛了, 有什么好的办法去处理没?  --------------------编程问答-------------------- 多弄些阻塞队列,每个队列不断取,扔到线程池中解析,解析后放到缓存中,到达一定数量在一次性同步操作数据库
纯属个人yy --------------------编程问答-------------------- 监视4000台机器, 每个机器没秒发送5条消息。 

真有这么多机器?

如果真有,一台机器受不了,就把这4000台机器分组。
数据也要使用缓存。
显示的数据也不用把所有实时的数据显示出来,因为你的网页不可能更新的上,显示一些过滤过的数据。 --------------------编程问答--------------------
引用 7 楼 Inhibitory 的回复:
监视4000台机器, 每个机器没秒发送5条消息。

真有这么多机器?

如果真有,一台机器受不了,就把这4000台机器分组。
数据也要使用缓存。
显示的数据也不用把所有实时的数据显示出来,因为你的网页不可能更新的上,显示一些过滤过的数据。



看软件能否支持这么多了, 机器是有的。 

--------------------编程问答-------------------- 如果不能支持, 那就只能上1000台了, --------------------编程问答--------------------
引用 9 楼 abc_798 的回复:
如果不能支持, 那就只能上1000台了,


分组呗。 --------------------编程问答-------------------- 启动服务器就把数据库里的查出来 装list  没进来一条就往这个list里面加 定时处理往数据库批量加入  页面直接用list --------------------编程问答-------------------- 相信list add一秒钟应该能装20000条数据吧 --------------------编程问答--------------------
引用 7 楼 Inhibitory 的回复:
监视4000台机器, 每个机器没秒发送5条消息。

真有这么多机器?

如果真有,一台机器受不了,就把这4000台机器分组。
数据也要使用缓存。
显示的数据也不用把所有实时的数据显示出来,因为你的网页不可能更新的上,显示一些过滤过的数据。



apache mina  这个能支持这么多吗? --------------------编程问答--------------------
引用 13 楼 abc_798 的回复:
引用 7 楼 Inhibitory 的回复:监视4000台机器, 每个机器没秒发送5条消息。

真有这么多机器?

如果真有,一台机器受不了,就把这4000台机器分组。
数据也要使用缓存。
显示的数据也不用把所有实时的数据显示出来,因为你的网页不可能更新的上,显示一些过滤过的数据。


apache mina  这个能支持这么多吗?

http://blog.csdn.net/huaye2007/article/details/7752044
参考这篇文章,4000个连接,5秒才发一次,应该没有问题,而且他的这个测试机,应该就是一普通PC电脑。 --------------------编程问答-------------------- 一台机器监控够呛,加入RabbitMQ吧 这样性能可以改变
补充:Java ,  Web 开发
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,