当前位置:首页 > 技术文章 > 正文内容

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

arlanguage3个月前 (01-31)技术文章19

概述


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

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


场景描述


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


方案架构



方案优势


本实践通过云速搭 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)。

https://developer.aliyun.com/cloudnative/

往期文章:

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

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

扫描二维码推送至手机访问。

版权声明:本文由AR编程网发布,如需转载请注明出处。

本文链接:http://www.arlanguage.com/post/1771.html

标签: zookeeper nginx
分享给朋友:

“云原生最佳实践系列 3:基于 SpringCloud 应用玩转 MSE” 的相关文章

Linux中完全卸载nginx并重新安装

一、卸载停止Nginx软件/usr/local/nginx/sbin/nginx -s stop如果不知道nginx安装路径,可以通过执行ps命令找到nginx程序的PID,然后kill其PIDps -aux |grep nginx查找根下所有包含nginx的文件sudo find / -name...

Linux系统非root用户下安装Nginx

通常使用Nginx或者Apache作为Web服务器时,默认监听80端口,因此默认会使用root用户去安装,而且,使用yum命令安装时,通常会安装到默认的路径下,默认路径通常是root用户才有执行权限的。如果不需要使用Nginx监听1024以下的端口,且对权限和网络管理比较严格时,能用非root权限解...

安装Code-server并配置用于多用户的反向代理(Nginx)

1.安装code-servercode-server的项目网址在cdr/code-server.在code-server的README中, 提供了两份部署指南, 一份是用于部署在AWS等云服务的deploy, 另一份则是我们要用的用于部署在本地的quickstart.Guide非常简洁明了, 就三步...

http请求域名强制跳转https

网站添加了https证书后,当http方式访问网站时就会报404错误,所以需要做http到https的强制跳转设置. ---------------一、采用nginx的rewrite方法--------------------- 下面是将所有的http请求通过rewrite重写到https上。 例如...

Linux进程管理工具 Supervisor详解

Supervisor安装与配置(linux/unix进程管理工具) Supervisor(http://supervisord.org)是用Python开发的一个client/server服务,是Linux/Unix系统下的一个进程管理工具,不支持Windows系统。它可以很方便的监听、启动、停止、...

Nginx 最全操作——nginx常用命令(3)

上一篇文章我们设置了nginx的配置,这里简单介绍一下nginx的常用命令。几个常用的命令:nginx -s reload # 向主进程发送信号,重新加载配置文件,热重启 nginx -s reopen # 重启 Nginx nginx -s stop # 快速关闭 nginx -s qu...