Oceanus:美团HTTP流量定制化路由的实践

作者 : 开心源码 本文共835个字,预计阅读时间需要3分钟 发布时间: 2022-05-12 共199人阅读

背景

Oceanus是美团基础架构部研发的统一HTTP服务治理框架,基于Nginx和ngx_lua扩展,主要提供服务注册与发现、动态负载均衡、可视化管理、定制化路由、安全反扒、session ID复使用、熔断降级、一键截流和性能统计等功能。本文主要讲述Oceanus如何通过策略笼统、查询、渲染和分组动态升级,实现HTTP请求的定制化路由。

随着公司业务的高速发展,路由场景也越来越复杂。比方:

  • 团购秒杀要灵活控制压测流量,实现线上服务单节点、各机房、各地域等多维度的压测。
  • 外卖业务要做流量隔离,把北方地域的流量转发到分组a,南方地域的流量转发到分组b。
  • 酒旅业务要对App新版本进行灰度,让千分之一的使用户试使用新版本,其余使用户访问老版本。
  • QA部门要通过请求的自己设置参数指定转发分组,构建稳固且高可使用的测试环境。

因为公司早期的业务场景相比照较简单,所以均通过Nginx if指令支持。比方某业务要把来源IP为10.4.242.16的请求转发到后台节点10.4.232.110,其它请求转发到后台节点10.4.232.111和10.4.232.112,即可以进行如下配置:

upstream backend_aaa {
server 10.4.232.110:8080 weight=10;
}
upstream backend_bbb {
server 10.4.232.111:8080 weight=10;
server 10.4.232.112:8080 weight=10;
}
location /abc {
if($remote_ip = "10.4.242.16") {
proxy_pass http://backend_aaa; #路由到backend_aaa集群
}
proxy_pass http://backend_bbb; #路由到backend_bbb集群
}

上述方式尽管不需要额外开发,性能方面也接近原生的Nginx框架,但是用场景比较受限,由于if指令仅支持比较简单的condition类型,官方形容如下:

Oceanus:美团HTTP流量定制化路由的实践

说明
1. 本站所有资源来源于用户上传和网络,如有侵权请邮件联系站长!
2. 分享目的仅供大家学习和交流,您必须在下载后24小时内删除!
3. 不得使用于非法商业用途,不得违反国家法律。否则后果自负!
4. 本站提供的源码、模板、插件等等其他资源,都不包含技术服务请大家谅解!
5. 如有链接无法下载、失效或广告,请联系管理员处理!
6. 本站资源售价只是摆设,本站源码仅提供给会员学习使用!
7. 如遇到加密压缩包,请使用360解压,如遇到无法解压的请联系管理员
开心源码网 » Oceanus:美团HTTP流量定制化路由的实践

发表回复