关于前端请求的负载均衡

nginx可以实现前端请求的负载均衡,dubbo可以实现后台服务的分布式。
像现在流行的微服务,都是无中心化的。防止一个中心压力过大,或者中心down掉后影响整个系统。
那么问题来了,nginx服务器down掉后,会导致后台服务都收不到响应,怎么解决这个问题?还是说部署多个nginx。如果部署多个nginx,又怎么部署呢?

nginx可以处理上万的并发,但是实际中超过它的最大并发量,又是如何解决的呢?

谢谢!

阅读 5.9k
4 个回答

最前面,架两台LVS,互为主备,他俩负责调度到后面的多台nginx。

是这样的 在nginx前面还有一层专门做负载均衡的家伙 叫 LVS 或者 SLB。
为了安全起见,鸡蛋肯定不能放一个篮子里,同理,服务器也不会都在一个机房,一般都会有三四个机房在提供服务,每个机房怎么也得2、30台服务器,然后在这些服务器前面再横一个 LVS 进行负载均衡。
如果没有 LVS 的话,那么就用一个 nginx 做负载均衡,怎么着也得 upstream 2、30 台其他的 nginx 服务器提供服务,能力强的 server 那就 weight 多些,能力不强的少些 weight, 在这2、30台中,腾出7、8 台 back up。

部署多个nginx的问题:使用keepalived保持心跳,如果服务器挂了,就将请求转移到没挂的服务器上。

并发量的问题也是使用nginx的反向代理将访问转移到不同的机器上,进行请求分担,降低并发量

怎么部署我这边有两个文档,可以私我

  1. 同一个局域网内 nginx 的负载均衡可以用 keepalived 或者 lvs 等方案。

  2. 不同网络(比如跨地域)可以使用任播(anycast,国内听说不好使)或者 DNS。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题