如何部署 QSRV 管理 QVS 资源文件
QVS SRV 简称 QSRV,是独立 WebServer 进程运行,可单独部署 QSRV 管理 QVS 的资源文件,进行读取、上传、下载远程存储数据文件等操作。
安装集算器企业版
部署 QSRV,首先需要安装企业版集算器,里面包含完整的 QVS 项目。可在此基础上按如下步骤配置成 QSRV。
集算器企业版安装包下载地址:
http://www.raqsoft.com.cn/download/download-jsq
应用位于 [安装目录]\esProc\q-server\qvs 目录中。[安装目录]\esProc\lib 和 [安装目录]\esProc\q-server\webapps\qvs\WEB-INF\lib 目录中包含着 QSRV 服务器所需 jar 包。
根据 QSRV 访问的云存储类型,从 [安装目录]\esProc\q-extlib 中将对应云存储的第三方 jar 拷贝至 [安装目录]\esProc\q-server\webapps\qvs\WEB-INF\lib。
接下来我们以在 192.168.1.6 服务器部署 QSRV,管理云存储 S3 上的资源文件为例,让您快速了解 QSRV。
配置 QSRV 的 IP 地址和端口号
企业版集算器内置 tomcat 服务器,在【集算器安装目录】\esProc\q-server\conf\server.xml 文件中配置 IP 地址和端口号。
<?xml version="1.0" encoding="UTF-8"?>
<Server port="8041" shutdown="SHUTDOWN">
…
<Service name="Catalina">
<Connector port`="8090" protocol="HTTP/1.1"
connectionTimeout="0"
/>
<Engine name="Catalina" defaultHost="localhost">
…
<Host name="192.168.1.6" appBase="webapps"
unpackWARs="true" autoDeploy="false"
deployXML ="false" deployOnStartup ="false" >
<Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
prefix="localhost_access_log" suffix=".txt"
pattern="%h %l %u %t "%r" %s %b" />
<Context path="/qvs" docBase="qvs" reloadable="true" privileged="true"> </Context>
</Host>
</Engine>
</Service>
</Server>
修改远程配置信息
将独立部署的 QSRV 运行模式设置为 0(服务),并且设置用户的远程存储地址,用于管理远程存储数据文件。
配置文件:【集算器安装目录】/esProc/q-server/webapps/qvs/WEB-INF/home/qvsConfig.xml
<?xml version="1.0" encoding="UTF-8"?>
<qvs>
<runMode>0</runMode>
<locale language="en" country=""/>
<cacheSystem cachePath="cache" blockSize="1024" minFreeSpace="2" />
<verifies>
<verify code="demoqvs">
<store type="S3">
{"region":"us-east-2","accessKey":"AKLAVSPDUYZ7O7WTX3C2","secretKey":"6/5xYPO7a+9Po+IE1ySbmu9UB2hWIkWek1Sqn6E4","endPoint":"https://s3.us-east-2.amazonaws.com"}
</store>
</verify>
</verifies>
</qvs>
属性说明:
store:与远程存储相关的配置,用于读取远程存储数据文件。存储服务商的类别有(S3、GCS、nfs、azure、hdfs、Mount)。标签中的内容是 QSRV 的远程存储连接信息,上述示例中是 S3 用户的信息格式。需配置成用户自己的远程存储地址。
启动 QSRV
执行 [安装目录]\esProc\bin 中的 StartQVS.bat(linux 下为 StartQVS.sh),启动 QSRV 服务器。成功启动后界面如下:
执行脚本访问远程数据
启动企业版集算器设计器,执行脚本,对云存储中的 QVS 资源文件做上传、下载等操作。启动文件位于 [安装目录]\esProc\bin 中的 esproc.exe/startup.bat(linux 下为 startup.sh)。
A | B | |
1 | =Qconnect("http://192.168.1.6:8090/qvs":"demoqvs",30,300) | 执行 Qconnect(url:v, wt, it),连接指定 url 的 QSRV 服务器,验证串默认为 demoqvs,最长等待时间 30 秒,最长闲置时间 300 秒,连接后即可执行各种远程服务 |
2 | =Qdirectory("sln") | 用函数 Qdirectory(path) 查询指定路径下的所有文件名称列表 |
3 | =Qfile("sln/Employee.ctx") | 用函数 Qfile(fn) 读取指定文件,返回文件对象,可以继续执行操作,如在 A4 中将文件中数据导入为序表 |
4 | =A3.open().import@t() | |
5 | =Qload("sln/emp.ctx":[1,2,3]) | 用函数 Qload 上传 emp.ctx 文件组 / 组表文件 |
6 | =Qload(,"sln/emp.ctx":[1,2,3]) | 用函数 Qload 下载 emp.ctx 文件组 / 组表文件 |
上面例子中使用到的 Qconnect(),Qdirectory(),Qfile()和 Qload() 函数,是访问云存储所使用的函数,它们称为 Q 函数。QSRV 中支持的 Q 函数,除了上面介绍的,还有 Qmove(),Qenv() 和 Qlock() 等,如果需要更详细地了解,可阅读《函数参考》。
云平台特殊配置
Google Computer Engine
1,服务器类型:GCE,地址书写格式:
{“credentials”:“scudata-891de5fb1bc3.json”,“project”:“scudata”,“zone”:“us-west2-a”}
2,存储服务商类别:GCS,地址书写格式:
{“credentials”:"scudata-891de5fb1bc3.json"}
注:json 文件是注册 Google 账号时生成的, 文件内容是连接 Google cloud storage 的信息。如需使用 GCS 远程存储,则需要在云服务中部署 json 文件,支持绝对路径、相对路径。QVS 使用远程存储时,credentials 配置相对路径时相对 qvs\WEB-INF\home;QVA 使用远程存储时,credentials 配置相对路径时相对 qva\WEB-INF\home 目录。
Network File System
1,存储服务商类别:nfs,地址书写格式:
{“hostName”:“192.168.1.3”,“rootPath”:“/mnt/share” ,“bCacheEnable”:true }
bCacheEnable:启用缓存,缺省为 false 无缓存,仅支持私有模式
Microsoft Azure
1,存储服务商类别:azure,地址书写格式:
{“accountName”:“test1”,“accountKey”:“MSU9nLvFd+uasww8EtB45GzJ8eeg2FzFXhBb6lfaJ8l5kk0PVsgrc1KUyQN+tj3JyazSkutHuxKL+AStMuU3UA==”,“endPoint”:“core.windows.net”,“protocol”:“https”}
Hadoop Distributed File System
1,存储服务商类别:hdfs,地址书写格式:
{“urlName”:“hdfs://192.168.1.23:9000/”,“userName”:“root”, “rootPath”:“/hdfs”,“bCacheEnable”:true}
urlName/userName:hdfs url/ 用户名
rootPath:设置根目录,方便读取远程存储文件时使用相对路径
bCacheEnable:启用缓存,缺省为 false 无缓存,仅支持私有模式
Object Storage Service
1,存储服务商类别:oss,地址书写格式:
{“accessKey”:“LTII5tRgzS8Ns2arNpjU73Wt”,“secretKey”:“4dSAtbejF6arKpfJjUAxhO26JGaytM”,“endPoint”:“http://oss-cn-beijing.aliyuncs.com”}
Mount
1,存储服务类别:Mount,地址书写格式:
{“rootPath”:“/mnt”}
rootPath:设置根目录,读取远程存储文件时使用的路径
英文版