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

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

开发者学堂课程【云开发 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 架构模式
相关文章
|
4月前
|
消息中间件 存储 算法
联通实时计算平台问题之亿级标签关联实现且不依赖外部系统要如何操作
联通实时计算平台问题之亿级标签关联实现且不依赖外部系统要如何操作
|
6月前
|
Prometheus 运维 监控
解锁分布式云多集群统一监控的云上最佳实践
为应对分布式云多集群监控的挑战,阿里云可观测监控 Prometheus 版结合 ACK One,凭借高效纳管与全局监控方案有效破解了用户在该场景的监控运维痛点,为日益增长的业务需求提供了一站式、高效、统一的监控解决方案,实现成本与运维效率的双重优化。助力企业的数字化转型与业务快速增长,在复杂多变的云原生时代中航行,提供了一个强有力的罗盘与风帆。
55843 27
|
6月前
|
消息中间件 物联网 数据处理
TDengine 数据接入功能支持 Wonderware 了,不需一行代码完成迁移工作
TDengine 3.2.3.0 引入了 Wonderware Historian (AVEVA Historian) 连接器,简化了数据迁移至 TDengine 的过程,增强时序数据管理与分析。此连接器解决了传统实时数据库扩展性问题,提供成本效益高、国产化的替代方案。TDengine 已支持多种数据源集成,如 OPC、Kafka、MQTT等,打造统一数据平台,助力企业数字化转型。作为高性能时序数据库,TDengine 提供云原生解决方案,减少系统复杂度,加速业务创新。
71 6
|
7月前
|
监控 NoSQL 关系型数据库
Serverless 应用引擎常见问题之注册中心业务模块掉线了如何解决
Serverless 应用引擎(Serverless Application Engine, SAE)是一种完全托管的应用平台,它允许开发者无需管理服务器即可构建和部署应用。以下是Serverless 应用引擎使用过程中的一些常见问题及其答案的汇总:
|
7月前
|
监控 NoSQL 关系型数据库
Serverless 应用引擎常见问题之现象上是注册中心业务模块掉线了如何解决
Serverless 应用引擎(Serverless Application Engine, SAE)是一种完全托管的应用平台,它允许开发者无需管理服务器即可构建和部署应用。以下是Serverless 应用引擎使用过程中的一些常见问题及其答案的汇总:
|
存储 分布式计算 关系型数据库
Dataphin 提供公共云在线服务和线下独立部署(授权/订阅)两种服务模式。
Dataphin 提供公共云在线服务和线下独立部署(授权/订阅)两种服务模式。
261 2
|
容器
《运用新技术解决有状态应用的冷热迁移挑战 迁移策略+新容器运行时》电子版地址
运用新技术解决有状态应用的冷热迁移挑战 迁移策略+新容器运行时
96 0
《运用新技术解决有状态应用的冷热迁移挑战 迁移策略+新容器运行时》电子版地址
EMQ
|
SQL Rust 自然语言处理
新增客户端和集群部署工具、HStream Cloud 开放体验申请
云原生流数据库HStreamDB新增客户端和集群部署工具,内附HStream Cloud注册申请链接,欢迎提交获取首批体验资格。
EMQ
108 0
|
存储 缓存 固态存储
云存储网关的缓存最佳实践
前言 云存储网关支持通过传统的文件协议(SMB/NFS)来访问OSS Bucket里面的数据,并能够通过缓存技术将用户频繁访问的热点数据保留在网关侧的缓存盘里,从而提供给用户更好的访问体验。用户在使用阿里云云存储网关时,经常会碰到一些缓存相关的问题,比如在创建共享时如何选择缓存盘的容量和类型,比如缓存的数据淘汰策略是什么等。
2299 0
云存储网关的缓存最佳实践