开发者学堂课程【场景实践-阿里云微服务产品在斯凯奇全渠道业务中台的最佳实践:斯凯奇全渠道业务中台最佳实践】学习笔记,与课程紧密联系,让用户快速学习知识。
课程地址:https://developer.aliyun.com/learning/course/978/detail/14899
三、MSE 云原生网关大促航保障
网关本身是支持高可用的,因为网关是以集群的方式提供服务,并且它可以调度到不同的可用区,是可以保障分散在三个可用区进行容载的,不会受到任何一个单可用区的网络故障的影响。
1.高可用解决方案
在整个双11的过程中用到了PTS进行全链路压测,并且微服务网关引擎节点上有日志清理的脚本,定时清理磁盘,避免磁盘爆炸导致数据不一致。大家可以看到,微服务网关引擎是接入了ARMS,可以做到监控告警,也接入了AHAS,做了高可用的防护。
并且通过 MCP 协议跟 Nacos 进行打通,MSE 服务治理也是基于流量治理、原则 API 做服务治理。
2.多可用解决方案
同Region,同AZ优先,Region内容灾;跨Region异地容灾,通过网关打通跨region服务
多活,就是要求有一个地方出现故障不能影响整个系统的运行。客户提出的就是同城和异地多活的方案,目前MSHA是可以异地容灾,应用时分布在多个可用区里的,在两个可用区里面是可以通过不同路由访问,并且MSE云原生网关是支持同可用区的路由优先,这样rt就会降低,不会在多个可用区进行跳转。
整个云原生网关是通过easto它可以将多个集群进行打通,它也是基于MSN的网格服务能力加入到同一个集群里面。
3.大促保障指标
在大促中是怎样监测是否满足当前需求的:
(1)系统监控
·可监控ECS和Pod级别的CPU使用率,内存使用率,CPU负载,TCP连接数,网络流量,等多种基础系统指标
·可监控JVM进程,堆内存,GC,线程数等基础使用指标
(2)业务监控
·监控大盘可监控整体业务成功率,RT以及服务和URL级别的成功率,RT等基础业务指标
4.应急方案
①临时扩容
·如遇到CPU/MEM打满、请求数超过预期情况,需要临时扩容;已经预置1倍的冗余节点,可在5分钟内完成1倍的容量扩容;
②异常节点处理
·异常节点可直接在2分钟内摘除;
③多节点失效(某个可用区不可用)
·演练某个可用区不可用(多节点失效),快速使用备用节点扩容;
④流量不均处理
·流量不均要分析原因,MSE网关根据后端服务节点RT自动调整权重,在RT均匀的情况下,流量均匀转发,如果出现不均,需要查看不均节点的服务能力,如果有异常,快速摘除;并且为了提高网关跟其他系统的访问效率,专门拉了一条专线,通过云起网打通了线上和线下这种标准的混合云方案。
四、案例分享
1.云原生网关实例操作
大家可以在阿里云控制台搜索MSE,就会出现微服务引擎,之后就可以通过控制台进入。
微服务引擎下面包含了微服务治理中心,注册配置中心、云原生网关。微服务治理中心下又包含服务鉴权、离群实例摘除、标签路由等等功能。
我们也用到了注册配置中心,比如刚刚讲的基于Dubbo的框架使用的是zookeeper,对外服务路由用到的是Nacos。
点击 zookeeper,可以看到它的基础信息和三个节点。
下面讲云原生网关:
大家可以看到微服务引擎里可以创建网关,可以快速创建一套网关实例,在里面可以根据实际情况选择地域、网关实例规格以及公/私网SLB规格;在监控告警方面,是有ARMS Prometheus;也是可以将日志都投递到SLS上做日志分析和仪表盘的。
网关入口方面,目前是配置了两个SLB.ID地址,在这上面大家可以绑定EAP,通过EAP去绑定一个域名,之后就可以通过域名进行访问。
路由配置:接口都是通过路由配置进行转发的,在路由配置下面的策略配置处是有修改时间窗口的,可以控制流量反复。
在服务列表处:可以看到路由的名称来源于哪个服务列表,服务来源都注册到配置中心,就是Nacos上。
认证鉴权:整个网关都配置有Jwt,它配置在网关上面会做鉴权。
域名管理:如果服务来源比较单一,可以绑定一些域名以增加安全性。
整个服务的PV访问是可以看到的,访问大概是36万,出入口流量也可以看到;Ingress请求书分布是比较均衡的,都是百分之五十,还可以看到当前流量发布的趋势、资源监控
日志的访问,大家可以通过日志中心进行查询。
下面给大家再做一个实例分享:
刚才讲到 Nacos,例如 zookeeper 的参数、GTS 统一工作台是可以通过环境变量将参数进行注入。
之前做过一个认证鉴权的服务,现在运行一下:在这里可以看到
整个服务是通过这个 url:/api/auth/login 进行请求的,参数是可以通过 username 进行访问的,分享一下这个 MSE 网关的服务是如何转发的:
将刚刚的参数提到这里,通过网关去访问查看发布的服务是否正常:是可以正常获取到 tooken 的
刚刚发布的认证鉴权服务是可以在 MSE 上配置,比如路由配置,是可以通过 api/auth/login 去做调用的。