动态流量管理方案 Upsync

BSD
C/C++ 查看源码»
跨平台
新浪
2016-03-11
开源中国股瞎

Upsync,微博开源基于Nginx容器动态流量管理方案 。

Nginx 以其超高的性能与稳定性,在业界获得了广泛的使用,微博的七层就大量使用了 Nginx 。结合 Nginx 的健康检查模块,以及动态 reload 机制,可以近乎无损的服务的升级上线与扩容。这个时候扩容的频次比较低,大多数情况下是有计划的扩容。

Upsync,开发了模块 nginx-upsync-module,它的功能是拉取 consul 的后端 server 的列表,并更新 Nginx 的路由信息。此模块不依赖于任何第三方模块。consul 作为 Nginx 的 db,利用 consul 的 KV 服务,每个 Nginx work 进程独立的去拉取各个 upstream 的配置,并更新各自的路由。

流程图如下:

应用案例:

模块已经应用在微博的各类业务中,下面图表对比分析使用模块前后的 QPS 与耗时变化。

从数据可以得出,reload 操作时造成 nginx 的请求处理能力下降约 10%,Nginx 本身的耗时会增长 50%+。若是频繁的扩容缩容,reload 操作造成的开销会更加明显。

官方商业版对 Nginx plus 支持了 DNS 与 push 版本提供了支持。

在使用过程中因为数据一致性等问题,扩展支持了基于 consul 的 pull 版本。

的码云指数为
超过 的项目
加载中

评论(1)

滔哥
滔哥
看不懂,不过感觉好高端。 #Upsync#

暂无资讯

暂无问答

005、基于Consul+Upsync+Nginx实现动态负载均衡

1、Consul环境搭建 下载consul_0.7.5_linux_amd64.zip到/usr/local/src目录 cd /usr/local/src wget https://releases.hashicorp.com/consul/0.7.5/consul_0.7.5_linux_amd64.zip 解压consu...

2018/06/24 18:35
234
0
利用OpenResty搭建动态API网关

首先,什么是API网关? 如上图, API 网关作为全部客户端的单一入口点 使用API网关的优势: 确保客户端无法察觉应用程序是如何被拆分为多项微服务的。 确保客户端不受服务实例的位置的影响。 为每...

2018/05/28 17:54
182
0
使用Nginx+Lua(OpenResty)开发高性能Web应用

在互联网公司,Nginx可以说是标配组件,但是主要场景还是负载均衡、反向代理、代理缓存、限流等场景;而把Nginx作为一个Web容器使用的还不是那么广泛。Nginx的高性能是大家公认的,而Nginx开...

2016/10/26 16:25
165
0

没有更多内容

加载失败,请刷新页面

返回顶部
顶部