大家好,我是IT孟德,You can call me Aman(阿瞒,阿弥陀佛的ē,Not阿门的ā),一个喜欢所有对象(热爱技术)的男人。我正在创作架构专栏,秉承ITer开源精神分享给志同道合(爱江山爱技术更爱美人)的朋友。专栏更新不求速度但求质量(曹大诗人传世作品必属精品,请脑补一下《短歌行》:对酒当歌,红颜几何?譬如媳妇,吾不嫌多...青青罗裙,一见动心,但为佳人,挂念至今...),用朴实无华、通俗易懂的图文将十六载开发和架构实战经验娓娓道来,让读者茅塞顿开、相见恨晚...如有吹牛,不吝赐教。关注wx公众号:IT孟德,一起修炼吧!
专栏文章推荐:
1、背景
凭借弹性资源调度、开放技术生态和持续创新能力,云计算正全面驱动企业数字化转型,从互联网行业到传统制造业,"上云" 已势不可挡。对于企业而言,业务上云能带来一系列实际利好,但对技术人员来说,上云过程往往伴随着诸多挑战 ,尤其是在处理存在大量技术债的庞大C端业务时,转型过程更是一波三折。
某业务快速增长,自建IDC机房服务器逐渐过保,服务扩容和数据容灾都面临巨大挑战。因业务的复杂性,基于“稳”字当头考虑,最终制定了依据业务体量以及影响范围逐步迁移上云的演进方案。该方案将造成在很长一段时间内IDC与公有云共存的混合架构,在一定程度上增加了系统架构的复杂度。首先面临的就是流量分发的问题,流量分发重点解决以下问题:
-
原业务域名单一,无法强制端用户升级版本通过新api域名区分流量
-
数千个api对应的uri毫无规律,无法通过简单的location规则区分业务并转发至部署机房
-
Api网关依据业务进行垂直拆分,需将用户请求路由至对应的网关
2、解决方案
2.1、路由规则管理
为解决上述问题,首先就要建立用户请求api地址与机房、业务网关的映射关系。经过评估,我们直接改造原网关控制台,基于维护api的功能完善路由管理,支持设置api的机房和业务网关。
图1: 路由管理
通常路由规则数