简介
金财项目是微服务构架,每个功能模块都是一个单独部署的服务,现有20个服务:AUTH、CUSTOMER、EHALL、CONFIG、EUREKA、GATEWAY、GATEWAY-UI、GENERATOR、JCCOLLEGE、NOTIFY、ORDER、PAY、PRODUCT、REPORT、SECURITY、SYSTEM、STORE、TASK、WECHAT、WECHAT-AUTH,整个系统服务,在不断增加中。
系统架构图
环境准备
操作系统:Centos 7.2 x64
应用环境:openresty-1.11.2.2(Nginx)、Mysql5.6.27、RabbitMQ3.6.9、JDK1.8.112、Redis3.2.5、svn1.6.11
环境部署
openresty安装
安装前准备:
yum install pcre pcre-devel openssl openssl-devel gcc gcc-c++ zlib zlib-devel postgresql-devel
下载openresty:
wget -P /usr/local/src http://192.168.200.141:8557/install/openresty-1.11.2.2.tar.gz
解压openresty:
cd /usr/local/src
tar zxf openresty-1.11.2.2.tar.gz
编译安装:
./configure --prefix=/usr/local/openresty \
--with-luajit \
--with-http_iconv_module \
--with-http_postgres_module \
--with-http_stub_status_module \
--with-stream \
--with-stream_ssl_module \
make&&make install
nginx配置:
vim /usr/local/openresty/nginx/conf/nginx.conf
#打开nginx配置文件,在http区域添加 include /usr/local/openresty/nginx/conf/vhost/*.conf;
mysql安装
安装前准备:
yum -y install gcc gcc-c++ autoconf automake zlib* fiex* libxml* ncurses-devel libmcrypt* libtool-ltdl-devel* cmake
下载mysql:
wget -P /usr/local/src http://192.168.200.141:8557/install/mysql-5.6.27.tar.gz
解压mysql:
cd /usr/local/src
tar zxf mysql-5.6.27.tar.gz
编译安装:
cd mysql-5.6.27
cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql
make && make install
创建mysql账号:
useradd mysql -s /bin/nologin
mysql安装目录授权:
chown -R mysql.mysql /usr/local/mysql
chown -R mysql.mysql /data/mysql/
初始化mysqlDB:
/usr/local/mysql/scripts/mysql_install_db --user=mysql --basedir=/usr/local/mysql/ --datadir=/data/mysql/
设置系统服务开机启动:
cp /usr/local/mysql/support-files/mysql.server /etc/rc.d/init.d/mysql
cp /usr/local/mysql/support-files/my-default.cnf /etc/my.cnf
chkconfig --add mysql && chkconfig mysql on
service mysql start
添加PATH环境变量:
echo "export PATH=$PATH:/usr/local/mysql/bin" >> /etc/profile
source /etc/profile
安装JDK
下载JDK至/usr/local/src:
wget -P /usr/local/src http://192.168.200.141:8557/install/jdk-8u112-linux-x64.tar.gz
解压JDK:
cd /usr/local/src
tar zxf jdk-8u112-linux-x64.tar.gz
mv jdk1.8.0_112 ../jdk
设置JDK环境变量:
cat >> /etc/profile << ‘EOF‘
export JAVA_HOME=/usr/local/jdk
export CLASSPATH=$JAVA_HOME/lib
export JRE_HOME=$JAVA_HOME/jre
export PATH=$JAVA_HOME/bin:$PATH
EOF
JDK环境变量生效:
source /etc/profile
PS: http://192.168.200.141:8557/install/jdk-8u112-linux-x64.tar.gz此jdk包已经优化过,详情请看“微服务部署(五)JDK优化”
安装redis
安装前准备:
yum -y install gcc
下载redis:
wget -P /usr/local/src http://192.168.200.141:8557/install/redis-3.2.5.tar.gz
解压Rdedis:
cd /usr/local/src
tar zxf redis-3.2.5.tar.gz
编译安装redis:
cd redis-3.2.5
make MALLOC=libc
cd src/
make PREFIX=/usr/local/redis install
redis配置文件与命令路径:
mkdir /etc/redis/
cp redis.conf /etc/redis/
cd /usr/local/redis/bin/
cp redis-benchmark redis-cli redis-server /usr/bin/
redis以守护进程的方式运行:
daemonize yes #修改配置文件daemonize参数
redis密码认证配置:
#requirepass foobared
去掉行前的注释,并修改密码为所需的密码,保存文件
requirepass mypasswd
redis内网访问配置:
bind 192.168.1.101 #IP为实际环境内网IP
启动redis:
redis-server /etc/redis/redis.conf
安装svn
svn配合configServer使用,用于存放、同步金财系统服务配置文件,配置文件放在trunk目录下
使用yum安装:
yum - y install subversion
创建版本库目录:
mkdir /data/svn #根据实际情况创建目录
svnserve -d -r /data/svn #启动svn
···
创建版本库:
```shell
svnadmin create /data/svn/config
SVN用户密码配置:
cd /data/svn/config/conf
vim svnserve.conf
去掉password-db和authz-db前面的#号
vim passwd
在[users]段下
账户 = 密码 格式配置svn用户
svn权限配置:
vim authz
[/]为访问路径,这里表示根目录
r为读权限,w为写权限
安装svn客户端tortoisesvn (windows)
- 下载地址,根据操作系统选择:
https://tortoisesvn.net/downloads.html
- 桌面右键选择svn checkout:
url of repository为svn路径,如svn://IP:PORT/config
checkout directory为保存svn数据的目录 - 成功checkout后,进入目录创建trunk目录,把各项服务配置文件放入trunk目录
- 使用tortoisesvn增加trunk目录及配置文件,并提交:
a. 右键点击trunk目录选择tortoiseSVN->add
b. 右键点击trunk目录点击SVN commit
安装RabbitMQ
安装前准备:
yum -y install erlang socat
下载RabbitMQ至/usr/local/src:
wget -P /usr/local/src http://192.168.200.141:8557/install/rabbitmq-server-3.6.9-1.el6.noarch.rpm
rpm安装RabbitMQ:
cd /usr/local/src
rpm -ivh rabbitmq-server-3.6.9-1.el6.noarch.rpm
启动RabbitMQ:
service rabbitmq-server start
创建RabbitMQ用户&&赋予用户administrator角色:
rabbitmqctl add_user admin password
rabbitmqctl set_user_tags admin administrator
删除多余用户:
rabbitmqctl list_users #列出所有用户
rabbitmqctl delete_user username #删除创建之外的用户
列出虚拟主机:
对账号进行vhost授权:
rabbitmqctl set_permissions -p / admin ‘.*‘ ‘.*‘ ‘.*
后端部署
创建统一APP服务根目录:
mkdir /data/services -p
mkdir /data/logs
创建服务目录,所有服务目录均放在/data/services目录下,如:ehallServer为ehall服务的目录,bin为启动脚本的目录,lib为jar包存放目录,日志根据启动脚本放在logs目录或/data/logs下
cd /data/services
mkdir ehallServer/bin -p
mkdir ehallServer/lib -p
mkdir ehallServer/logs -p
在/data/services目录下,下载app环境变量脚本setEnv.sh,根据实际情况修改FTCSP_EUREKA_SERVER_URL和FTCSP_CONFIG_SERVER_URL的访问路径
cd /data/services
wget http://192.168.200.141:8557/script/setEnv.sh
安装各项服务
根据上文创建服务目录,并下载相应的app服务,下载地址:
http://192.168.200.141:8557/program
启动脚本的下载地址,若没有安装玖维监控则删除start.sh脚本中的MONITOR_PATH和-javaagent:$MONITOR_PATH:
wget http://192.168.200.141:8557/script/start.sh
启动app服务:
/data/services/服务目录名/bin/start.sh