金财项目是微服务构架,每一个功能模块都是一个单独部署的服务,现有20个服务:AUTH、CUSTOMER、EHALL、CONFIG、EUREKA、GATEWAY、GATEWAY-UI、GENERATOR、JCCOLLEGE、NOTIFY、ORDER、PAY、PRODUCT、REPORT、SECURITY、SYSTEM、STORE、TASK、WECHAT、WECHAT-AUTH,整个系统服务,在不断增长中。css
操做系统:Centos 7.2 x64html
应用环境:openresty-1.11.2.2(Nginx)、Mysql5.6.2七、RabbitMQ3.6.九、JDK1.8.1十二、Redis3.2.五、svn1.6.11java
安装前准备:mysql
yum install pcre pcre-devel openssl openssl-devel gcc gcc-c++ zlib zlib-devel postgresql-devel
下载openresty:linux
wget -P /usr/local/src http://192.168.200.141:8557/install/openresty-1.11.2.2.tar.gz
解压openresty:nginx
cd /usr/local/src
tar zxf openresty-1.11.2.2.tar.gz
编译安装:redis
./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配置:sql
vim /usr/local/openresty/nginx/conf/nginx.conf
#打开nginx配置文件,在http区域添加 include /usr/local/openresty/nginx/conf/vhost/*.conf;
安装前准备:shell
yum -y install gcc gcc-c++ autoconf automake zlib* fiex* libxml* ncurses-devel libmcrypt* libtool-ltdl-devel* cmake
下载mysql:apache
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
受权mysql用户并受权远程登陆:
mysql> create user 'dev'@'%' identified by '123';
Query OK, 0 rows affected (0.00 sec)
mysql> grant all privileges on dev.* to 'dev'@'%' identified by '123';
Query OK, 0 rows affected (0.00 sec)
mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)
修改root密码并受权远程登陆:
mysql> set password=password("2222!@#");
Query OK, 0 rows affected (0.00 sec)
mysql> grant all privileges on *.* to 'root'@'%' identified by '2222veewap!@#';
Query OK, 0 rows affected (0.00 sec)
下载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
安装前准备:
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
关闭redis,可是因为上面设置了密码,必需要认证成功后才能关闭 ,更新启动时最好手动关闭,不要kill 掉,以避免形成数据丢失
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为写权限
https://tortoisesvn.net/downloads.html
安装前准备:
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 '.*' '.*' '.*
SELinux和与其机制相似的系统可能会阻止RabbtMQ绑定相应端口,因此安装完以后须要确保一下端口能够打开:
rabbitmq-plugins enable rabbitmq_management
,访问http://server-name:15672/
Installing on RPM-based Linux(Port Access)
RabbitMQ~开篇与环境部署
RabbitMQ有一个默认的用户"guest",密码也是"guest",这个用户默认只能经过本机访问,eg:http://localhost:15672/
,在经过http访问以前记得启用management插件:
$rabbitmq-plugins enable rabbitmq_management
要让其余机器能够访问,须要建立一个新用户,为其分配权限。用户权限能够经过rabbitmqctl
执行相关命令来维护,rabbitmqctl是管理rabbitmq的命令行管理工具,下面介绍相关的命令:
rabbitmqctl set_user_tags chris administrator
,设置为管理员;rabbitmqctl set_user_tags chris
,清除chris与角色的关联。#用户列表查看 $sudo rabbitmqctl list_users Listing users guest [administrator] #添加用户 $sudo rabbitmqctl add_user chris 123 Creating user "chris" #为用户分配权限 $sudo rabbitmqctl set_user_tags chris administrator Setting tags for user "chris" to [administrator] #而后就能够经过http://host:15672 登陆management界面管理rabbitmq了,但此时用户chris尚未访问队列资源的权限
RabbitMQ客户端链接到一个服务端的时候,在它的操做指令中指定了一个虚拟主机。服务端首先检查是否有访问该虚拟主机的权限,没有权限的会拒绝链接。
对于exchanges和queues等资源,位于某个虚拟主机内;不一样虚拟主机内即使名称相同也表明不一样的资源。当特定操做在资源上执行时第二级访问控制开始生效。
RabbitMQ在某个资源上区分了配置、写和读操做。配置操做建立或者销毁资源,或者更改资源的行为。写操做将消息注入进资源之中。读操做从资源中获取消息。
要执行特定操做用户必须授予合适的权限。
下面介绍相关命令:
rabbitmqctl add_vhost test
rabbitmqctl set_permissions -p /myvhost chris "^chris-.*" ".*" ".*"
,这条指令,给用户chris在myvhost分配了权限,权限包括:以"chris-"开头的所有资源的配置权限,和全部资源的读写权限$sudo rabbitmqctl set_permissions -p / chris ".*" ".*" ".*" Setting permissions for user "chris" in vhost "/" #此时用户chris才有访问队列资源的权限
建立统一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