微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Upsync 动态流量管理方案

程序名称:Upsync

授权协议: BSD

操作系统: 跨平台

开发语言: C/C++

Upsync 介绍

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 版本。

Upsync 官网

https://github.com/weibocom/nginx-upsync-module

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐