一、软件部署
1.1 安装环境要求
内容 | 要求 |
---|---|
操作系统版本 | Redhat Linux 7或Centos 7及以上 |
防火墙 | 关闭 |
seLinux | 关闭 |
硬件资源 | 磁盘:缓存目录建议同步数据库大小的 70%以上 处理器:8c以上 内存:16G以上 |
1.2 上传安装包
# 安装包列表
kafka.tar.gz
mysql-5.7.36-1.el7.x86_64.rpm-bundle.tar
nginx-1.21.6.tar.gz
vue.tar.gz
zcbus.tar.gz
zcbus_db.sql
1.3 安装zookeeper+kafka
# 进入到软件解压目录(以实际解压路径为主,此处为演示路径)
cd /zcbus/
sudo tar xvf kafka.tar.gz
# 修改zookeeper.properties(/zcbus/kafka/config目录下)
dataDir=/zcbus/kafka/data/zookeeper #指定zookeeper数据路径
clientPort=2181 #指定 zookeeper端口
# 修改server.properties(/zcbus/kafka/config目录下)
broker.id=0 #每个broker的唯一id
listeners=PLAINTEXT://0.0.0.0:9092 #指定端口
advertised.listeners=PLAINTEXT://192.168.71.153:9092 #指定IP和端口
advertised.host.name=192.168.71.153 #指定IP
log.dirs=/zcbus/kafka/data/kafka-logs #指定kafka数据路径
1.4 安装MySQL
# 进入到软件解压目录(以实际解压路径为主,此处为演示路径)
cd /zcbus/mysql
sudo tar xvf mysql-5.7.36-1.el7.x86_64.rpm-bundle.tar
# 卸载自带的mariadb
查看mariadb版本: rpm -qa|grep mariadb
强制卸载命令:rpm -ev --nodeps mariadb-libs-5.5.68-1.el7.x86_64
# 安装MySQL
sudo rpm -ivh --force --nodeps mysql-community-*
#启动mysql服务
sudo service mysqld start
#查找mysql初始密码
sudo cat /var/log/mysqld.log | grep password
#修改初始密码
mysql> alter user 'root'@'localhost' identified by "1qaz!QAZ";
mysql> flush privileges;
#修改mysql配置文件
Sudo service mysqld stop
cd /etc
sudo vi my.cnf
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
character-set-server=utf8mb4
collation-server=utf8mb4_unicode_ci
sql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION
user=mysql
#skip-grant-tables
log_timestamps=SYSTEM
character_set_server=utf8
character_set_filesystem=utf8
collation-server=utf8_general_ci
init-connect='SET NAMES utf8'
init_connect='SET collation_connection=utf8_general_ci'
max_connections=1000
net_read_timeout=9000
net_write_timeout=9000
connect_timeout=6000
default-time-zone='+8:00'
skip-character-set-client-handshake
expire_logs_days=7
log-bin=my-bin
server-id=1
innodb_flush_log_at_trx_commit=2
enforce-gtid-consistency=1
gtid-mode=ON
lower_case_table_names=1
# Disabling symbolic-links is recommended to prevent assorted security risks
symbolic-links=0
#启动mysql
sudo service mysqld start
#导入数据库
sudo mysql -uroot -p
mysql> create database zcbus;
mysql> use zcbus
mysql> source /zcbus/zcbus_db.sql
#创建数据库用户
Mysql> create user 'zcbus'@'%' identified by '1qaz!QAZ';
Mysql> grant all privileges on *.* TO zcbus@'%';
1.5 安装Nginx
# 进入到软件解压目录(以实际解压路径为主,此处为演示路径)
cd /zcbus
sudo tar zxvf nginx-1.21.6.tar.gz
sudo mv nginx-1.21.6 nginx
#安装nginx
cd /zcbus/nginx
sudo chmod -R 755 /zcbus/nginx
sudo ./configure --with-http_stub_status_module --with-http_ssl_module
sudo make
sudo make install
#创建目录
sudo mkdir /var/log/nginx/
cd /zcbus/nginx/html
sudo mkdir vue
#软件所需文件复制到vue目录中,并解压
sudo tar zxvf vue.tar.gz
#创建新的nginx配置文件(具体目录信息依据实际环境)
cd /zcbus/nginx/conf
sudo vi nginx.conf
user root;
worker_processes auto;
error_log /var/log/nginx/error.log notice;
pid /var/log/nginx/nginx.pid;
events {
worker_connections 1024;
}
http {
include /zcbus/nginx/conf/mime.types;
default_type application/octet-stream;
log_format main '$remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for"';
access_log /zcbus/nginx/access.log main;
server_tokens off;
sendfile on;
#tcp_nopush on;
keepalive_timeout 65;
#gzip on;
limit_conn_zone $binary_remote_addr zone=conn_zone:50m;
server {
listen 8890;
server_name _;
#charset koi8-r;
access_log /zcbus/nginx/host.access.log main;
error_log /zcbus/nginx/error.log error;
# 限制请求体的大小,若超过所设定的大小,返回413错误。
client_max_body_size 100M;
client_body_buffer_size 256k;
# 读取请求头的大小,若超长,返回431错误。
# 请求行+请求头的标准大小为256k
client_header_buffer_size 128k;
# 请求行+请求头的最大大小为6m
# 请求头(request header)中的每一个头部字段的大小不能超过6m
large_client_header_buffers 4 1m;
# 读取请求头的超时时间,若超过所设定的大小,返回408错误。
client_header_timeout 300s;
# 读取请求实体的超时时间,若超过所设定的大小,返回413错误。
client_body_timeout 300s;
# http请求无法立即被容器(tomcat, netty等)处理,被放在nginx的待处理池中等待被处理。此参数为等待的最长时间,默认为60秒,官方推荐最长不要超过75秒。
proxy_connect_timeout 300s;
# http请求被容器(tomcat, netty等)处理后,nginx会等待处理结果,也就是容器返回的response。此参数即为服务器响应时间,默认60秒。
proxy_read_timeout 300s;
# http请求被服务器处理完后,把数据传返回给Nginx的用时,默认60秒。
proxy_send_timeout 300s;
location / {
limit_conn conn_zone 10;
limit_rate 80k;
root /zcbus/nginx/html/vue;
index index.htm index.htm;
try_files $uri $uri/ /index.html;
}
location ~* ^/(doc.html|webjar|api|swagger-resources|swagger-resources|v2/api-docs) {
proxy_pass http://127.0.0.1:7080;
proxy_set_header X-Forwarded-Port $server_port;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_redirect off;
}
error_page 404 /404.html;
# redirect server error pages to the static page /50x.html
#
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root /zcbus/nginx/html;
}
}
}
#启动nginx方法
/usr/local/nginx/sbin/nginx -c /zcbus/nginx/conf/nginx.conf
(如果配置没有问题,启动完成后,可以访问IP:PORT前端页面,也可能过PS -EF | GREP NGINX查看)
#停止nginx命令
killall nginx
1.6 安装zcbus
# 进入到软件解压目录(以实际解压路径为主,此处为演示路径)
cd /zcbus
sudo tar zxvf zcbus.tar.gz
#添加操作用户(根据现场情况做实际修改)
sudo useradd zcbus
sudo passwd zcbus
#切换至zcbus用户操作
su - zcbus
#修改目录属组
cd /zcbus/zcbus
sudo chown -R zcbus.zcbus /zcbus/zcbus
#修改环境变量(根据现场情况做实际修改)
vi profile
#!/bin/bash
#export NLS_LANG=american_america.zhs16gbk
export NLS_LANG=american_america.AL32UTF8
export ZCBUS_CLUSTERID=0
export ZCBUS_CONTAINER=zcbus
export ZCBUS_HOME=/opt/zcbus/zcbus
export ZCBUS_CACHE_PATH=${ZCBUS_HOME}/cache
export JAVA_HOME=/opt/zcbus/zcbus/jdk
export JRE_HOME=${ZCBUS_HOME}/jdk/jre
export PATH=${PATH}:${ZCBUS_HOME}/bin:${JAVA_HOME}/bin:${ZCBUS_HOME}/scripts
export IQDIR16="${ZCBUS_HOME}/lib/IQ-16_1"
export LD_LIBRARY_PATH="${ZCBUS_HOME}/lib/zc_lib/:${IQDIR16}/lib64"
export FREETDSCONF=${ZCBUS_HOME}/config/freetds.conf
#zfl:./soft/sql/zcbus.sql:20201007
db_url="192.168.182.6"
zookeeper_url="192.168.182.6:2181"
kafka_url="192.168.182.6:9092"
#修改数据库连接配置文件
vi config/zcbus_master.ini
clusterid=0
zcbus_host=192.168.71.153
zcbus_port=3306
zcbus_user=QFlYT0k6
zcbus_password=C0tbQBtre2A6
zcbus_db=zcbus
#配置api服务
sudo vi start_restapi.sh
export JAVA_HOME=/zcbus/zcbus/jdk
export JRE_HOME=${JAVA_HOME}/jre
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib:$CLASSPATH
export JAVA_PATH=${JAVA_HOME}/bin:${JRE_HOME}/bin
export PATH=$PATH:${JAVA_PATH}
export NGINX_VERSION=1.21.6
export NJS_VERSION=0.7.3
export TZ=Asia/Shanghai
export SPRING_PROFILE=prod
export LANG=zh_CN.UTF-8
export LC_ALL=zh_CN.UTF-8
#export DB_USER_PWD=ENC\(C0tbQBtre2A6\)
#export DB_USER_NAME=ENC\(QFlYT0k6\)
export DB_HOST=192.168.71.153
export DB_PORT=3306
export DB_NAME=zcbus
export DB_USER_NAME=ENC\(QFlYT0k6\)
export DB_USER_PWD=ENC\(C0tbQBtre2A6\)
ZCBUS_CUSTOMER_SIG=10435||f8911f94-1866-4fft-80fd-11t4ff94f654||http://v2.zbomc.com||8911f94-1866-4fft-80fd-11t4ff94f654
java -Dspring.profiles.active=${SPRING_PROFILE} -jar databus-api-1.0.0.jar
二、启动复制服务
服务启动有顺序要求,请严格遵守;
服务启动方式,日志存放目录,日志名称遵循现场生产环境配置而定!
2.1 启动mysql服务
sudo service mysqld start
2.2 启动zookeeper服务
cd /zcbus/kafka/
sudo sh sz.sh
#服务日志查看
sudo tail -f /zcbus/kafka/zookeeper.log
2.3 启动kafka服务
cd /zcbus/kafka/
sudo sh ss.sh
#服务日志查看
sudo tail -f /zcbus/kafka/kafka.log
2.4 启动nginx服务
- 注:使用zcbus账号执行
#启动nginx服务
sudo /usr/local/nginx/sbin/nginx -c /zcbus/nginx/conf/nginx.conf
#服务日志查看
tail -f /usr/local/nginx/logs/error.log
tail -f /zcbus/nginx/host.access.log
2.5 启动api服务
- 注:使用zcbus账号执行
#创建api服务日志文件存放路径
cd /zcbus/
sudo mkdir logs
sudo chown zcbus:zcbus logs
#启动api服务
cd /zcbus/zcbus
nohup sh start_restapi.sh > restapi.log 2>&1 &
#服务日志查看
tail -f restapi.log
2.6 启动zcbus服务
- 注:使用zcbus账号执行
cd /zcbus/zcbus/scripts
. ../profile
./start_container.sh
#验证进程状态
./check.sh
三、关闭复制服务
3.1 关闭zcbus服务
- 注:使用zcbus账号执行
#停止zcbus进程
cd /zcbus/zcbus/scripts
. ../profile
./stop_container.sh
#验证进程状态
./check.sh
3.2 关闭mysql服务
sudo service mysqld stop
3.3 关闭zookeeper+kafka服务
cd /zcbus/kafka
./stop.sh