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

本文涉及的产品
云数据库 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 是更为理想的选择。

相关实践学习
基于函数计算一键部署掌上游戏机
本场景介绍如何使用阿里云计算服务命令快速搭建一个掌上游戏机。
建立 Serverless 思维
本课程包括: Serverless 应用引擎的概念, 为开发者带来的实际价值, 以及让您了解常见的 Serverless 架构模式
相关文章
|
7月前
|
运维 安全 API
统一接入API赋能开发者:自动高效、灵活编排的云产品日志采集方案
随着企业对网络安全和数据安全防护水平要求的逐步提升,企业管理对企业生产运维过程中所产生的日志数据,在留存处理、权限隔离、跨境合规、数据汇总等方面提出了更高阶的需求。为了满足大客户及一些国际化客户安全合规、简单快速地接入日志、使用日志、操作日志,我们提出了一种新的解决方案——“云产品统一接入API”。统一接入API主要针对阿里云云产品日志类型,以API的方式提供企业或组织用户快速上手,编排灵活的日志采集方案。
|
2月前
|
监控 NoSQL 关系型数据库
Serverless 应用引擎常见问题之现象上是注册中心业务模块掉线了如何解决
Serverless 应用引擎(Serverless Application Engine, SAE)是一种完全托管的应用平台,它允许开发者无需管理服务器即可构建和部署应用。以下是Serverless 应用引擎使用过程中的一些常见问题及其答案的汇总:
20 0
|
2月前
|
监控 NoSQL 关系型数据库
Serverless 应用引擎常见问题之注册中心业务模块掉线了如何解决
Serverless 应用引擎(Serverless Application Engine, SAE)是一种完全托管的应用平台,它允许开发者无需管理服务器即可构建和部署应用。以下是Serverless 应用引擎使用过程中的一些常见问题及其答案的汇总:
29 2
|
11月前
|
容器
阿里云最新产品手册——阿里云核心产品——分布式云容器平台ACK One——服务关联角色
阿里云最新产品手册——阿里云核心产品——分布式云容器平台ACK One——服务关联角色自制脑图
87 1
|
12月前
|
Prometheus 监控 Kubernetes
PrometheusOperator云原生监控:基于operator部署的资源内部链路分析
PrometheusOperator云原生监控:基于operator部署的资源内部链路分析
179 0
|
运维 API 数据安全/隐私保护
资源中心 - 助您轻松解决跨账号、跨产品、跨地域的资源搜索难题
资源中心为您提供跨账号、跨产品、跨地域的全局资源视图及资源搜索能力。
5394 0
资源中心 - 助您轻松解决跨账号、跨产品、跨地域的资源搜索难题
|
云安全 运维 安全
企业多账号环境下的安全资源统一管控最佳实践
多账号下云资源的安全统一管控
1116 1
企业多账号环境下的安全资源统一管控最佳实践
|
监控 弹性计算
将云资源导入部署平台进行系统基础指标监控
将云资源导入部署平台进行系统基础指标监控
380 0
将云资源导入部署平台进行系统基础指标监控
|
存储 弹性计算 运维
最佳实践丨构建云上私有池(虚拟IDC)的5种方案详解
云上私有池系列终篇终于来了,本文将重点介绍构建云上的私有池(虚拟IDC)的多种方案和各自的优缺点,并给出相关的性价比优化建议。
最佳实践丨构建云上私有池(虚拟IDC)的5种方案详解
|
弹性计算 资源调度 大数据
最佳实践丨三种典型场景下的云上虚拟IDC(私有池)选购指南
业务上云常态化,业务在云上资源的选购、弹性交付、自助化成为大趋势。不同行业的不同客户,业务发展阶段不一样,云上资源的成本投入在业务整体成本占比也不一样,最小化成本投入、最大化业务收益始终是不同客户间的共同目标。阿里云面向全行业的用户提供了丰富的云上算力产品服务和灵活多样的售卖模式,帮助用户云上精确的资源容量预估和精细的资源交付管理,非常有利于客户节约云上购买资源的成本。本文是云上私有池系列的第二篇,将集中介绍不同场景下私有池的选购指南。
最佳实践丨三种典型场景下的云上虚拟IDC(私有池)选购指南