安装手册
# 概述
# 摘要
本快速入门指南主要介绍金蝶Apusic分布式配置中心V1.0 for zookeeper(简称“ADCC for zk”)安装、卸载等基本过程,适用于使用金蝶Apusic分布式配置中心 for zookeeper产品进行开发的开发人员、生产环境的系统管理员、运维人员等。
# 基础介绍
金蝶Apusic分布式配置中心软件for zookeeper (Apusic Distributed Config Center for zookeeper ,简称:ADCC for zk)为分布式应用系统提供高性能协调服务的产品,针对分布式技术而产生的一种新型的配置手段,通过简单的接口能够对分布式应用系统的配置进行统一的管理、实时更新,并支持配置更改的订阅,可实现不需要重启服务器而动态的修改配置文件的内容,有效提高工作效率。。
# 术语
ADCC:金蝶Apusic分布式配置中心软件
ADCC_HOME:金蝶Apusic分布式配置中心软件安装目录
# 系统环境要求
系统环境要求如下:
| 类型 | 要求 |
|---|---|
| 操作系统 | 国产操作系统如银河麒麟系列、中标麒麟系列、普华、中科红旗、深度等; Windows系列; Linux Red Hat 5.2或以上。 |
| CPU | 国产架构:鲲鹏、海光、飞腾、龙芯、兆芯等; 国外架构:如Intel等。 |
| 内存、硬盘 | 建议内存4G或以上;可用空间100G或以上 |
| JDK | JDK8、JDK11、JDK12、JDK17稳定版本 |
# 安装与卸载
该章节介绍ADCC for zk的安装、卸载操作。
# 产品包
安装包通常命名为ADCC-VXXX-Zookeeper-XXX.tar.gz,如ADCC-V1.0.371-Zookeeper-20241219.tar.gz。
# 安装
获取到稳定的ADCC for zk版本后,如ADCC-V1.0.371-Zookeeper-20241219.tar.gz;拷贝到目录,如/opt;执行解压,得到有目录adcc/,此时/opt/adcc/就是${ADCC_HOME}。
tar -zxvf ADCC-V1.0.371-Zookeeper-20241219.tar.gz
# 卸载
将产品安装目录,如/opt/adcc,删除即完成卸载。
注意:卸载前需确认产品已停止运行。
# 启动与停止
该章节介绍ADCC for zk启动、运作等操作。分为单机模式和集群模式。
# Java环境
启动前,先确认已安装有完整的JDK,JDK版本为JDK8及以上。查看java环境命令如下:
[user@test3 java]# java -version
java version "1.8.0_231"
Java(TM) SE Runtime Environment (build 1.8.0_231-b11)
Java HotSpot(TM) 64-Bit Server VM (build 25.231-b11, mixed mode)
2
3
4
# 单机模式
# 启动
进入安装目录${ADCC_HOME}/bin,执行启动命令,adccServer.sh start。
[user@test3 bin]# ./adccServer.sh start
ADCC JMX enabled by default
Using config: /opt/ADCC/adcc-server-1.0/bin/../conf/zoo.cfg
Starting ADCC ... STARTED
2
3
4
# 停止
进入安装目录${ADCC_HOME}/bin,执行停止命令,adccServer.sh stop。
[user@test3 bin]# ./adccServer.sh stop
ADCC JMX enabled by default
Using config: /opt/ADCC/adcc-server-1.0/bin/../conf/zoo.cfg
Stopping ADCC ... STOPPED
2
3
4
# 查看状态
进入安装目录${ADCC_HOME}/bin,执行查看状态命令,adccServer.sh status。结果类似以下内容表示服务已启动,客户端端口为2181,客户端地址为localhost,未启动SSL配置,模式为单机模式。
[user@test3 bin]# ./adccServer.sh status
ADCC JMX enabled by default
Using config: /opt/ADCC/adcc-server-1.0/bin/../conf/zoo.cfg
Client port found: 2181. Client address: localhost. Client SSL: false.
Mode: standalone
2
3
4
5
# 集群模式
在单机模式下运行ADCC for zk便于评估、某些开发和测试。但在生产中,建议在集群模式下运行ADCC for zk。同一应用程序中的一组复制服务器称为仲裁,在集群模式下,仲裁中的所有服务器都具有相同配置文件的副本。
通常情况下,集群需要保持半数以上的存活节点,因此集群节点至少需要3个及以上。
# 安装
获取到稳定的ADCC for zk版本后,如ADCC-V1.0.371-Zookeeper-20241219.tar.gz;拷贝到目录,如/opt;执行解压,得到有目录adcc/,此时/opt/adcc/就是${ADCC_HOME}。
tar -zxvf ADCC-V1.0.371-Zookeeper-20241219.tar.gz
在集群的每个节点服务器都需要安装ADCC;如果节点在同一服务器,需要注意端口不能冲突。
# 配置
集群模式的conf/zoo.cfg文件与单机模式中使用的类似,但有一些区别。下面以在172.20.140.17、172.20.140.13和172.20.12的机器部署集群为环境进行介绍,在每一个环境上ADCC for zk的zoo.cfg的集群配置文件,需要增加如下的最后3行(如果存在端口冲突,则需要修改端口):
tickTime=2000
dataDir=../data
clientPort=2181
initLimit=10
syncLimit=5
server.1=172.20.140.17:2888:3888
server.2=172.20.140.13:4888:5888
server.3=172.20.140.12:6888:7888
2
3
4
5
6
7
8
表单的条目server.X列出组成ADCC for zk集群服务的服务器。

当服务器启动时,它通过在数据目录中查找文件myid来知道它是哪个服务器。该文件包含服务器号X,所以集群配置还需要如下的修改:
在172.20.140.12中的dataDir目录创建myid文件,即在../data下创建myid文件,并输入上面配置中server.1中的序号1,并保存;
同理在172.20.140.17中的dataDir目录创建myid文件,即在../data下创建myid文件,并输入上面配置中server.2中的序号2,并保存;
同理在172.20.140.43中的dataDir目录创建myid文件,即在../data下创建myid文件,并输入上面配置中server.3中的序号3,并保存;
如下图为server.1服务器的myid配置:
到这里,3个节点的集群就已经配置完成,然后分别启动即可。注意:在3个节点未完全启动完前,会答应连接不上的信息,这是正常的。
上面配置的其他说明:
initLimit:ADCC for zk用来限制quorum中ADCC for zk服务器必须连接到领导者的时间长度的超时。条目syncLimit限制了服务器与Leader之间的过期距离。
对于这两种超时,可以使用tickTime指定时间单位。在本例中,initLimit的超时为5次,每次为2000毫秒,即10秒。
最后,请注意每个服务器名称后面的两个端口号:"2888"和"3888"。对等体使用前一个端口连接到其他对等体。这样的连接是必要的,以便对等体可以进行通信,例如商定更新的顺序。更具体地说,ADCC for zk服务器使用此端口将follower连接到Leader。当出现新的Leader时,follower使用此端口打开与Leader的TCP连接。由于默认Leader选举也使用TCP,因此我们当前需要另一个端口进行Leader选举。这是服务器条目中的第二个端口。
# 验证
依次启动ADCC集群节点。
./adccServer.sh start
查看ADCC节点状态。
./adccServer.sh status
下图为示例参考图,主要查看Mode属性值和运行状态,其他值可能会与实际略不同。
可以看到有一个是leader,两个是follower。



先把其中一个follower的节点停止,查看其他节点的状态。可以看到其他节点的状态依旧正常,集群可以正常运行。



再停止一个节点,查看结果。可以看到节点停止后,此时运行的节点少于集群总数量的一半,剩下的一个节点也停止了。
停止运行的节点:

没有执行停止运行命令的节点:

上一步停止运行的节点:

再把其中一个已停止的节点启动,查看结果。会看到集群的节点运行数量过半后,集群又恢复正常运行状态,并且会重新推举出一个leader。
执行启动命令的节点:

没有执行停止命令的节点:

此时再加入节点也是follower节点,不会影响到现任的leader节点。
# 云部署
ADCC支持云部署。
# build镜像
先获取到ADCC的安装包以及有效的授权文件。
创建Dockerfile。示例如下,操作系统、安装包名称需要根据实际情况修改。
FROM harbor.apusic.com/public/jdk1.8:v241
#For ARM Architect
#FROM harbor.apusic.com/arm64/openjdk:8u342-jdk-oraclelinux7
ENV ADCCZK_VERSION 1.0
COPY adcc-server-1.0.tar.gz /home/apusic/
RUN mkdir -p /home/apusic/adcc/data /home/apusic/adcc/wal /home/apusic/adcc/log
RUN cd /home/apusic && \
tar xf adcc-server-1.0.tar.gz -C /home/apusic && \
rm -rf adcc-server-1.0.tar.gz
ADD license.xml /home/apusic/adcc/license.xml
ADD zoo.cfg /home/apusic/adcc/conf/zoo.cfg
COPY entrypoint.sh /home/apusic/adcc/bin/
ENV PATH=/home/apusic/adcc/bin:${PATH} \
ZOO_LOG_DIR=/home/apusic/adcc/log \
ZOO_LOG4J_PROP="INFO, CONSOLE, ROLLINGFILE" \
JMXPORT=9010
RUN chmod +x /home/apusic/adcc/bin/*.sh
ENTRYPOINT ["entrypoint.sh"]
CMD [ "/home/apusic/adcc/bin/adccServer.sh", "start-foreground" ]
EXPOSE 2181 2888 3888 9010
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
执行docker build命令,如
docker build -t apusic/adcc-zk:v1.0 .
# 验证镜像
使用docker images验证镜像。
docker images
# 运行容器
执行docker run命令运行容器,如:
docker run --name adcczk -p 2181:2181 -d apusic/adcc-zk:v1.0
执行docker ps -a 命令查看容器。
# 产品授权
ADCC需要有对应的许可证才能正常使用,通常情况下,金蝶天燕会根据用户购买的产品版本配套对应的许可证。
产品授权方式分为普通授权和集中授权。
# 普通授权
普通授权指根据IP、域名等方式生成license.xml文件,将授权文件放置安装目录下,${ADCC_HOME}/license.xml。
# 集中授权
集中授权指连接授权中心,进行统一授权。需要先搭建金蝶Apusic授权中心,操作方式可参考《金蝶Apusic许可授权中心用户手册》,或联系金蝶天燕技术支持人员。
在服务器配置环境变量,或在ADCC安装目录根目录创建acls.properties文件,添加以下参数:
apusic_acls_enable=true
apusic_acls_authUrls=172.24.4.166:6886
apusic_acls_ns=apusic
apusic_acls_tenant=ApusicTest
2
3
4
连接参数说明:
| 参数名 | 参数值说明 |
|---|---|
| apusic_acls_enable | 是否开启授权中心认证,取值为true或false,为true则表示开启授权中心认证。没有该参数或该参数值为false,都表示没有开启授权中心认证; |
| apusic_acls_authUrls | 授权中心的地址,可设置多个授权地址,格式为ip1:port1,ip2:port2,如果一个授权地址链接失败,会轮询其他的地址;如果开启授权中心认证,则为必填参数,其中端口为授权中心的https端口; |
| apusic_acls_ns | 设置该实例所属的命名空间名称,可选参数;默认值为public,具体的命名空间可以在授权中心管理控制台-系统管理-授权管理查看。 |
| apusic_acls_tenant | 设置该实例所属的租户名称,可选参数。 |
ADCC启动时将会自动连接到Apusic授权中心。
# 获取特征码
如果在使用过程中出现许可证过期或无效等问题,建议优先联系对接的天燕服务人员,重新申请对应许可证。重新申请对应许可证时,需要将产品的特征码(auth code)提供到天燕对接人员。
在${ADCC_HOME}/bin,执行adccServer.sh -ac host,host取值为ip地址或者网卡名称,类似如下:
./adccServer.sh -ac 172.20.140.17
打印特征码信息,类似如下,Auth Code=右边则为特征码内容:
ADCC JMX enabled by default
Auth Code=SZTY777387783
2
获取特征码后再提供特征码申请授权文件。