我们需要构建一个每秒能够处理 40,000 条消息的系统。
在任何软件或硬件故障的情况下都不会丢失任何消息。
每条消息大小约为 2-4Kb。
消息的处理包括验证消息、进行一些简单的算术计算、将结果保存到数据库以及(有时)向其他系统发送通知。
优选的软件技术是.Net。
哪些软件和硬件模式最适合此类任务?
它需要多少硬件?
最佳答案
我要做的第一件事是排队通知。然后我将所有不需要返回值的数据库写入排队。然后我会考虑扩大规模。
其他注意事项:
* 避免使用一个笨重的框架,它在幕后做的工作比你可能需要的要多。
* 尽可能使用缓存和静态变量。
每秒 40,000 条消息是可行的,但是当您将 IO 添加到混合中时,即使在具有大量内存的超快速硬件上也可能无法预测。尽可能多地进行带外处理。如果失败,请查看您是否可以运行多个线程(在多核或多进程机器上)并在需要时查看集群中的多个服务器。
编辑:
在这样的场景中,我怎么强调负载测试的好处都不为过。做一个简单的原型(prototype)和负载测试。完善原型(prototype),直到获得所需的结果。然后基于原型(prototype)构建最终解决方案。在您测试所需的性能水平之前,您只能猜测解决方案。
关于.net - 每秒能够处理 40,000 条消息的系统的模式和技术,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/874093/