Web应用上云经典架构实践教学

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS PostgreSQL,高可用系列 2核4GB
网络型负载均衡 NLB,每月750个小时 15LCU
简介: Web应用上云经典架构实践教学

内容介绍:

一、配置ALB的服务器组和监听

二、验证第一台ets是否有公网能力

三、云数据库rds配置

 

本次进行web应用上云经典架构的实战篇。

image.png


通过链接点进来,勾选已同意,点击开始实操。这时等待几分钟,系统会帮自动创建所需要的资源。当资源创建成功之后,可以通过左侧的云产品资源在可以查看到系统帮创建的这次实验所有需要用到的云产品资源。

image.png

回到操作手册,点击下一页。这是创建资源的介绍,点击下一页,

image.png

先开通云数据传输ctd,找到云数据传输CTD的控制台。

image.png

我的账号显示已开通,如果是第一次使用,是未开通的状态。选择开通可以。跨地域开通状态不影响本次实验,不做讲解。

 

一、配置ALB的服务器组和监听

点击下一页,整个实验的第一步,先配置ALB的服务器组和监听,通过云产品资源列表找到ALB负载均衡,点击管理。

image.png

在右侧会弹到负载均衡的控制界面。

image.png

可以通过此将控制台的界面拉取的宽一点,同时回到操作手册,根据操作手册,需要创建监听,在创建监听之前,看服务器组。

image.png

可以看到系统已经创建完毕所需要的服务器组。编辑后端服务器点进来,可以看到所需要的两台后端服务器已经添加。

image.png

在服务器组中,进行监听的创建。点击实例可以通过创建监听。

image.png 也可以通过ALB的实例进入,在监听页点击创建监听。

image.png

image.png

选择监听协议为HTTP,监听端口为80端口,监听名称可以不写,高级配置,保持默认。点击下一步,在选择服务器,选择刚刚系统创建的服务器组,可以看到后端的服务器在是能够查看到。

image.png

image.png

点击下一步,对配置审核,没有问题之后点击提交,点击“我知道了”,监听创建成功。

 

二、验证第一台ets是否有公网能力

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

image.png

找到云产品资源滚动条向上,找到云服务器ECS 01。点击管理,同时回到操作手册。由于是系统创建的云服务器,所以没有设置密码,第一次使用需要点重置密码。设置密码之后,点击确认修改。

image.png

修改成功后,点击关闭,远程连接,点击立即登录。

image.png

image.png

image.png

输入刚刚设置的密码,登录ecs系统内部。

回到操作手册,复制命令,复制第三点的命令来测试ecs是否有公网能力

image.png

image.png

发现适合阿里云 .com域名能够互通,说明ecs有公网能力,按CTRL c结束。

回到操作手册,点击下一页。这时,需要为第一排云服务器ecs配置环境,复制1.1的命令为第一排ecs安装jdk。

image.png

回到操作手册,复制1.2的命令,验证在GDP的默认安装目录是否已经下载需要用到的JDK软件,可以看到已经有了,说明已经下载成功。

image.png

image.png

回到操作手册,复制1.3.1的命令,修改配置文件。

image.png

按键盘上的大写的字母G来到最后一行,按I进入插入模式之后,另起一行。

image.png

在操作手册当中复制1.3.2的代码粘贴到ecs系统内部的配置文件,

image.png

image.png

粘贴成功之后,按ESC键退出插入模式,再按“:”输入Wq保存并退出。回到命令终端。

image.png

复制1.4的命令,刷新配置文件,没有报错,说明配置成功。

image.png

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

image.png

可以看到JDK的版本,说明JDK是配置成功。下载maven,复制2.1的命令。

image.png

回到操作手册,复制2.2的命令。

image.png

解压maven并且移动到指定的目录,回车,执行移动命令,

image.png

在操作手册复制2.2下面的第二个命令来验证是否解压并且移动成功,可以看到目录下面有内容说明移动成功。

image.png

复制2.3的命令创建maven仓库文件夹。

image.png

复制2.4的命令。

image.png

编辑settings配置文件。经过配置文件后,由于需要修改的标签对在54行,可以按54和大写的字母G来到54行的位置。

image.png

可以在右边看到是54行,需要修改的是localrepository标签对,此时他在注释当中,所以不会被系统识别,需要将它移出注释,将光标定位到54行。输入法调成英文状态,连按两次小写的字母d,

image.png

将光标上移两行,还英文输入法状态下,按小写的字母p,这样将localrepository这一行标签队移出注释,它会生效。现在将光标移动到localrepository标签对中,删除原本的路径。在操作手册当中复制需要修改的maven的仓库文件夹的路径。

image.png

选择粘贴,修改本地仓库所在的位置。

image.png

需要去指定maven所下载镜像的镜像位置,先来到2.6,首先要先复制mirrorS标签对的内容。

image.png

回到配置文件中将鼠标下滚,大概到159行,原本的仓库位置,现将它删掉,删除的方法可以一起删多行,方法是在插入模式按ESC,没有插入“insert”单词,说明已经退出插入模式。

image.png

此时要一次性删除7行,将光标定位在之后按键盘上的7,按两次小写的字母dd,这时将这7行一起删除。

要做的将刚刚复制的粘贴进来,注意粘贴到“mirrorS”标签对里面,

image.png

现在需要将光标上移一行,按字母I进到插入模式之后,另起一行在粘贴。

image.png

注意粘贴的是“mirrorS”标签对里面。

image.png

配置完成按ESC退出插入模式,按冒号输入wq保存并退出,回到操作手册。

复制2.8.1的命令。

image.png

按字母I进到插入模式,另起一行。

image.png

image.png

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

image.png

复制2.9的命令,刷新配置文件。

image.png

复制2.10的命令验证,检验maven是否安装成功,看到maven版本说明安装成功。

image.png image.png

复制3.1的命令。下载node,下载完成之后回到操作手册。

image.png

 

复制3.2的命令,创建node的安装目录。

image.png

复制3.3的命令,将node解压到创建的目录当中。

image.png

image.png

复制3.4的命令验证是否解压过去。看到有node说明解压成功。

image.png

复制3.5的命令,创建链接。回车,执行。

image.png

image.png

复制3.6.1的命令,编辑配置文件。点击“I”进到插入模式,另起一行。

image.png image.png

复制3.6.2的代码粘贴到尾部,完成之后按ESC退出插入模式,按冒号输入wq保存并退出。

image.png

复制3.7的命令,刷新配置文件。

image.png

image.png

复制3.8的命令,检查node版本。可以看到node版本自带的npm命令说明安装配置成功,在操作手册点击下一页进行到下一步。

 

三、云数据库rds配置

首先点到云资源产品,找到云数据库rds点击管理,同时回到操作手册。

image.png

第一步需要为数据库创建一个账号,在rds的控制台,找到账号管理,点击创建账号,输入数据库账号,账号类型为高权限账号,为账号设置密码。输入完成后点击确定来创建账号。

image.png

根据手册,进行数据库的创建,点击数据库创建在再点击创建数据库。数据库的名称,统一的输入 ry字符,默认的utf8点击创建。创建成功之后,需要将ecs内容IP加到数据库的白名单当中。

image.png

image.png

image.png

点白名单与安全组。点击添加白名单分组。点击加入ecs内网ip,为分组取一个名称,选中ecs,将它添加到右边,点击确定,此时需要收一个验证码,将验证码输入之后点击确定收取验证码之后,在白名单分组,可看到已经将两台ecs的IP地址加到分组里面。

image.png

复制2.1的命令。为ecs安装git。

image.png

image.png

复制2.2的命令,查看git版本,说明成功。

image.png

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

image.png

image.png

可以看到sql文件夹,点进去,里面有两个sql的文件,若依项目所有需要用到的数据库的数据,需要将数据导入到云数据库rds当中,所以界面先保留,回到操作手册。

image.png

复制3.2的命令,验证若依是否在系统下载成功。可以看到若依的文件以及文件夹,说明已经下载。

找到数据库连接池文件。

image.png

image.png

复制4.2的命令,可以看到数据库连接池文件,可以通过cat命令来看数据库连接时文件内容。

image.png

image.png

复制4.3的命令,鼠标往上滚动,在主库数据源框选起来的地方待会需要修改。首先需要修改的第一点是localhost,将此地址修改为云数据库rds的地址,端口号默认不变,ry由于刚刚创建的数据库的名称也叫ry,所以不需要改动,如果刚刚创建的数据库名称不叫ry,需要跟刚刚创建的数据库名称一致。用户名和密码,刚刚创建的用户名叫rut,所以不用修改。Password是密码,需要修改成在云数据库rds当中创建的高权限账号的密码,查看完成之后,回到操作手册进行修改。

image.png

image.png

image.png

image.png

 

复制5.1的命令来到系统里面,按control  l清屏,粘贴复制的命令,进到数据库连接池文件,对localhost修改,光标保留。

image.png

回到操作手册,找到数据库连接,找到rds数据库的内网地址,复制粘贴到原本localhost所在位置。输入完成之后按ESC退出插入模式,输入冒号,输入wq保存并退出。若依的数据库连接池修改完毕,回到操作手册。

image.png

根据操作手册,需要将若依的数据库的数据导入到rds,点击数据库管理,点击登录数据库。输入用户名和密码。

image.png

登录成功后,左侧点数据库实例找到创建的数据库Ry,双击,需要将若依等数据库的SQL语法复制到白框执行,让它创建所需要的数据库以及表。

image.png

来到若依的官网,找到第一个SQL文件,点一键复制,复制成功后回到数据库界面,粘贴,把最后一行的commit删掉,点击执行。

image.png

image.png

出现变更确认,点击直接执行。执行完成之后,进行对第二个SQL文件的语法导入,回到若依的官网,点SQL回到上一层,找到最后一个SQL文件,点一键复制,复制成功后回到数据库。

image.png

在数据库的控制台点击+,将新复制的SQL语法粘贴到此,不需要做任何的修改删除,直接点执行。在变更确认,点直接执行。成功后点刷新,可以看到许多通过语法生成所需要的所有的数据表。返回操作手册进行下一个操作。

image.png

复制7.1的命令,在系统内部粘贴进到若依的目录当中。

image.png

image.png

复制7.2的命令。对若依项目进行编译,并且打成jar包,让它直接运行,等待四五分钟以后看到构建成功,说明已经编译打包成功。对第二台ecs进行操作,第二台ecs操作跟第一台步骤相同,要注意关于比如数据库rds的操作不需要再重复操作,

验证打包好的jar包存在的位置。

image.png

image.png

复制7.2下面的第二个命令来到第一台ets的控台粘贴,可以看到红色若依打包之后的一个jar包,可以直接来运行它。

image.png

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

image.png

第二台ECS已经是构建成功的状态运行,可以看到出现的[]表示有任务已经创建。

image.png

可通过7.4的命令jobs复制之后来验证是否有一个正在running若依程序,经验证发现存在,第一台ecs也一样的通过命令来验证。两台ecs都同时运行若依这一个项目,可以来验证高可用。

在验证之前,也可看若依的运行日志。

image.png

image.png

复制7.5的命令。先在第一台ecs粘贴,可以看到第一台ecs当中显示,若依启动成功,再来到第二台ecs粘贴,可以看到第二台ecs的日志当中也显示,若依启动成功,来进行高可用的验证。

回到操作手册,找到ALB负载均衡,点击实例,在实例可看到ALB负载均衡有一个DNS名称,复制DNS名称到浏览器当中进行访问。

image.png

可观察现在已经成功访问到若依网站,并且可以进行一个验证码的刷新。验证码只要可以刷新,说明跟数据库的交互是没有问题的。输入验证码之后,点击登录,登录进来。他提醒你不是初始密码,请你选请修改密码,暂时不修改,整体的项目已经搭建完毕。此时是通过两台ecs同时运行,若依项目通过负载均衡作为统一的入口来进行访问的,接下来模拟其中一台ets服务器如果宕机,程序是否还能正常运行。

回到操作手册,找到语音服务器,将关掉远程连接的标签,点实例,可以在控制台看到现在两台ecs都处于运行中,随便关机,关掉一台。

image.png

由于这一台ecs已经关掉,该ecs网页可以删去。

image.png

回到操作手册,在点刷新,可以看到第二台ecs已经被停止,目前只有一台服务器正在运行当中,再来试着访问若依是否还能成功,回到ALB负载均衡的控制台,再次复制DNS名称,可以另外的起一个标签,粘贴回车,发现还是能够正常的把握,之所以没有让登陆,是因为刚刚已经登陆过,先点取消,不修改密码,可看到能够正常的进行登录的,说明高可用架构已经是验证成功。

以上是本次分享的全部内容。

 

相关实践学习
借助OSS搭建在线教育视频课程分享网站
本教程介绍如何基于云服务器ECS和对象存储OSS,搭建一个在线教育视频课程分享网站。
7天玩转云服务器
云服务器ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,可降低 IT 成本,提升运维效率。本课程手把手带你了解ECS、掌握基本操作、动手实操快照管理、镜像管理等。了解产品详情: https://www.aliyun.com/product/ecs
目录
打赏
0
3
2
0
940
分享
相关文章
构建高性能图像处理Web应用:Next.js与TailwindCSS实践
本文分享了构建在线图像黑白转换工具的技术实践,涵盖技术栈选择、架构设计与性能优化。项目采用Next.js提供优秀的SSR性能和SEO支持,TailwindCSS加速UI开发,WebAssembly实现高性能图像处理算法。通过渐进式处理、WebWorker隔离及内存管理等策略,解决大图像处理性能瓶颈,并确保跨浏览器兼容性和移动设备优化。实际应用案例展示了其即时处理、高质量输出和客户端隐私保护等特点。未来计划引入WebGPU加速、AI增强等功能,进一步提升用户体验。此技术栈为Web图像处理应用提供了高效可行的解决方案。
极氪汽车云原生架构落地实践
随着极氪数字业务的飞速发展,背后的 IT 技术也在不断更新迭代。极氪极为重视客户对服务的体验,并将系统稳定性、业务功能的迭代效率、问题的快速定位和解决视为构建核心竞争力的基石。
Linux多节点多硬盘部署MinIO:分布式MinIO集群部署指南搭建高可用架构实践
通过以上步骤,已成功基于已有的 MinIO 服务,扩展为一个 MinIO 集群。该集群具有高可用性和容错性,适合生产环境使用。如果有任何问题,请检查日志或参考MinIO 官方文档。作者联系方式vx:2743642415。
617 57
一文带你从入门到实战全面掌握RocketMQ核心概念、架构部署、实践应用和高级特性
本文详细介绍了分布式消息中间件RocketMQ的核心概念、部署方式及使用方法。RocketMQ由阿里研发并开源,具有高性能、高可靠性和分布式特性,广泛应用于金融、互联网等领域。文章从环境搭建到消息类型的实战(普通消息、延迟消息、顺序消息和事务消息)进行了全面解析,并对比了三种消费者类型(PushConsumer、SimpleConsumer和PullConsumer)的特点与适用场景。最后总结了使用RocketMQ时的关键注意事项,如Topic和Tag的设计、监控告警的重要性以及性能与可靠性的平衡。通过学习本文,读者可掌握RocketMQ的使用精髓并灵活应用于实际项目中。
633 7
 一文带你从入门到实战全面掌握RocketMQ核心概念、架构部署、实践应用和高级特性
Go语言Web开发框架实践:路由、中间件、参数校验
Gin框架以其极简风格、强大路由管理、灵活中间件机制及参数绑定校验系统著称。本文详解其核心功能:1) 路由管理,支持分组与路径参数;2) 中间件机制,实现全局与局部控制;3) 参数绑定,涵盖多种来源;4) 结构体绑定与字段校验,确保数据合法性;5) 自定义校验器扩展功能;6) 统一错误处理提升用户体验。Gin以清晰模块化、流程可控及自动化校验等优势,成为开发者的优选工具。
千万级数据秒级响应!碧桂园基于 EMR Serverless StarRocks 升级存算分离架构实践
碧桂园服务通过引入 EMR Serverless StarRocks 存算分离架构,解决了海量数据处理中的资源利用率低、并发能力不足等问题,显著降低了硬件和运维成本。实时查询性能提升8倍,查询出错率减少30倍,集群数据 SLA 达99.99%。此次技术升级不仅优化了用户体验,还结合AI打造了“一看”和“—问”智能场景助力精准决策与风险预测。
332 69
Go语言Web开发框架实践:使用 Gin 快速构建 Web 服务
Gin 是一个高效、轻量级的 Go 语言 Web 框架,支持中间件机制,非常适合开发 RESTful API。本文从安装到进阶技巧全面解析 Gin 的使用:快速入门示例(Hello Gin)、定义 RESTful 用户服务(增删改查接口实现),以及推荐实践如参数校验、中间件和路由分组等。通过对比标准库 `net/http`,Gin 提供更简洁灵活的开发体验。此外,还推荐了 GORM、Viper、Zap 等配合使用的工具库,助力高效开发。
阿里云SLB深度解析:从流量分发到架构优化的技术实践
本文深入探讨了阿里云负载均衡服务(SLB)的核心技术与应用场景,从流量分配到架构创新全面解析其价值。SLB不仅是简单的流量分发工具,更是支撑高并发、保障系统稳定性的智能中枢。文章涵盖四层与七层负载均衡原理、弹性伸缩引擎、智能DNS解析等核心技术,并结合电商大促、微服务灰度发布等实战场景提供实施指南。同时,针对性能调优与安全防护,分享连接复用优化、DDoS防御及零信任架构集成的实践经验,助力企业构建面向未来的弹性架构。
339 76
Web端实时通信技术SSE在携程机票业务中的实践应用
本文介绍了携程机票前端基于Server-Sent Events(SSE)实现服务端推送的企业级全链路通用技术解决方案。文章深入探讨了 SSE 技术在应用过程中包括方案对比、技术选型、链路层优化以及实际效果等多维度的技术细节,为类似使用场景提供普适性参考和借鉴。该方案设计目标是实现通用性,适用于各种网络架构和业务场景。
58 1
AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等