在完成领域空间信息服务的开发调试后,您可以通过如下步骤对服务进行打包及部署。
打包构建 jar,生成可执行程序
进入开发工程所在的工作目录 DSSE_SampleCode,运行命令生成 shade jar:
mvn clean package
该 jar 包含了领域空间信息微服务的相关逻辑以及依赖的第三方库。
扩展微服务镜像
开发工程 Package 目录下,Dockerfile 文件中定义了构建 Docker 镜像的完整步骤。执行如下代码,构建结果为 tag 为 iserver_extend_example:v1的 docker 镜像:
docker build --no-cache -f Dockerfile -t registry.cn-beijing.aliyuncs.com/<usersnamespace>/iserver_extend_example:v1 .
请注意,构建出的领域空间信息微服务 docker 镜像需至少包括:
- 基础镜像
- 服务应用程序:领域空间信息业务模块、地理空间引擎库、微服务运行环境、java 虚拟机
- 监控探针:prometheus 探针(监控 java 虚拟机)、sigar 探针(监控容器环境)
push 镜像到镜像仓库
镜像仓库作为云原生环境基础设施的一部分,提供镜像上传和分发的能力。通过docker push命令将镜像push至镜像仓库。示例如下:
docker push registry.cn-beijing.aliyuncs.com/<usersnamespace>/iserver_extend_example:v1
注册领域空间信息微服务
1.登录云套件 iManager 首页,进入服务管理页面。
2.点击左侧导航栏扩展服务管理->添加扩展服务。
3.填入扩展服务信息。
- 扩展服务名称:对领域空间信息微服务进行命名。
- 镜像名:输入构建并Push镜像中定义的镜像名,本示例为“registry.cn-beijing.aliyuncs.com/<usersnamespace>/iserver_extend_sample:latest:v1”。
4.点击添加完成注册。
发布领域空间信息微服务
1.点击左侧导航栏服务节点->创建节点。
2.输入服务节点信息。
- 节点名称:对服务节点进行命名。
- 节点类型:选择与领域空间信息服务同一名称的节点类型。领域空间信息服务一旦注册成功,系统会自动新增一种节点类型,该节点类型的名称沿用注册时输入的“扩展服务名称”。即注册领域空间信息服务时,输入的扩展服务名称为“交通线路服务”,此处节点类型选择“交通线路服务节点”。
完成后点击确定进行创建。
3.点击左侧导航栏服务节点->服务实例。
4.点击“发布服务”,选择数据源,开启高级选项,输入自定义构建服务所需的配置信息,如:
<?xml version="1.0" encoding="utf-8"?>
<application>
<interfaces>
<interface name="sample" class="com.supermap.services.rest.JaxrsServletForJersey">
<config class="com.supermap.services.rest.JaxrsConfigForJersey">
<accessControlAllowOrigin></accessControlAllowOrigin>
</config>
</interface>
</interfaces>
<components>
<component name="sampleComponent" class="com.supermap.sample.SampleComponentImpl" providers="sampleProvider" interfaceNames="sample">
</component>
</components>
<providers>
<provider name="sampleProvider" class="com.supermap.sample.SampleProviderImpl">
<config class="com.supermap.sample.SampleProviderSetting">
<message>iServer Extend Sample Test!</message>
</config>
</provider>
</providers>
</application>
输入配置信息后点击“下一步”。
5.“配置数据“、”选择服务类型”、“配置服务”等操作直接点击”下一步“。
6.在”指定服务节点“步骤点击”选择已有“,勾选您之前创建的服务节点,点击”发布“,即完成服务发布过程。发布成功的扩展服务会集成到服务实例列表中,与其他服务实例一同运维管理。