存量应用服务的访问方式 | 学习笔记

本文涉及的产品
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
服务治理 MSE Sentinel/OpenSergo,Agent数量 不受限
简介: 简介:快速学习存量应用服务的访问方式

开发者学堂课程【云开发 Web 应用训练营:存量应用服务的访问方式】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址:https://developer.aliyun.com/learning/course/911/detail/14417


存量应用服务的访问方式


目录:

一、网络拓扑示意图:

二、存量应用互联互通:

三、Internet 数据库接口(IDC)

四、ActiveX 数据对象(ADO)

五、远程数据服务(RDS)


一、网络拓扑示意图:

image.png

二、存量应用互联互通:

image.png

1. 微服务引擎 MSE 有三种引擎类型:ZooKeeper,Nacos, Eureka

2.数据库配置:

h2 数据库配置 spring.datasource.platform=h2

spring.datasource.driver-clas5-name-org.h2.Driver spring.datasource.schema=classpath:db/schema.sql spring.datasource.dataaclasspath:db/data:5qL spring.datasource.url=jdbc:h2:~/test spring.datasource,usernamensa spring.datasource.password=sa

spring.h2.console.enabled=true

spring.h2.console.path=/h2-console

spring.h2.console.settings.web-aLlow-othersmtrue spring.h2.console.settings.trace=false

@verridepublic void complete(Long 1d) {WrappereTaskEntitywrapper.new QueryWrappereToskEntity>().eq(TaskEntity.FIELD Io,id);TaskEntityobj.taskMapper.selectone(wrapper);if (obj . null)return;

}

3. 任务管理器-微服务端(by SAE)计算服务方式只能使用 FC , ASK 来部署

4.SAE 和 ASK 的区别:SAE 更加面向应用而 ASK 更加面向与容器

5、创建一个微服务端:

image.png

6. 应用的部署,即应用升级

传统的应用部署过程可以分为以下几个步骤:

1首先创建新版本的实例;

2然后等待实例启动、业务进程 ready 后,接入流量,即创建对应 SLB 后端;

3最后将老版本实例从 SLB 后端摘除并销毁

7. 创建 mse 实例的引擎类型是:nacos

8.mse 空间 id 一般是为文件名可以自己命名

9.函数计算和sae这两种web布局方式的优缺点:函数计算节约成本使用 缺点使用调量计费,sae 更适用于有稳定流量后使用因为sae按计费有稳定流量后有可能会比函数计算便宜

10.关于构建是在流水线中进行,之后会导入进镜像仓库,每一个应有都有一个镜像仓库都是相互隔离的

11 .fc 的优点是部署时基本免费只有调用时调用量大时开始计费(存在一定免费额度)


三.Internet 数据库接口(IDC)

IDC 是一个传统的数据库查询工具,用来定义和执行数据库查询的 SQL 命令,并向浏览器返回一个指定数据格式的页面。

使用 IDC 访问数据库最大的特点是简单,几乎不需要编程就能实现对数据库的访问。

IDC 使用两种文件来控制如何访问数据库以及如何创建返回的Web页面。

这些文件分别是 IDC (.idc)文件和 HTML 扩展(.htx)文件。.idc 文件必须包括 ODBC 数据源(Datasource)、HTML 扩展文件的文件名(Template)以及要执行的 SQL 语句(SQLStatement)。此外还有许多可选字段,可以根据需要选用。

.htx 文件是带有用<%%>或括起来的附加标记的 HTML 文档,IDC 用这些标记将动态数据添加到文档中。

在.htx 文件中有六个关键字(begindetail、enddetail、if、else、endif和"%z")用来控制数据库中的数据怎样和.htx 文件中 HTML 格式进行合并。数据库列名说明HTML 文档中什么数据被返回。

下面是 IDC 应用的简单示例,这个例子是一个虚拟水果店的库存量查询。

.idc 文件: Datasource: Kucun

Template: IDCReslt.htx

SQLStatement: SELECT * FROM 库存表

.htx文件:水果店库存量查询结果

<%begindetail%>

<%if CurrentRecord EQ 0 %>

<%endif%>

<%enddetail%> 

水果店库存量查询结果

序号 商品名称 库存量 进价

单位 进货日期
<%ID%> <%商品名称%> <%库存量

%>

<%进价%> <%单位%> <%进货日期%>

注意:<%begindetail%>和<%enddetail%>之间的部分划定了界线,决定数据库中的哪些行将作为返回数据并显示在文档中。查询返回的列被<%%>包围,就象例子中的<%商品名称%> 和<%库存量%>等。

要执行 IDC 查询,通常的做法是在HTML文件中嵌入一个.idc文件的连接。

例如,下面的 HTML 语句向 Web 服务器发出了请求,要求执行库存量查询当Web服务器接到这个请求后,就调用 Httpodbc.dll(IDC),与一定的数据源相连并把 SQL 命令传给数据库。

当 SQL 语句被执行后,IDC 把返回的数据融入到.htx 文件中。IDC 再把这个文档返回给 Web 服务器,Web 服务器再返回给浏览器。


四、ActiveX 数据对象(ADO)

与 IDC 不同,用 ADO 访问数据库更类似于编写数据库应用程序,ADO 把绝大部分的数据库操作封装在七个对象中,在ASP页面中编程调用这些对象执行相应的数据库操作。

ADO 是 ASP 技术的核心之一,它集中体现了 ASP 技术丰富而灵活的数据库访问功能。ADO 建立了基于 Web 方式访问数据库的脚本编写模型,它不仅支持任何大型数据库的核心功能,而且支持许多数据库所专有的特性。ADO 使用本机数据源,通过 ODBC 访问数据库。这些数据库可以是关系型数据库、文本型数据库、层次型数据库或者任何支持 ODBC 的数据库。ADO 的主要优点是易用、高速、占用内存和磁盘空间少,所以非常适合于作为服务器端的数据库访问技术。

相对于访问数据库的 CGI 程序而言,它是多线程的,在出现大量并发请求时,也同样可以保持服务器的运行效率,并且通过连接池(Connection Pool)技术以及对数据库连接资源的完全控制,提供与远程数据库的高效连接与访问,同时它还支持事务处理

(Transaction),以开发高效率、高可靠性的数据库应用程序。

正是因为使用 ADO 需要编写脚本程序,所以 ADO 能够实现更复杂、更灵活的数据库访问逻辑。目前,ADO 包括Command、Connection、Recordset 等七个对象和一个动态的 Properties 集合,绝大部分的数据库访问任务都可以通过它们的组合来完成。

一般使用 ADO 访问数据库的ASP脚本程序应该使用 Connection 对象建立并管理与远程数据库的连接;使用 Command 对象提供灵活的查询;而使用 Recordset 对象访问数据库查询所返回的结果。这三者是ADO中最基本也最核心的对象。下面的例子解释了如何使用这三个对象访问数据库。

<% Dim strDSN, strSQL

'定义用到的变量

Dim cn, rs, cm , ObjName, ObjKucun, ObjPrice, ObjUnit, ObjDate

strDSN = "FILEDSN=Kucun.dsn"

'建立DSN字符串

Set cn = Server.CreateObject("ADODB.Connection")

'创建Connection对象的一个实例

cn.Open strDSN

'与strDSN指定的数据源建立连接

Set cm= Server.CreateObject("ADODB.Command")

'创建Command对象的一个实例

Set cm.ActiveConnection = cn

'指定cm使用cn所建立的数据库连接

cm.CommandText = "INSERT INTO 库存表(商品名称,库存量,进价,单位,进

货日期) VALUES (?,?,?,?,?)"

'预定义带参数的SQL查询命令

cm.Prepared = True

'通知数据源预处理该查询命令

cm.Parameters.Append cm.CreateParameter("商品名称",200, ,255 )

'定义查询参数

cm.Parameters.Append cm.CreateParameter("库存量",200, ,255 )

cm.Parameters.Append cm.CreateParameter("进价",200, ,255 )

cm.Parameters.Append cm.CreateParameter("单位",200, ,255 )

cm.Parameters.Append cm.CreateParameter("进货日期",200, ,255 )

cm("商品名称") = "葡萄"

'给参数赋值

cm("库存量") = 400

cm("进价") = 0.8

cm("单位") = "斤"

cm("进货日期") = #95-6-12#

cm.Execute

'按照给定的参数值执行预定义的SQL查询命令

cm("商品名称") = "柿子"

cm("库存量") = 300

cm("进价") = 0.4

cm("单位") = "斤"

cm("进货日期") = #95-6-11#

cm.Execute

Set rs= Server.CreateObject("ADODB.Recordset")

'创建Recordset对象的一个实例

strSQL = "SELECT * FROM 库存表"

'建立查询命令字符串

rs.Open strSQL, cn

'使用cn的数据库连接执行strSQL定义的查询命令

Set objName = rs("商品名称")

'将返回的列保存在变量中

Set objKucun = rs("库存量")

Set objPrice = rs("进价")

Set objUnit = rs("单位")

Set objDate = rs("进货日期") %>

'使用循环语句将查询结果以表格形式输出

<% Do Until rs.EOF %>

<% rs.MoveNext %>

% Loop %>

水果店库存量查询结果

<% Response.write ObjName %> <% Response.write

 

ObjKucun %>

<% Response.write ObjPrice %> <%

 

Response.write ObjUnit %>

<% Response.write ObjDate

 

%>

在上面的例子中,首先使用 Connection 对象与要操作的数据源建立连接;然后使用 Command 对象建立带五个参数的预定义查询命令(向库存表中添加一次采购记录),并两次以不同的参数值(葡萄和柿子)执行该查询命令;

最后使用 Recordset 对象查询库存表中所有商品的库存信息,并以表格的形式输出。如果对 VB 的数据库编程比较熟悉,则会发现 ADO 与 VB 中的远程数据对象(RDO)比较相似。

与 IDC 一样,运行该数据库访问脚本的通常做法是在 HTML 文件中嵌入一个.asp

文件的连接。例如,下面的 HTML 语句向Web服务器发出了请求,要求执行adotest.asp 文件。

库存量查询


五、远程数据服务(RDS)

RDS 是 IIS 4.0 中新提出的概念,它是由 ASP 中原来的 Advanced Data Connector(ADC)发展而来的。在 IIS 4.0 中,RDS 与 ADO 集成到一起,使用同样的编程模型,提供访问远程数据库的功能。

ADO 虽然能够提供非常强大的数据库访问功能,但是它不支持数据远程操作(Data Remoting)。换句话说,ADO 只能执行查询并返回数据库查询的结果,这种结果是静态的,服务器上的数据库与客户端看到的数据没有“活的连接关系”。假如,客户端需要修改数据库中的数据,就必须构造修改数据的 SQL 语句,执行相应的查询动作。

而 RDS 就比 ADO 更进一步,它支持数据远程操作。它不仅能执行查询并返回数据库查询结果,而且这种结果是“动态的”,服务器上的数据库与客户端看到的数据保持“活的连接关系”。即把服务器端的数据搬到客户端,在客户端修改数据后,调用一个数据库更新命令,就可以将客户端对数据的修改写回数据库,就象使用本地数据库一样。

由于 RDS 与 ADO 集成,RDS 的底层是调用 ADO 来完成的,所以也可以将 RDS 理解为 ADO 的 RDS ,即 ActiveX 数据对象的远程数据服务。

所以 RDS 同样具有 ADO 的易用性,区别仅在于 RDS 需要与数据绑定控件一同使用,比如 Sheridan 的 ActiveX DataBound Grid 控件。正如 ADO 类似于 VB 中的 RDO 一样,RDS 也类似于 VB 中的远程数据控件(RDC)。下面是使用 RDS 提供客户端数据远程操作的例子:
水果店库存查询结果  
水果商店库存表

CLASSID="CLSID:AC05DC80-7DF1-11d0-839E-00A024A94B3A"CODEBASE="http://localhost/MSADC/ssdatb32.cab" ID="GRID"DATASRC="#ADC"WIDTH=600 HEIGHT=150>

ID=ADC HEIGHT=1 WIDTH=1>SUB Window_OnLoadServer.Value = "http://localhost"Connect.Value = "DSN=KUCUN"Query.Value = "SELECT * FROM 库存表"End SubSUB Run_OnClick ADC.Server = Server.ValueADC.Connect = Connect.ValueADC.SQL = Query.ValueADC.RefreshEnd SubSUB MoveFirst_OnClickADC.Recordset.MoveFirstEND SUBSUB MoveNext_OnClick On Error Resume NextADC.Recordset.MoveNextIF ERR.Number <> 0 THENADC.Recordset.MoveLastEND IFEND SUBSUB Submit_OnClickADC.SubmitChangesADC.RefreshEnd SubSUB Cancel_OnClickADC.CancelUpdateADC.RefreshEnd Sub

所以,RDS 在 ADO 的基础上通过绑定的数据显示和操作控件,提供给客户端更强的数据表现力和远程数据操纵功能。可以说 RDS 是目前基于 Web 的最好的远程数据库访问方式。以上就是 ASP 访问数据库的三种方式,它们三者各有各的特色。IDC 十分简单,使用 .idc 文件和 .htx 文件分别完成数据库的访问与输出任务,但是使用起来不灵活。

服务器:
数据库连接:
查询命令:

ADO 是 ASP 中推荐使用的方式,它功能强大,使用方便,是 ASP 的核心技术之一,但是它在提供用户远程操作数据库的功能时,比较复杂,实现起来有一定的难度。

而 RDS 是基于 ADO 的,并提供远程操作数据库的强大工具。所以在需要提供高性能、高可靠性的远程数据操作功能时,RDS 是更为理想的选择。

相关实践学习
【文生图】一键部署Stable Diffusion基于函数计算
本实验教你如何在函数计算FC上从零开始部署Stable Diffusion来进行AI绘画创作,开启AIGC盲盒。函数计算提供一定的免费额度供用户使用。本实验答疑钉钉群:29290019867
建立 Serverless 思维
本课程包括: Serverless 应用引擎的概念, 为开发者带来的实际价值, 以及让您了解常见的 Serverless 架构模式
相关文章
|
3月前
|
云安全 弹性计算 安全
云上攻防:实例元数据、控制台接管
随着企业上云趋势增强,云安全成为焦点。云服务提供高效的数据存储和计算能力,但也带来数据保护和访问控制的新挑战。攻击者常利用云服务漏洞,威胁企业数据安全。本文探讨云上攻防关键领域,如元数据泄露、AKSK安全、控制台接管等,提出防御措施,帮助企业应对云安全风险。
102 2
云上攻防:实例元数据、控制台接管
|
5月前
|
关系型数据库 MySQL 开发工具
【Azure 应用服务】备份网站时由于文件太大了,导致应用服务备份失败。如何解决?
【Azure 应用服务】备份网站时由于文件太大了,导致应用服务备份失败。如何解决?
|
6月前
|
缓存 Kubernetes Serverless
阿里云云效操作报错合集之AppStack资源池添加外部k8s集群时报错,该如何解决
本合集将整理呈现用户在使用过程中遇到的报错及其对应的解决办法,包括但不限于账户权限设置错误、项目配置不正确、代码提交冲突、构建任务执行失败、测试环境异常、需求流转阻塞等问题。阿里云云效是一站式企业级研发协同和DevOps平台,为企业提供从需求规划、开发、测试、发布到运维、运营的全流程端到端服务和工具支撑,致力于提升企业的研发效能和创新能力。
|
7月前
|
运维 Serverless API
Serverless 应用引擎产品使用合集之在创建或修改熔断规则时,没看到地方可以选行,是什么原因
阿里云Serverless 应用引擎(SAE)提供了完整的微服务应用生命周期管理能力,包括应用部署、服务治理、开发运维、资源管理等功能,并通过扩展功能支持多环境管理、API Gateway、事件驱动等高级应用场景,帮助企业快速构建、部署、运维和扩展微服务架构,实现Serverless化的应用部署与运维模式。以下是对SAE产品使用合集的概述,包括应用管理、服务治理、开发运维、资源管理等方面。
|
7月前
|
运维 安全 数据管理
数据管理DMS产品使用合集之并发限制是否可以临时增加
阿里云数据管理DMS提供了全面的数据管理、数据库运维、数据安全、数据迁移与同步等功能,助力企业高效、安全地进行数据库管理和运维工作。以下是DMS产品使用合集的详细介绍。
59 0
|
8月前
|
运维 Serverless API
Serverless 应用引擎产品使用之在阿里函数计算中,“允许函数默认网卡访问公网” 参数配置如何解决
阿里云Serverless 应用引擎(SAE)提供了完整的微服务应用生命周期管理能力,包括应用部署、服务治理、开发运维、资源管理等功能,并通过扩展功能支持多环境管理、API Gateway、事件驱动等高级应用场景,帮助企业快速构建、部署、运维和扩展微服务架构,实现Serverless化的应用部署与运维模式。以下是对SAE产品使用合集的概述,包括应用管理、服务治理、开发运维、资源管理等方面。
|
8月前
|
弹性计算 运维 Serverless
Serverless 应用引擎产品使用之在阿里函数计算中,使数据库和阿里云函数计算位于同一个内网中如何解决
阿里云Serverless 应用引擎(SAE)提供了完整的微服务应用生命周期管理能力,包括应用部署、服务治理、开发运维、资源管理等功能,并通过扩展功能支持多环境管理、API Gateway、事件驱动等高级应用场景,帮助企业快速构建、部署、运维和扩展微服务架构,实现Serverless化的应用部署与运维模式。以下是对SAE产品使用合集的概述,包括应用管理、服务治理、开发运维、资源管理等方面。
1649 0
Serverless 应用引擎产品使用之在阿里函数计算中,使数据库和阿里云函数计算位于同一个内网中如何解决
|
8月前
|
监控 NoSQL 关系型数据库
Serverless 应用引擎常见问题之注册中心业务模块掉线了如何解决
Serverless 应用引擎(Serverless Application Engine, SAE)是一种完全托管的应用平台,它允许开发者无需管理服务器即可构建和部署应用。以下是Serverless 应用引擎使用过程中的一些常见问题及其答案的汇总:
|
8月前
|
SQL 分布式计算 DataWorks
DataWorks常见问题之买多了一台独立集成资源组没找到释放入口如何解决
DataWorks是阿里云提供的一站式大数据开发与管理平台,支持数据集成、数据开发、数据治理等功能;在本汇总中,我们梳理了DataWorks产品在使用过程中经常遇到的问题及解答,以助用户在数据处理和分析工作中提高效率,降低难度。
|
8月前
|
监控 NoSQL 关系型数据库
Serverless 应用引擎常见问题之现象上是注册中心业务模块掉线了如何解决
Serverless 应用引擎(Serverless Application Engine, SAE)是一种完全托管的应用平台,它允许开发者无需管理服务器即可构建和部署应用。以下是Serverless 应用引擎使用过程中的一些常见问题及其答案的汇总: