开发者学堂课程【云开发 Web 应用训练营:存量应用服务的访问方式】学习笔记,与课程紧密联系,让用户快速学习知识。
课程地址:https://developer.aliyun.com/learning/course/911/detail/14417
存量应用服务的访问方式
目录:
一、网络拓扑示意图:
二、存量应用互联互通:
三、Internet 数据库接口(IDC)
四、ActiveX 数据对象(ADO)
五、远程数据服务(RDS)
一、网络拓扑示意图:
二、存量应用互联互通:
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
@
verride
public 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、创建一个微服务端:
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_OnLoad
Server.Value = "http://localhost"
Connect.Value = "DSN=KUCUN"
Query.Value = "SELECT * FROM 库存表"
End Sub
SUB Run_OnClick
ADC.Server = Server.Value
ADC.Connect = Connect.Value
ADC.SQL = Query.Value
ADC.Refresh
End Sub
SUB MoveFirst_OnClick
ADC.Recordset.MoveFirst
END SUB
SUB MoveNext_OnClick
On Error Resume Next
ADC.Recordset.MoveNext
IF ERR.Number <> 0 THEN
ADC.Recordset.MoveLast
END IF
END SUB
SUB Submit_OnClick
ADC.SubmitChanges
ADC.Refresh
End Sub
SUB Cancel_OnClick
ADC.CancelUpdate
ADC.Refresh
End Sub
所以,RDS 在 ADO 的基础上通过绑定的数据显示和操作控件,提供给客户端更强的数据表现力和远程数据操纵功能。可以说 RDS 是目前基于 Web 的最好的远程数据库访问方式。以上就是 ASP 访问数据库的三种方式,它们三者各有各的特色。IDC 十分简单,使用 .idc 文件和 .htx 文件分别完成数据库的访问与输出任务,但是使用起来不灵活。
服务器: | |
数据库连接: | |
查询命令: |
ADO 是 ASP 中推荐使用的方式,它功能强大,使用方便,是 ASP 的核心技术之一,但是它在提供用户远程操作数据库的功能时,比较复杂,实现起来有一定的难度。
而 RDS 是基于 ADO 的,并提供远程操作数据库的强大工具。所以在需要提供高性能、高可靠性的远程数据操作功能时,RDS 是更为理想的选择。