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

本文涉及的产品
服务治理 MSE Sentinel/OpenSergo,Agent数量 不受限
简介: 该文档介绍了基于云原生应用的产品构建的微服务架构实践。

概述


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


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


场景描述


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


方案架构

image.png


方案优势


本实践通过云速搭 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. 基础资源环境规划

3. 基础环境搭建

3.1. 基于模版新建环境

4. 云产品访问验证

4.1. 确认资源运行情况

4.2. 基础环境访问验证

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

5.1. ACK 集群部署应用

5.2. 查看服务注册情况

5.3. mseprovider 验证

5.4. 验证网关流量转发

5.4.1. 创建服务

5.4.2. 创建路由

5.4.3. 验证路由效果

6. 全链路灰度能力验证

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 的过滤条件

7. 无损上下线验证

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. 观察预热曲线

8. 限流降级验证

8.1. 升级到企业版

8.2. 设置流控规则

8.3. 脚本请求和降级效果

8.4. 新增熔断规则和接口

8.5. 调整慢调用生效

8.6. 熔断效果展示

9. 一键释放云资源


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


往期文章:

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

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

相关实践学习
容器服务Serverless版ACK Serverless 快速入门:在线魔方应用部署和监控
通过本实验,您将了解到容器服务Serverless版ACK Serverless 的基本产品能力,即可以实现快速部署一个在线魔方应用,并借助阿里云容器服务成熟的产品生态,实现在线应用的企业级监控,提升应用稳定性。
云原生实践公开课
课程大纲 开篇:如何学习并实践云原生技术 基础篇: 5 步上手 Kubernetes 进阶篇:生产环境下的 K8s 实践 相关的阿里云产品:容器服务 ACK 容器服务 Kubernetes 版(简称 ACK)提供高性能可伸缩的容器应用管理能力,支持企业级容器化应用的全生命周期管理。整合阿里云虚拟化、存储、网络和安全能力,打造云端最佳容器化应用运行环境。 了解产品详情: https://www.aliyun.com/product/kubernetes
相关文章
|
19天前
|
SpringCloudAlibaba Java Nacos
SpringCloud Alibaba微服务 -- Nacos使用以及注册中心和配置中心的应用(保姆级)
SpringCloud Alibaba微服务 -- Nacos使用以及注册中心和配置中心的应用(保姆级)
|
26天前
|
存储 Cloud Native Serverless
云原生最佳实践系列 7:基于 OSS Object FC 实现非结构化文件实时处理
阿里云OSS对象存储方案利用函数计算FC,在不同终端请求时实时处理OSS中的原图,减少衍生图存储,降低成本。
|
26天前
|
负载均衡 Cloud Native 安全
云原生最佳实践系列 6:MSE 云原生网关使用 JWT 进行认证鉴权
本文档介绍了如何在 MSE(Microservices Engine)云原生网关中集成JWT进行全局认证鉴权。
|
26天前
|
消息中间件 NoSQL Kafka
云原生最佳实践系列 5:基于函数计算 FC 实现阿里云 Kafka 消息内容控制 MongoDB DML 操作
该方案描述了一个大数据ETL流程,其中阿里云Kafka消息根据内容触发函数计算(FC)函数,执行针对MongoDB的增、删、改操作。
|
15天前
|
监控 负载均衡 Cloud Native
ZooKeeper分布式协调服务详解:面试经验与必备知识点解析
【4月更文挑战第9天】本文深入剖析ZooKeeper分布式协调服务原理,涵盖核心概念如Server、Client、ZNode、ACL、Watcher,以及ZAB协议在一致性、会话管理、Leader选举中的作用。讨论ZooKeeper数据模型、操作、会话管理、集群部署与管理、性能调优和监控。同时,文章探讨了ZooKeeper在分布式锁、队列、服务注册与发现等场景的应用,并在面试方面分析了与其它服务的区别、实战挑战及解决方案。附带Java客户端实现分布式锁的代码示例,助力提升面试表现。
30 2
|
3月前
|
消息中间件 Java 网络安全
JAVAEE分布式技术之Zookeeper的第一次课
JAVAEE分布式技术之Zookeeper的第一次课
70 0
|
1月前
|
监控 NoSQL Java
Zookeeper分布式锁
Zookeeper分布式锁
90 1
|
3月前
|
监控 Dubbo Java
深入理解Zookeeper系列-2.Zookeeper基本使用和分布式锁原理
深入理解Zookeeper系列-2.Zookeeper基本使用和分布式锁原理
61 0
|
3月前
|
NoSQL 中间件 API
分布式锁【数据库乐观锁实现的分布式锁、Zookeeper分布式锁原理、Redis实现的分布式锁】(三)-全面详解(学习总结---从入门到深化)(下)
分布式锁【数据库乐观锁实现的分布式锁、Zookeeper分布式锁原理、Redis实现的分布式锁】(三)-全面详解(学习总结---从入门到深化)
82 2
|
3月前
|
NoSQL Java API
分布式锁【数据库乐观锁实现的分布式锁、Zookeeper分布式锁原理、Redis实现的分布式锁】(三)-全面详解(学习总结---从入门到深化)(上)
分布式锁【数据库乐观锁实现的分布式锁、Zookeeper分布式锁原理、Redis实现的分布式锁】(三)-全面详解(学习总结---从入门到深化)
74 0

相关产品

  • 微服务引擎