1秒1000并发,高并发需要什么样的服务器?
目前使用的是MongoDB数据库,需要4天的豪华云主机才勉强达到每秒8900并发。
如果需要根据数据量和业务复杂程度综合评估硬件水平,建议购买两台云主机(4核8g内存)搭建集群环境。然后根据实际需要进行扩展。
软件级别:
首先,如果是写操作,它应该:
1.1使用消息队列进行异步处理(如activemq等。)以避免消息拥塞。
1.2使用MongoDB的批量写功能,比如每1000条数据写一次。
第二,MongoDB采用集群模式部署,可以分散压力。
第三,如果是读操作,可以考虑添加redis,一级缓存热点数据。
每秒1000的并发不算太高,简单优化一下就行了,现在一般服务器应该可以支持。首先看一下linux系统的线程池分配和io限制。
当然不建议让数据库抗频繁高并发。应该在整体架构上优化,架构缓存服务器是否可以考虑在数据库上层,针对具体业务做一些优化。
多读还是多写,索引是怎么建立的?什么是慢速sql?单次访问的数据量是多少?
从正常的角度来看,还远远谈不上数据库的性能瓶颈,具体问题具体分析。
硬件似乎够用,程序优化更重要。
一般情况下,一个人站几千是没问题的。根据你的情况,问题可能在两个方面:web服务的io或者DB。
影响web服务性能的关键因素是io和线程模型。web框架的性能(netty,mina等。)的nio用epoll系列会比bio高很多。
其次是DB、索引、os页面缓存等等。
一个1000块钱的程序员,可以写出每秒1000个订单的服务器。
宽带肯定是几十兆,硬件其实也没问题。现在你可以用一台非常便宜的pc来做一个分布式架构。至于内存和硬盘的大小,主要是根据数据和存储的大小来决定的。希望我的回答能帮到你!
epoll模型的原理?
原则是
创建一个epoll模型实际上就是打开一个文件,epoll_create返回一个文件描述符。创建红黑树和就绪队列。