苍穹分应用部署方法

栏目:云苍穹知识作者:金蝶来源:金蝶云社区发布:2024-09-23浏览:1

苍穹分应用部署方法

1 苍穹的微服务架构

         金蝶云·苍穹是采用云原生架构的分布式应用,相比单体应用架构,苍穹的微服务架构能更加保证服务的稳定可靠。单体应用和微服务架构的优缺点如下:

单体应用架构微服务架构

部署简单

部署复杂

运维简单

运维复杂

部署成本低

部署成本高

应用耦合高

应用解耦

技术栈统一

技术异构性

应用不隔离

应用可隔离

服务无法扩展

服务可任意伸缩

迭代周期长

快速迭代

可复用性差

可复用性高

部署固定

部署灵活

         金蝶云·苍穹采用动态微服务技术,使得苍穹应用部署非常灵活。可以像单体应用一样所有应用部署在一起(实际是微服务,服务可任意伸缩),也可以拆分应用部署实现每个小应用的相互隔离。

image.webp

2 分应用部署方法

金蝶云·苍穹分应用部署可通过环境变量进行配置:

描述

appSplit

true

分应用的开关,true为启用,false为不启用。注意,同一集群内,appSplit值必须保持一致

appIds

bos,bos-up,base,basedata,bd,sbd,wf,wftask,gmc,custom

申明了该服务上运行的应用ID,会注册到zookeeper中用于服务发现与调用。注意appIds中的i是大写的

BIZLIBS

fi.xml ,fi-cal.xml, scm.xml

appstore目录下的xml中维护了一组appIds和所需要的加载的应用包。

3 标准按云拆分应用

类别服务云微服务名称服务说明appIdsBIZLIBSBOSLIBSTRDLIBS

苍穹

平台微服务

web

web服务,网关

fi-er-web,scm-pur-web,ssc-task-web

bos.xml

trd.xml

mservice-bos

平台

bos,bos-up,base,basedata,bd,sbd,gmc

bd-bd,biz-bos-ext

bos.xml

trd.xml

mservice-wf

流程服务云

wftask,wf

bd-bd,biz-bos-ext

bos.xml

trd.xml

mservice-qing

轻分析、轻报表

qing,qing_rpt

bd-bd,biz-bos-ext

bos.xml,bos-qing.xml

trd.xml,trd-qing

mservice-isc

集成服务云

xml中已配置

isc.xml

bos.xml

trd.xml

mservice-ai

AI服务云

xml中已配置

ai.xml,data.xml

bos.xml

trd.xml

mservice-rpa

RPA服务云

xml中已配置

rpac.xml

bos.xml

trd.xml

mservice-bsc

区块链服务云

xml中已配置

bsc.xml

bos.xml

trd.xml

mservice-bamp

基础中台服务云

xml中已配置

bamp.xml

bos.xml

trd.xml

星瀚

财务云

mservic-std

总账、资产、应收、应付、出纳、会计平台、智能核算

xml中已配置

fi-std.xml

bos.xml

trd.xml

mservic-er

人人费用/差旅

xml中已配置

fi-er.xml

bos.xml

trd.xml

mservic-ssc

财务共享

xml中已配置

ssc.xml

bos.xml

trd.xml

mservic-pmgt

项目管理

xml中已配置

pmgt.xml,pccs.xml

bos.xml

trd.xml

资金云

mservice-tmc

资金

xml中已配置

tmc.xml

bos.xml

trd.xml

mservice-ebg

银企云

xml中已配置

ebg.xml

bos.xml

trd.xml

企业绩效云

mservice-bcm

合并报表

xml中已配置

bcm.xml

bos.xml

trd.xml

mservice-epm

预算管理

xml中已配置

epm.xml

bos.xml

trd.xml

税务云

mservice-taxc

税务

xml中已配置

taxc.xml

bos.xml

trd.xml

发票云

mservice-imc

发票

xml中已配置

imc.xml

bos.xml

trd.xml

供应链云

mservice-scmc

供应链云

xml中已配置

scmc.xml

bos.xml

trd.xml

mservice-cal

存货核算/出库核算

xml中已配置

fi-cal.xml,fi-calx.xml

bos.xml

trd.xml

mservice-macc

成本管理

xml中已配置

macc.xml

bos.xml

trd.xml

mservice-scm

供应商协同云(含地产)

xml中已配置

scm.xml

bos.xml

trd.xml

mservice-mpscmm

供应链和制造服务云

xml中已配置

mpscmm.xml

bos.xml

trd.xml

制造云

mservice-mmc

制造云

xml中已配置

mmc.xml

bos.xml

trd.xml

渠道云

mservice-drp

渠道云/全渠道云

xml中已配置

drp.xml,occ.xml

bos.xml

trd.xml

质量云

mservice-qmc

质量云

xml中已配置

qmc.xml

bos.xml

trd.xml

实施配置中心

mservice-ricc

实施配置中心

xml中已配置

bamp-ricc.xml

bos.xml

trd.xml

HR

mservice-hr

核心人力/HR中台服务/组织管理

xml中已配置

hr.xml,odc.xml,hrmp.xml

bos.xml

trd.xml

mservice-hjm

薪酬管理

xml中已配置

swc.xml

bos.xml

trd.xml

mservice-hspm

个税

xml中已配置

sit.xml

bos.xml

trd.xml


说明:

1、分应用的微服务名称(appName)为推荐名称,便于区分,也可自定义

2、目前拆分的容器节点为推荐最小粒度,若需要再细分应用(部分应用尚未完全解耦),请咨询相关模块的架构师

3、在此最小细分粒度上,根据项目实际情况,将使用量大的独立出来,对于未使用或者使用量较小的应用可合并部署到同一个容器节点,如可以将未使用或者使用量较小的应用部署在mservice-others容器节点上

4、分应用部署的情况,bos节点建议独立部署,因bos.xml中没带有appIds,所以需要显式配置appIds=bos,bos-up,basedata,sbd,wf,wftask,gmc,custom(其中wf、wftask可以拆分独立部署),同时需要加载业务基础包:BIZLIBS=bd-bd,biz-bos-ext。

5、分应用部署的主要目的是为了应用隔离,所以请保持appIdsappIdsFromAppstore的唯一性。避免应用调度混乱,失去分应用部署的意义。

6、custom这个appIds的用途是如果没有显式配置二开的appIds或者到xml中的话,就会默认调度到custom的应用节点上,如果custom节点没有加载二开包的话,此时就会包该容器二开的类找不到。


如图:

image.webp



4 其他应用独立部署

4.1 后台事务独立部署

后台事务节点标志的关键参数:

bos节点应用JVM_OPTS中添加: -DSchedule.Message.AccessType=["REALTIMEJOB"]
工作流应用节点JVM_OPTS中添加:  -DSchedule.Message.AccessType=["WorkFlowJOB","REALTIMEJOB"]
调度应用JVM_OPTS中添加(加载全量包): -DSchedule.Message.AccessType=["BIZJOB","REALTIMEJOB"] -Ddubbo.registry.register=false -DSchedule.deployMode=execute_node -Dmq.consumer.maxpoolsize=40

参数说明:

BIZJOB:能处理所有后台事务
WorkFlowJOB:只处理工作流的后台事务
dubbo.registry.register=false:不注册微服务
后台事务是可以指定appId执行的,如果找不到appId就会在custom节点上运行。
其他分应用节点如果不想处理后台事务也可以加: -DSchedule.Message.AccessType=["REALTIMEJOB"]
这样的话处理后台事务的节点计算资源可能不太够,需要根据现场环境真实情况而定。

 

例如,业务容器都不处理后台事务,后台事务都由一组服务完成

创建后台事务的容器服务(可以参考bos容器节点环境变量),并修改部分环境变量如下:

(1)JVM_OPTS中添加:-DSchedule.Message.AccessType=["BIZJOB","REALTIMEJOB"] -Ddubbo.registry.register=false -DSchedule.deployMode=execute_node -Dmq.consumer.maxpoolsize=40

(2)BIZLIBS需要加载全量的业务包。由于配置了dubbo.registry.register=false,即后台事务节点不会注册微服务,所以可以配置所有的xml文件,用逗号隔开即可。

 

除了后台事务节点的其他所有容器节点的JVM_OPTS中添加: 

-DSchedule.Message.AccessType=["WorkFlowJOB","REALTIMEJOB"]

 

4.2 AlgoX独立部署

AlgoX 是金蝶云.苍穹的分布式计算框架,用于解决海量数据计算场景。基于MapReduce 思想和技术,分布式部署,利用分布式的能力,使得性能可扩展,提升大数据查询计算和分析的能力,用以解决 ERP 中复杂计算、报表分析的场景。通过多台计算节点并行计算,实现弹性计算能力,使得性能可以伸缩扩展。

AlogX独立部署方法

Algox的关键参数:

algox.client.job.parallelism: algox任务运行并行度,默认是8
AlgoX有两种部署模式,系统默认是本地模式
本地模式: algox.client.invokemode=local
集群模式: algox.client.invokemode=remote
 
本地模式:
algox.client.invokemode=local
algox.local.worker.memory: worker节点分配给algox使⽤用的内存,默认是2G
algox.local.worker.threads: worker节点总共分配给algox使用的最大线程数,默认是64
 
集群部署模式(通过zookeeper构建集群):
algox.client.invokemode=remote
algox.cluster.name:集群名字
algox.cluster.zookeeper:zk的连接地址
algox.cluster.storageDir: 存储目录,如果是容器,需要挂载磁盘
master节点配置: algox.master.enable=true
worker节点配置: algox.worker.enable=true
algox.worker.memory: worker节点分配给algox使用的内存,默认是2G
algox.worker.threads: worker节点总共分配给algox使用的最大线程数,默认是64

 

例如:创建两组容器服务,分别是 algox-master和algox-work,关键环境变量修改如下:

algox-master的关键环境变量:
BIZLIBS=allbiznoappIds.xml
customAppIds=' '
mq.consumer.register=false
appIds=algox
appName=mservice-algox-master
algox.client.invokemode=remote
algox.master.enable=true
algox.cluster.zookeeper=zk-algox:2181
JVM_OPTS中添加 -DSchedule.disableToWork=true

 

algox-work的关键环境变量:

BIZLIBS=allbiznoappIds.xml
appIds=algox
customAppIds=' '
mq.consumer.register=false
appName=mservice-algox-worker
algox.client.invokemode=remote
algox.worker.enable=true
algox.cluster.zookeeper=zk-algox:2181
algox.cluster.storageDir=/tmp
algox.worker.memory=5120
JVM_OPTS中添加 -DSchedule.disableToWork=true

注:(1)BIZLIBS=allbiznoappIds.xml是加载biz目录中全量的业务包而不加载任何appIds的xml文件,需要自行创建。

(2)zk-algox:2181是zookeeper地址,如果没有单独部署一套zookeeper地址的话,可以和配置中心configUrl的地址共用。

 

检查独立部署是否生效

点击algox-work节点可以查看到执行的任务


 

而点击其他非algox的分应用节点则会报“当前节点不是AlgoX节点,请选择其他节点!”



AlgoX是处理大数据计算的程序,需要的CPU和内存的资源要稍大些。一般资源配置参考如下:

服务名

初始CPU

最大CPU限制

JVM堆内存大小

容器最大内存

容器副本数

Algox-master

2C

4C

-Xms7000m -Xmx7000m

10G

2

Algox-worker

2C

4C

-Xms10880m -Xmx10880m

13G

2或以上

 

4.3 引入引出独立部署

在苍穹系统中,引入引出是一个很常用的功能,有时引入引出数据量比较大的时候就会导致某个应用或整个系统卡顿,甚至出现OOM内存溢出导致宕机。为了避免这种情况,引入引出可以独立部署出来,即使引入引出功能卡顿或宕机异常,也不会影响其他功能的使用,实现故障隔离。

引入引出独立部署方法

引入引出的应用编码是:imp-exp

引入引出服务的关键环境变量:

BIZLIBS=allbiznoappIds.xml
appSplit=true
appIds=imp-exp
appName=mservice-imp-exp

innerAppIds=在monitor的注册中心中查询任一实例的系统属性中registedAppIds的值

注:(1)BIZLIBS=allbiznoappIds.xml是加载biz目录中全量的业务包而不加载任何appIds的xml文件,需要自行创建。

(2)innerAppIds该参数表示:声明该实例中内部注册的appIds,即如果imp-exp节点需要访问其他appIds应用,则本地直接调用就行,不需要通过dubbo的rpc去调用了。


 

检查独立部署是否生效:

随便点击一个表单(如系统服务云--基础服务--人员--更多--引出数据)进行引入引出数据测试,查看日志看imp-exp的appIds运行的实例是否是独立部署的实例服务。



附:

苍穹分应用部署方法 - v5.0.2.docx

苍穹分应用部署方法

1 苍穹的微服务架构 金蝶云·苍穹是采用云原生架构的分布式应用,相比单体应用架构,苍穹的微服务架构能更加保证服务的稳定可...
点击下载文档
确认删除?
回到顶部
客服QQ
  • 客服QQ点击这里给我发消息