想问一些高并发服务器的问题
1.现在我们一般都用nginx 做代理 做负载均衡,但是如果nginx 挂啦怎么办?
2.nginx 一般可以承受万级的并发,但是如果我现在访问量的是百万级的,那我该怎么办?
3.dns做负载均衡 配置多个ip 以后,这个ip 下的服务器挂啦以后怎么办。
4.从某种意义上来说,nginx 从 tcp/ip 模型的应用层角度去解决高并发的,lvs 应该是从网络层去做的,传输层有没有好的方案?
5.数据库如何去做负载均衡?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
“如何构建一个高性能、高并发的服务” 是一名Web开发者的奋斗目标。如果能真正做到这点,基本就可以算得上是架构师、大神级别了。个人觉得,有这么些优化的方向:
1、浏览器端:这块考验的是前端研发的能力。比如合理减少并发请求、图片合并(Sprite)、帮助后端承担部分计算量等等。
2、传输过程:使用CDN。通过缓存,一方面提升访问效率,一方面减少服务器端请求量。
3、智能调度:主要有三种策略 权重、轮询、主备,将请求调度到不同的服务器集群(LVS + Server List是一个服务器集群,条件允许,可以有多个,对外就一个IP,通过DNS调度到这些不同的IP)
4、服务器集群:LVS。它主要也是做调度的,所以请求量大,也不会耗费它多少性能。要是怕单点故障,可以搞个备份(keepalived实现双机热备)。LVS也可以配置多种调度策略,分别把请求调度到多个不同的真实服务器。
5、代码优化:这个没啥好说了,看程序猿的能力了。
6、缓存:合理使用缓存,将一些实时性要求不是很高的数据进行缓存,省得每次请求都查询一次数据库、计算归并一次。memcache、redis都行
7、数据库:读写分离、根据业务合理分表、分库。也可以架个keepalived 双机热备。MySQL推出了个集群(MySQL Cluster),不过我没有真正上线使用过。听说不太稳定。你可以研究研究。
暂时想到这些。大神们可以补充。如有错误,望指正。
(比较遗憾,我也是“纸上谈兵”,并没有真正去部署过。因为还没有遇到并发数那么高的项目,也不会有那些设备让我折腾)