首页 > 其他分享 >云原生最佳实践系列 3:基于 SpringCloud 应用玩转 MSE

云原生最佳实践系列 3:基于 SpringCloud 应用玩转 MSE

时间:2024-03-27 11:24:41浏览次数:27  
标签:原生 网关 服务 NAT 验证 SpringCloud 玩转 应用 MSE

概述

随着业务不断创新,大型的单个应用和服务会被拆分为数个甚至数十个微服务,微服务架构已经被广泛应用。微服务的好处在于快速迭代,迭代过程保障线上流量不受损。依赖开源产品缺少专业运维工具,常常需要投入较大的运维人力和成本。

本实践基于云原生应用产品提供微服务注册配置中心、微服务治理和云原生网关等一系列高性能和高可用的企业级云服务能力。

场景描述

针对已经启用微服务架构或者准备改造为微服务架构的用户,通过实践熟悉云上基于云原生产品的微服务架构实践,熟悉服务注册和网关路由配置、全链路灰度发布、无损上下线、限流降级能力验证等。

方案架构

方案优势

本实践通过云速搭 CADT,一键完成基础环境的搭建和部署,提供可视化部署方案和 step by step 实操指导:

  • 高可靠: 支持多可用区容灾,具备完善的流量防护、健康检测、自动恢复等能力,优化大量可用性痛点,保证引擎持久稳定运行。
  • 低成本: 节省用户自建网关、注册配置中心、微服务治理体系的人力成本,高性能及高集成度可进一步降低资源成本。
  • 易用性: 100% 兼容开源社区产品 Nacos、ZooKeeper 和 Eureka;应用代码、配置、镜像无须修改即可接入微服务治理,体验 MSE 服务治理能力。
  • 高度集成: 与阿里云产品体系无缝对接。例如容器服务、日志服务、应用监控、Web 应用防火墙等,为您提供一站式的微服务解决方案。

产品介绍

专有网络(Virtual Private Cloud,简称 VPC) 帮助您基于阿里云构建一个逻辑隔离的云上数据中心。专有网络由逻辑网络设备(如虚拟路由器,虚拟交换机)组成,可以通过专线/VPN 等连接方式与传统数据中心组成一个按需定制的网络环境,实现应用的平滑迁移上云。

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

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

云消息队列 MQ(RocketMQ) 是构建分布式互联网应用的基础设施,通过 MQ 实现的松耦合架构设计可以提高系统可用性以及可扩展性,是适用于现代应用的优秀设计方案。MQ 产品生态丰富,多个子产品线联合打造金融级高可用消息服务以及对物联网的原生支持,覆盖金融保险、(新)零售、物联网、移动互联网、教育、物流、能源、交通等行业。

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

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

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

前置条件

在进行本文操作之前,您需要完成以下准备工作:1)注册阿里云账号,并完成实名认证。您可以登录阿里云控制台,并前往实名认证页面 https://account.console.aliyun.com/v2/#/authc/home) 查看是否完成实名认证。

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

操作步骤

  1. 关键技术1.1. 治理趋势
    1.2. 网关选型

  2. 实践架构设计

2.1. 架构图2.2. 核心模块2.3. 基础资源环境规划

  1. 基础环境搭建

3.1. 基于模版新建环境

  1. 云产品访问验证

4.1. 确认资源运行情况4.2. 基础环境访问验证

  1. 验证服务注册与网关路由

5.1. ACK 集群部署应用5.2. 查看服务注册情况5.3. mseprovider 验证5.4. 验证网关流量转发5.4.1. 创建服务5.4.2. 创建路由5.4.3. 验证路由效果

  1. 全链路灰度能力验证

6.1. ACK 应用接入 MSE 治理中心6.2. ACK 中应用添加灰度标6.3. 实现同步调用全链路灰度6.3.1. 设置服务版本6.3.2. 核对基线版本路由6.3.3. 创建全链路灰度泳道组6.3.4. 创建分流泳道6.3.5. 效果演示6.4. 实现异步消息全链路灰度6.4.1. 开启异步消息全链路灰度6.4.2. 核对 MQ 的过滤条件

  1. 无损上下线验证

7.1. 无损下线能力验证7.1.1. 手动关闭无损下线7.1.2. 通过脚本发起请求7.1.3. 流量损失对比验证7.2. 无损上线能力验证7.2.1. 配置定时伸缩7.2.2. 配置无损上线7.2.3. 通过脚本发起请求7.2.4. 观察预热曲线

  1. 限流降级验证

8.1. 升级到企业版8.2. 设置流控规则8.3. 脚本请求和降级效果8.4. 新增熔断规则和接口8.5. 调整慢调用生效8.6. 熔断效果展示9. 一键释放云资源

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

往期文章:

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

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

标签:原生,网关,服务,NAT,验证,SpringCloud,玩转,应用,MSE
From: https://www.cnblogs.com/alisystemsoftware/p/18098516

相关文章

  • msexcl40.dll文件丢失导致程序无法运行问题
    其实很多用户玩单机游戏或者安装软件的时候就出现过这种问题,如果是新手第一时间会认为是软件或游戏出错了,其实并不是这样,其主要原因就是你电脑系统的该dll文件丢失了或没有安装一些系统软件平台所需要的动态链接库,这时你可以下载这个msexcl40.dll文件(挑选合适的版本文件)把它......
  • SpringCloud(一.2)微服务远程调用 -- Feign
    通过RestTemplate实现远程调用后存在一些问题,如图:RestTemplate缺点:代码可读性差,编程体验不统一。参数复杂URL难以维护。 Fegin是一个声明式的http客户端(https://github.com/OpenFegin/fegin),其作用就是帮助我们优雅的实现http请求的发送,解决上面RestTemplate的痛点。 Feg......
  • Loss Function: MSELoss, CrossEntropyLoss
    ......
  • SpringCloud学习笔记二:服务间调用
    微服务中,很多服务系统都在独立的进程中运行,通过各个服务系统之间的协作来实现一个大项目的所有业务功能。服务系统间使用多种跨进程的方式进行通信协作,而RESTful风格的网络请求是最为常见的交互方式之一。springcloud提供的方式:1.RestTemplate2.Feign一、服务提供者创建......
  • SpringCloud之Nacos
    SpringCloud之Nacosnacos作为注册中心服务提供者添加依赖<dependency><groupId>com.alibaba.cloud</groupId><artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId></dependency>配置Nacos注册中心spring:application......
  • 深度解析webpack5以及打包实践攻略,看完这篇带你玩转高级自定义打包
    1.webpack5对比webpack4做了哪些优化Webpack5对比Webpack4存在一些重要的优化。Webpack5在性能、构建速度、TreeShaking等方面都有所改进:性能改进:Webpack5在构建速度和性能方面有所提升。这主要是通过改进缓存策略、优化构建算法以及增强的持久化缓存等方式......
  • Amazon Bedrock 实践 | 动手玩转 Claude 3
    生成式AI和大模型在2024年已经进入落地实践阶段。因此,围绕开发者在生成式应用程序开发中的主要痛点和需求,我们组织了这个“AmazonBedrock实践”的系列,希望可以帮助开发者高效地上手生成式AI和大模型的应用开发,本篇为第一篇。亚马逊云科技开发者社区为开发者们提供全球......
  • 2020-6-13-SpringCloud
    理论知识、Eureka注册中心、Ribbon负载均衡、Hystrix熔断器、Feign服务调用、Zuul网关理论知识1集中式架构存在问题代码耦合,开发维护昆仑无法对不同模块进行针对性优化无法水平扩展容错率低,并发能力查2微服务一种架构模式,即一种架构方格,提倡将单一应用程序划分成一组小的......
  • 云效 AppStack + 阿里云 MSE 实现应用服务全链路灰度
    作者:周静、吴宇奇、泮圣伟在应用开发测试验证通过后、进行生产发布前,为了降低新版本发布带来的风险,期望能够先部署到灰度环境,用小部分业务流量进行全链路灰度验证,验证通过后再全量发布生产。本文主要介绍如何通过阿里云MSE微服务引擎和云效应用交付平台AppStack实现灰度发布。......
  • 云效 AppStack + 阿里云 MSE 实现应用服务全链路灰度
    作者:周静、吴宇奇、泮圣伟在应用开发测试验证通过后、进行生产发布前,为了降低新版本发布带来的风险,期望能够先部署到灰度环境,用小部分业务流量进行全链路灰度验证,验证通过后再全量发布生产。本文主要介绍如何通过阿里云MSE微服务引擎和云效应用交付平台AppStack实现灰度发布。......