你认为要支持1w并发需要什么样服务器配置?

你认为要支持1w并发需要什么样服务器配置?,第1张

场景很重要,比如一万并发的qps还是tps,这完全不同的概念。 服务器做做优化,现在通过epoll支撑百万连接十万并发没什么瓶颈。但是,这只是网络层,如果落到具体业务,那就另当别论了。比如redis可以十万并发,因为只需要网络io和访问内存。但是如果有业务处理,挂上了数据库,走了kafka,并且再走redis,那就要具体问题具体分析了。 数据库单存qps,我们原来基准测试结果是可以支撑六万到八万左右,但是有事务的增删改绝对不是这个量级。 其实你需要的是一个基准测试的结果,例如tcp,http基准测试;tomcat基准测试;应用框架基准测试;redis基准测试;mysql基准测试等。 我们做过应用框架基准测试,基于springboot,测试接口没什么逻辑,就是直接查询sql并返回结果。基准测试结果是八核16G内存,跑两个实例,可以撑到8万并发左右,应该还有优化空间吧。 你这问题就和一天跑一百公里要个什么车一样,也不说什么路,也不说拉什么货 撇开场景扯性能,扯吞吐量,扯并发都是耍流氓 几台服务器加F5,一台不牢靠 看你什么样的场景,业务复杂度,就个静态页面,给你两台ng就搞定了 允许配置全站加速吗?另外需求不明确 32核128G内存 不可以,如果是短期高并发,建议考虑挂载负载均衡服务器。 C10kp……这是很经典的问题啊,一般nio就做到了。 要看性能要求了,如果只讨论并发数量,用异步网络模型,并发一万个链接没啥问题吧,只是数据处理不过来,大多数链接都是在等待结果而已。服务器配置1核8g差不多够了吧

redisproxy有高并发限制吗,限制,一. 如果某接口的QPS的要求很高,比如超过1W,怎么部署?

          redis部署层面,要做集群,redis集群有三种模式:

        1.1 读写分离。主库(写)+两个以上从库(读)

         1.2 哨兵模式:有一个独立sentinel系统监控,主从,如果主机挂了,可以把从2设置为主

->

         1.3 集群,多数据节点模式(数据存多个节点)redis 数据分片使用的是hash slot, redis集群有16384个哈希槽,每个Key通过CRC16校验后对16384取模来决定放置哪一个槽

         2. 少量热KEY的处理,怎么办?

                2.1 多级缓存,这些热key用本地缓存,

                2.2 但是业务复杂很难知道哪些会成为热key,怎么办?可采用在客户端和Redis之间做一个proxy代理(这个proxy最好单独做一个第三方的程序),监控key的访问频率,如果高的key,就缓存到客户端本地缓存,或者就缓存到proxy本地。

                网络流程:客户端 ->proxy ->Redis(客户端到proxy,根据key的hash值取模到对应的proxy)

                2.3 那这个proxy,为什么不客户端自己统计,而单独整一个proxy服务器,因为客户端应用可能很多,单个客户端自己统计不太精准,集中式统计更精准,客户端自己统计和存这些key也耗内存和性能,所以单独整一个proxy,如果proxy自己性能不好了,再横向扩展这个proxy也方便。

         Redis缓存尽量制作存储,少做业务修改。

二、减扣库存的接口QPS达到数万。怎么办?【写热点问题】

        2.1 外层限流90%,让10%可承受的流量的进来(可用Sentinel阿里的)

        2.2 到了业务层减扣redis的库存,采用redis的计数器,increment方法,这样保证原子性

        2.3 合并减扣:比如减扣1000库存,想办法值减100次,每次减掉10各库存,提升10倍性能

        2.4 库存分段模式:比如库存有1W,那么可以把这个库存分为5个key存储,每个key存2000,减扣的话就从5各分别去减,避免单个key去减扣1W

nginx的优点

a)轻量级,同样起web 服务,比apache 占用更少的内存及资源

b.)抗并发,nginx 处理请求是异步非阻塞的,而apache 则是阻塞型的,在高并发下nginx 能保持低资源低消耗高性能

c.)高度模块化的设计,编写模块相对简单

d.)社区活跃,各种高性能模块出品迅速啊

apache 的优点

a.)rewrite ,比nginx 的rewrite 强大

b.)模块超多,基本想到的都可以找到

c.)少bug ,nginx 的bug 相对较多

d)超稳定

最核心的区别在于apache是同步多进程模型,一个连接对应一个进程;nginx是异步的,多个连接(万级别)可以对应一个进程

apache和nginx区别

1、相比 Apache,Nginx 使用更少的资源,支持更多的并发连接,体现更高的效率。在高连接并发的情况下,Nginx是Apache服务器不错的替代品. 能够支持高达 50,000 个并发连接数的响应。

2、Nginx作为负载均衡服务器: Nginx 既可以在内部直接支持 Rails 和 PHP 程序对外进行服务, 也可以支持作为 HTTP代理 服务器对外进行服务. Nginx采用C进行编写, 不论是系统资源开销还是CPU使用效率都比 Perlbal 要好很多.

3、作为邮件代理服务器: Nginx 同时也是一个非常优秀的邮件代理服务器。

4、Nginx 是一个安装非常的简单 , 配置文件非常简洁(还能够支持perl语法), Bugs 非常少的服务器: Nginx 启动特别容易, 并且几乎可以做到7*24不间断运行,即使运行数个月也不需要重新启动. 你还能够不间断服务的情况下进行软件版本的升级 .

5、nginx处理静态文件好,耗费内存少

6、nginx的负载能力比apache高很多。有好多集群站,前端nginx抗并发,后端apache集群,配合的也不错。

7、Nginx优于apache的主要两点:1.Nginx本身就是一个反向代理服务器 2.Nginx支持7层负载均衡;其他的当然,Nginx可能会比apache支持更高的并发,但是根据NetCraft的统计,2011年4月的统计数据,Apache依然占有62.71%,而Nginx是7.35%,因此总得来说,Aapche依然是大部分公司的首先,因为其成熟的技术和开发社区已经也是非常不错的性能。

8、Apache在处理动态有优势,Nginx并发性比较好,CPU内存占用低,如果rewrite频繁,那还是Apache吧


欢迎分享,转载请注明来源:夏雨云

原文地址:https://www.xiayuyun.com/zonghe/716606.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-08-07
下一篇2023-08-07

发表评论

登录后才能评论

评论列表(0条)

    保存