首页 > 其他分享 >云原生最佳实践系列2:基于 MSE 云原生网关同城多活

云原生最佳实践系列2:基于 MSE 云原生网关同城多活

时间:2024-03-20 15:33:54浏览次数:28  
标签:原生 网关 服务 机房 NAT 多活 MSE

方案概述

分布在同城多个机房内的应用同时对外提供服务。同城机房物理距离较小,一般小于 50 公里。同城多活架构的难点有三个:

  • 当某机房出现故障,能不能做到机房级的快速切换?
  • 如何实现非对等部署下的全局的流量负载均衡?
  • 对流量的精细化管控?

常见的同城多活实现方式(如下图),在这个架构里。DNS 本身存在缓存,DNS 的域名是映射到机房的网关 IP,网关又是每个机房一个局部的。很难做到机房级故障的秒级自动转移和非对等状态下的全局负载均衡。如果两个机房的微服务应用如果共用一套注册中心,就没办法保证微服务调用单元内闭环。

应用场景

借助云原生微服务引擎 MSE 产品,配置注册中心的同城容灾多活微服务应用。提供一个经典微服务场景在云上实现同城容灾的步骤,通过云原生相关产品在用户应用上云时解决高可用,同城容灾,多活等需求。主要步骤:

  1. 通过 CADT 快速完成应用环境部署;

  2. 同城双 MSE 注册中心接入;

  3. MSE 网关接入。

方案适合场景和优势

  • MSE 云原生网关

    云原生网关默认双可用区部署,既使一个可用区的节点都挂了,另一个可用区的节点依旧可以正常工作。

  • MSE 注册中心

    MSE 注册中心默认三可用区部署,即使两个可用区的节点都挂了依然不会影响业务。

  • 机房级故障的秒级自动转移

    云原生网关对于关联服务的每个节点都建立了主动健康检查的机制,默认是 2 秒(也可以自己调整)。主动健康检查发现节点不健康,则会自动剔除,健康检查除了 TCP 的端口探测外,也支持 HTTP 的探测,通过健康检查机制,可以实现机房级故障的秒级自动转移。

  • 非对等部署状态下的全局流量负载均衡

    云原生网关会把两个集群的同名服务进行合并,然后在合并后的节点数量的基础上实现多种负载均衡策略,通过这种方式可以很好的实现两个机房在非对等部署状态下的负载均衡,例如:两个机房的同应用各部署了 5 个节点,这个时候云原生网关会把两个机房的同名服务的节点进行合并,变成 10 个。然后云原生网关在这 10 个中实现轮询等负载均衡策略,假设机房 1 的节点挂了 4 个,还剩一个。那这时分配给机房 1 的流量会自动的从 50% 降到 10%,分配给机房 2 的流量会自动的从 50% 提升到 90%。

  • 流量的精细化管控

    每个集群一套注册中心,应用启动的时候只像本可用区的注册中心注册。这样可以保证微服务调用在可用区内闭环。微服务调用可用区闭环以后,可以配合云原生网关的多种流量路由能力实现蓝绿和灰度等发布策略。

部署架构

架构说明

2 个 MSE 注册配置中心, 2 个 ACK 集群,1 个高可用 MSE 云原生网关。

  • 每个可用区的微服务只注册到本 AZ 的 MSE 注册配置中心,实现闭环调用。
  • 两个 AZ 共享 1 个 NAT 网关,用于容器节点拉取镜像。

产品介绍

专有网络 VPC(Virtual Private Cloud): 是用户基于阿里云创建的自定义私有网络, 不同的专有网络之间二层逻辑隔离,用户可以在自己创建的专有网络内创建和管理云产品实例,比如 ECS、负载均衡、RDS 等。

容器服务 Kubernetes 版 ACK: 容器服务 Kubernetes 版(简称 ACK)提供高性能且可伸缩的容器应用管理能力,支持企业级容器化应用的全生命周期管理。在 2021 年,ACK 成为国内唯一连续三年入选 Gartner 公共云容器报告的产品,同时在 2022 年成为国内唯一进入 Forrester 领导者象限的产品。ACK 整合了阿里云的虚拟化、存储、网络和安全能力,助力企业高效运行云端 Kubernetes 容器化应用。

微服务引擎 MSE: 微服务引擎 MSE 面向业界主流开源微服务项目, 提供注册配置中心和分布式协调(原生支持 Nacos/ZooKeeper/Eureka )、云原生网关(原生支持 Higress/Nginx/Envoy,遵循 Ingress 标准)、微服务治理和分布式任务调度能力(兼容开源 XXL-JOB/ElasticJob/K8s Job/Spring Schedule)。

云速搭 CADT(Cloud Architect Design Tools): 是一款为上云应用提供自助式云架构管理的产品,显著地降低应用云上管理的难度和时间成本。本产品提供丰富的预制应用架构模板,同时也支持自助拖拽方式定义应用云上架构;支持较多阿里云服务的配置和管理。用户可以方便的对云上架构方案的成本、部署、运维、回收进行全生命周期的管理。

NAT 网关: 阿里云 NAT 网关(NAT Gateway,简称 NAT)提供公网 NAT 和私网 NAT 两种功能。公网 NAT 网关通过自定义 SNAT、DNAT 规则可为云上服务器提供对外公网服务、及主动访问公网能力;私网 NAT 网关(也即 VPC NAT 网关)可使 VPC 内的 ECS 实例通过私网地址转换服务,实现 VPC 与 VPC 之间、及 VPC 与线下 IDC 互访能力。

弹性公网 IP: 弹性公网 IP 是独立的公网 IP 资源,可与阿里云专有网络 VPC 类型的云服务器 ECS、NAT 网关、ENI 网卡、私网负载均衡 SLB 绑定,并可以动态解绑满足灵活管理的要求。弹性公网 IP 可为您在云上部署的网站提供 Internet 访问服务。

前置条件

在进行本文操作之前,您需要完成以下准备工作:

1)注册阿里云账号,并完成实名认证。您可以登录阿里云控制台,并前往实名认证页面 https://account.console.aliyun.com/v2/#/authc/home) 查看是否完成实名认证。

2)购买按量付费资源,阿里云账户余额需要大于 100 元。考虑到部署后每小时会产生费用,建议账号内余额或者代金卷金额大于 200 元。您可以登录阿里云控制台,前往账户总览页面 https://usercenter2.aliyun.com/home) 查看账户余额。

操作步骤

  1. 基础环境搭建

  2. 在 ACK 集群中部署 Demo 应用

    2.1. 打开部署好的应用2.2. 获取 J 和 K 区 MSE 注册中心地址

  3. 配置 MSE 网关及路由

    3.1. 配置 MSE 网关

  4. 多活场景验证

    4.1. 通过云原生网关进行路由调试

    4.2. 多活验证

    4.3. 切流验证

    4.4. PTS 压测验证(可选)

  5. 一键释放资源

最佳实践全部内容,请点击此处查看。对方案和产品感兴趣的朋友,可以加入钉钉群交流(群号:31852400)。

往期文章:

云原生最佳实践系列 1:借助云速搭 CADT 如何实现 Kafka 的性能压测?

标签:原生,网关,服务,机房,NAT,多活,MSE
From: https://www.cnblogs.com/alisystemsoftware/p/18085343

相关文章

  • iLogtail 2.0 来了;通义灵码下载量破百万丨阿里云云原生 2 月产品月报
    云原生月度动态云原生是企业数字创新的最短路径。《阿里云云原生每月动态》,从趋势热点、产品新功能、服务客户、开源与开发者动态等方面,为企业提供数字化的路径与指南。趋势热点......
  • Gateway网关
    Gateway网关Gateway服务网关1为什么需要网关2gateway快速入门3断言工厂4过滤器工厂4.1路由过滤器的种类4.2请求头过滤器4.3默认过滤器4.4总结5全局过滤器5.1全局过滤器作用5.2自定义全局过滤器5.3过滤器执行顺序6跨域问题6.1什么是跨域问题6.2解决跨域......
  • Modbus TCP转Profinet网关实现多服务器无缝对接通信
    在工业控制领域中,ModbusTCP转Profinet网关(XD-ETHPN20)扮演着连接不同设备间通讯的重要角色。当将Modbus主站与十几台服务器进行通讯时,通过modbustcp转profinet网关(XD-ETHPN20)设备将不同协议间的数据交和通迅连接起来,为工业自动化系统的运行提供了稳定可靠的基础。为了实现Modbus......
  • ModbusTCP转Profinet网关高低字节交换切换
    ModbusTCP转Profinet网关高低字节交换切换背景:在现场设备与设备通迅之间通常涉及到从一种字节序(大端或小端)转换到另一种字节序。大端字节序是指高位字节存储在高地址处,而小端字节序是指低位字节存储在低地址处。在不动原有程序而又不想或不能添加程序下可选用ModbusTCP转Profinet......
  • 云原生周刊:Istio 加入 Phippy 家族 | 2024.3.18
    开源项目推荐ko"ko"是一个用于构建和部署Go应用程序的简单、快速的容器镜像构建工具。它适用于那些镜像中只包含单个Go应用程序且没有或很少依赖于操作系统基础镜像的情况(例如没有cgo,没有操作系统软件包依赖)。"ko"在本地机器上通过执行"gobuild"的方式构建镜像,因此不......
  • 云原生最佳实践系列 1:如何快速实现kafka性能压测
    消息队列Kafka版实例类型的性能表现除了跟实例本身的规格相关外,与创建实例时选择的云盘类型也强相关,本实验通过相同规格的实例,不同的云盘类型来验证该因素的影响。消息队列KafkaServerless版本身实例未提供具体的云盘类型来选择,其性能表现只与购买实例时预留的写入、读取的......
  • 轻松创建基于 GPT-4 的 AI 原生应用 - Dify
    Dify 是一个易用的 LLMOps 平台,旨在让更多人可以创建可持续运营的原生AI应用。Dify提供多种类型应用的可视化编排,应用可开箱即用,也能以后端即服务的API提供服务。LLMOps(LargeLanguageModelOperations)是一个涵盖了大型语言模型(如GPT系列)开发、部署、维护和优化的一......
  • java项目打包(maven+原生)
    一、maven打包1.1普通jarjava-jarmaven项目打包提示.jar中没有主清单属性<build><finalName>${project.artifactId}</finalName><!--修改编译出来的jar包名,仅为{artifactId}.jar--><plugins><plugin><gr......
  • 《保卫萝卜4》仅用一个月完成鸿蒙原生应用开发
    近日,飞鱼科技宣布已完成《保卫萝卜4》鸿蒙原生应用开发。作为经典休闲类塔防游戏,《保卫萝卜》系列游戏一直是市场TOP级产品。截止2024年2月,该系列游戏累计用户注册数已近7亿。《保卫萝卜4》正式启动鸿蒙原生应用开发后,双方团队高效协同,仅两周便完成引擎最小集鸿蒙化适配,同样只花费......
  • Profinet转CC-Link网关使用指南
    本文为您提供CCLINK转Profinet网关(XD-PNCR20)使用指南,教您如何快速配置和集成网关,实现CCLINK与Profinet的互联。CCLINK转Profinet网关(XD-PNCR20)是一个经过自主研发的先进设备,CCLINK转Profinet网关设备的研发旨在实现CCLINK总线和Profinet网络之间的完美连接,从而实现各种总线系统的......