实施部署 东方通中间件、宝兰德部署应用(三)

字数: 3785

本文总结在信创项目中,使用最多的中间件:东方通、宝兰德。

在安装中间件之前,应先在服务器创建一个应用用户,这里并不是说不能用root用户安装,开发环境和测试环境可以直接安装,但是生产上是无特殊情况是不提供root用户的。为了避免因为用户差异导致的文件执行问题,这里先创建一个用户,上线时,可以保证我们的操作一致,以及后续方便排查部署过程中可能产生的报错。

安装前准备

创建中间件用户

在应用服务器上使用root用户

1
2
3
4
5
6
# 创建用户组
groupadd -g 1051 test
# 创建用户
useradd -g test -m -d /home/test -s /bin/bash test
# 修改密码
passwd test

hosts配置

1
2
3
4
5
6
7
8
# 查看本机名
hostname
# 查看本机IP
hostname -i
# 配置hosts
vi /etc/hosts
# 添加
ip hostname

修改文件打开最大数

说明:此步骤,安装东方通时可跳过的,宝兰德需要操作(以我接触的项目情况是这样的)

1
2
3
4
5
6
vi /etc/security/limits.conf
# 添加
* soft nofile 65535
* hard nofile 65535
* soft nproc 65535
* hard nproc 65535

保存后重新连接服务器

1
2
# 查看是否生效
ulimit -a

配置JDK

没有则安装,一般信创的机器是自带的。但是有时候,为了确保这个版本的JDK是中间件以及应用服务都可用,采用自己安装,多为安装 JDK1.8 版本(自己安装需要上传jdk到服务器并解压tar包)

1
2
# 查看是否安装
java -version

已经有了,则可以直接配置环境变量,当然,得知道路径才能配置环境变量

1
2
3
4
# 查看 JDK 的安装路径
which java
ls -l /usr/bin/java
ls -l /etc/alternatives/java

最下边返回的,就是 JDK 真是的安装路径

找到JDK安装路径后,添加环境变量:

1
2
3
4
5
6
7
8
vi ~/.bashrc
# 在末尾加入
export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.272.b10-7.ky10.x86_64/jre
export PATH=$JAVA_HOME/bin:$PATH
# 保存后刷新环境变量
source ~/.bashrc
# 输出配置的环境变量
echo $JAVA_HOME

配置好环境变量后,就可以进行中间件的安装了

东方通部署应用

东方通中间件部署应用的详细步骤,从东方通安装到管理控制台配置的过程。

东方通的安装

东方通在LINUX上安装,需要通过命令的方式安装。(PS:这个已经是22年的版本了,当时接触东方通的时候,安装包是一个.bin文件,但是到了23年,东方通的安装包基本都是提供一个tar包,安装只需要解压tar包即可。方便很多,但是既然是自己安装的中间件,当然要记录啦)

bin包安装

1
2
3
4
# 运行安装包
sh Install_TW7.*.*.*_Enterprise_Linux.bin -i console
# 选择语言
中文简体

1
2
3
4
5
6
# 中间会出现 【按回车键继续安装】【PRESS <ENTER> TO CONTINUE】
按回车就行
# 然后回出现 【是否接受此许可协议条款】
y
# 选择 JDK
选择系统自带的 JDK 即可当然也可以使用自己安装的图上是使用自己安装的最好是适配应用的 JDK 版本

1
2
# 选择安装位置
输入一个安装路径

1
2
# 选择链接位置
这里常链接到主文件夹中

1
2
# 出现预安装信息
回车即可

1
2
3
4
5
# 修改端口
此步骤可修改可不改无特殊要求可直接使用默认回车)。有特殊要求则更改端口这里也可以安装好后在配置文件中修改$TONGWEB_HOME/conf/tongweb.xml)
通常我们关注以下两个
tong-http-listener此为访问应用端口
system-http-listener此为东方通控制台端口

回车后就安装完成了。

tar包安装

提供的tar包,只需要解压到目标目录即可。当然,tar有多种压缩格式,最常碰见的就是 tar.gz

1
tar -xzvf tongweb_version_7.x.x.x /home/tongweb

授权

将安装后的目录,授权给中间件用户

1
2
chown test:test -R /home/tongweb
chmod 755 -R /home/tongweb

启动配置

以下常见配置,均为在项目上能够实际遇到的

修改端口

根据客户要求,或者应用要求,配置我们的应用端口。(如果是使用默认端口则不需要修改)

1
2
3
4
# 假设安装到 /home/tongweb
vi /home/tongweb/conf/tongweb.xml
# 修改 tong-http-listener 的 port
port = 8080

关闭防火墙

在启动东方通控制台之前,需要关闭防火墙,否则操作机器无法访问到控制台地址。(在第一次接触东方通的时候,当时服务已经启动了,但是打不开控制台,我还以为是网络没打通,结果一查是防火墙导致)

1
2
3
4
# 关闭防火墙
systemctl stop firewalld
# 禁止防火墙自启,通常情况下,不需要禁止,但是如果遇到服务器重启的情况,首先还是需要手动关闭
systemctl disable firewalld

启停服务

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
# 正常启动
cd /home/tongweb/bin && ./startserver.sh
# 后台启动(常用)
cd /home/tongweb/bin && ./startservernohup.sh 
# 停止
cd /home/tongweb/bin && ./stopserver.sh
# 或者手动 kill
kill -9 {pid}
# 重启
cd /home/tongweb/bin && ./startservernohup.sh restart

打开控制台

1
http://ip:port/console

控制台配置

修改服务器可选目录

此步骤是确保在部署应用的时候,可以访问到应用所在的位置,不然找不到

JDBC 配置

JDBC配置就是让中间件连接到数据库,让应用能够与数据库进行交互。

需要注意的地方:

  • 达梦JDBC驱动,最好使用新版,或者应用做了适配的版本。
  • JDBC连接名称,需要与应用中的jndiName 一致,一般的java服务会有一个xml文件配置dispatcher-servlet 的地方,否则可能会报错在应用中找不到 jndiName 。特别是在做信创迁移的时候,会出现一种情况:tomcat里使用的jndiName与东方通里使用的jndiName名称不一致,此时需要注意修改为一致。

另外,基于项目经验猜测,基于 webbuilder 的框架,都有 WEB-INF/dispatcher-servlet.xml 文件,同样的,也会有变量配置,变量配置可能是落到数据库中,也可能使用 var.json 文件进行配置。差异不大,都是会有 jndiName 的配置

部署应用

如果没有【3.1修改服务器可选目录】,这里是访问不到应用所在的目录的

点击开始部署,一般这里没什么多大的问题,都取默认即可。

访问应用

1
http://ip:port/app_name

多种部署情况说明

一个东方通部署多个应用

遇到过客户为了节省开发环境或者测试环境的资源,会让我们在一个东方通部署多个应用(就是与其他应用共享资源)。对于不同的应用,是可以的。

针对是部署相同的应用,需要

  • 建立新的连接池,修改jndiName ,以防应用访问错数据库
直接部署

直接部署则按照【3.1-3.3】步骤,部署应用即可

注意:直接部署,东方通是按顺序拉起应用的,启动会慢一些,并且公用 IP 和 PORT ,东方通服务停掉会影响所有应用。

域部署

通过创建域,让各个应用启动和配置不相互影响。使用 TONGWEB_HOME/bin 下的启停命令不会影响到域里边的应用,域里的应用独立启停和配置,且端口不会冲突

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
# 创建域
cd TONGWEB_HOME/bin
./domain.sh create AppName

# 执行后,在东方通的根目录下会出现 domains 目录,目录里边的结构与根目录完全一致,有 /bin /conf /logs 等等
# 域的启停,与东方通完全一致,不过是在 /domains/bin 下
# 配置文件也在 /domains/conf 下

# 配置域的端口
cd TONGWEB_HOME/domains/conf
vi tongweb.xml        # 域的默认端口是东方通默认的端口+1

# 启停
cd TONGWEB_HOME/domains/bin
./startservernohup.sh          # 启动
./stopserver.sh                # 停止

# 默认的域管理控制台:
http://IP:PORT+1/console       # 比如东方通默认端口 9060,域端口则为 9061
# 应用访问:
http://IP:PORT+1/app_name      # 比如应用默认端口 8088,域端口则为 8089

设置connection-timeout

有些客户,在扫描整体的安全漏洞时,会检测到目标主机可能存在缓慢的 HTTP 拒绝服务攻击,这个就是中间件里配置connection-timeout即可。

简单来说,通过发送大量的慢速或低频率的 HTTP 请求来占用目标服务器的资源,导致服务器的连接和内存资源被恶意连接占满,无法处理新的合法请求。

tomcat 可以通过修改 server.xml 文件中的配置来设置 connectionTimeout 参数

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
<Connector port="8080" protocol="HTTP/1.1"
           maxHttpHeaderSize="8192"
           maxThreads="100"
           minSpareThreads="50"
           maxSpareThreads="100"
           minProcessors="50"
           maxProcessors="100"
           enableLookups="false"
           connectionTimeout="8000"      // 修改此处值
           acceptCount="100"
           redirectPort="8443"
           URIEncoding="UTF-8"/>

同样的,在信创上,东方通中间件也可通过设置对应的请求,在 tongweb/conf/tongweb.xml 配置文件中,connection-timeout 对接的前台页面就是 http 通道里的 连接超时 ,修改此处即可(默认 60000 » 改为 8000)

宝兰德部署应用

该步骤为宝兰德集群版本的安装步骤,非单实例。集群版本,需要配置节点、实例。实例的启动依赖于节点的启动,节点停止则实例停止。

正确的启动顺序:集群 » 节点 » 实例

宝兰德的安装

将安装介质放入服务器,并解压

1
2
3
4
5
6
# 使用中间件用户
su - bes
# 进入介质目录
cd /home/BES955
# 解压
tar -zxvf BES-AppServer-Enterprise-9.5.5.6210-KYLIN10-X64.tar.gz -C /home/BES955/AdminServer

如果有补丁,则需要升级补丁。将补丁包放到 patch 目录下,执行

1
2
3
4
5
cd /home/BES955/AdminServer/bin
# 升级补丁
./patch -path /home/jfcz/patch
# 查看是否升级完成
./patch -list

初始化并启动

1
2
3
4
5
6
# 在bin目录下执行,初始化中间件
./initstore
# 启动管理控制台
./startManagement
# 查看是否启动,出现6900端口为已启动
netstat -ntlp

配置中间件

访问管理控制台

1
http://IP:6900/console

添加主机

进入控制台后,点击左侧主机管理,点击添加: 填写名称、主机IP、用户名、密码,信息如图

可以点击ping,测试是否能连接。不能ping通请检查IP、用户、密码是否正确。

添加节点

点击左侧节点管理,新建

填写节点名称、节点目录(默认填宝兰德的安装目录),JAVA_HOME可默认不填

保存后,启动它。

点击节点,进入节点的配置界面,将【启动所有实例、停止所有实例】打勾后保存(这个操作可以在启动节点的同时自动启动实例)

创建集群

点击左侧集群管理,点击新建:填写个集群名称即可。保存后选中该集群然后点击启动。

创建实例

点击左侧实例管理,点击新建:填写如图信息保存即可

修改实例端口

点击实例 - 系统属性 http-listener-1_port:修改为8080(这个是http协议访问) http-listener-2_port:(这个是https协议访问,如需要此访问请更改)

OK,到这里就是宝兰德的基础配置就结束了。

后边可以进行应用的部署了。

部署应用注意项

BES集群下有实例,应用是在实例中生效的,所以改动应用的时候请直接到实例目录下的application目录下去改。每部署一次应用,就会拷贝一次应用目录到它的实例node/application下。

重启实例出现某个实例启动失败

在应用无报错的前提下,4个实例,正常重启实例,会出现1个或者2个实例启动报错。从应用的错误日志中查看原因,会出现一些连接不上数据源的报错,导致实例的错误日志会抛出应用错误。

由于数据源连接数量太少导致,每个实例都需要一定的连接数。此时,需要到中间件的JDBC数据源配置处,修改池的连接数。生产环境上修改为默认的两倍数据,实例均正常启动。后续如果出现此情况,可根据实际情况,扩大连接数即可。

Licensed under CC BY-NC-SA 4.0
最后更新于 2024年10月14号 22:35