集群环境搭建

编辑
文档创建者:jiangsr (98668 )     浏览次数:1265次     编辑次数:10次     最近更新:jiangsr 于 2018-11-19     

目录:

1. windows系统编辑

1.1 安装软件

这里测试的win7+jdk1.8+tomcat8.0+mysql5.5.29+redis3.2+nginx1.13.12+ftp,安装步骤如下:

1)安装mysql

10.0刚开始进入平台的时候就会让用户选择使用内置数据库还是外置数据库,现在10.0的很多配置信息也会存到数据库里面,使用外接数据库可以保证各个节点平台配置之间的同步

2)安装redis

主要用于存储登录、sessionid、模板锁等信息,这样可以解决session同步的问题。

3)安装ftp、设置ftp用户名密码

用于共享模板、地图资源、一些配置文件等信息,比如都从ftp上去读取模板,也就解决了模板不同步的问题了

4)安装jdk+tomcat+nginx

nginx为反向代理,用于转发以及实现节点间的负载均衡

注:安装过程请百度,这里就不详细介绍了。

安装好软件后,需要修改一些配置,如下所示:

1.2 修改mysql配置

1)mysql开启远程连接设置:

首次登录:mysql -uroot -p123456

grant all privileges on *.* to 'root'@'%' identified by '123456'; flush privileges;

2)防止中文乱吗,修改默认字符集为utf-8

找到my.ini文件中修改:

[mysql] default-character-set=utf8 [mysqld] character-set-server=utf8

222

1.3 修改redis配置

启动后本机客户端可以连接访问,但是外部主机一直访问不了,那么需要修改:

1)默认的bind接口是127.0.0.1,也就是本地回环地址,这样的话,访问redis服务只能通过本机的客户端连接,而无法通过远程连接,因此需要添加bind 0.0.0.0

2)关闭protected-mode模式,默认是yes开启,改成no关闭

注:有些情况加了 bind 0.0.0.0 redis会起不来,此时修改成:“bind 127.0.0.1”前面加上#注释。

如下所示,修改redis.windows-service.conf

bind 127.0.0.1 ===》# bind 127.0.0.1

protected-mode yes ===》 protected-mode no

222

1.4 修改nginx配置

Nginx在负载均衡功能中,用于判断后端节点状态,用到两个参数fail_timeoutmax_fails

Nginx基于连接探测,如果发现后端异常,在单位周期为fail_timeout设置的时间,中达到max_fails次数,这个周期次数内,如果后端同一个节点不可用,那么接将把节点标记为不可用,并等待下一个周期(同样时常为fail_timeout)再一次去请求,判断是否连接是否成功。

默认:fail_timeout为10s,max_fails为1次。

注:支持多个机器多个tomcat,一个tomcat就是一个节点。

这里测试的是两台机器上分别有一个tomcat,如下所示:

    IPhttp端口   shutdown端口  ajp端口 
  节点1192.168.1.131    18080  18005  18009
  节点2192.168.1.163  18080  18005  18009

所有集群启动完成后,配置nigix完成所有的集群配置:

注:websocket端口需要单独配置转发并且单独配置upstream server;转发websocket时需要加入这两行,并且upstream server中需要开启ip_hash选项。

修改nginx.conf配置文件,代码如下:

#tomcat的各节点: upstream lb { server 192.168.1.131:18080 max_fails=5 fail_timeout=200s; server 192.168.1.163:18080 max_fails=5 fail_timeout=200s; } #websocket的各节点: #这里加了ip_hash,就可以写多个节点 upstream lbs { server 192.168.1.131:38888 max_fails=5 fail_timeout=1000s; server 192.168.1.163:38888 max_fails=5 fail_timeout=1000s; ip_hash; } #http端口的监听: server { listen 80; server_name 192.168.1.163; location / { #如果最后访问nginx端口的fs时遇到报错“Nginx 502 Bad Gateway ”,可以在下面增大缓冲区设置: ###############添加这3行 proxy_buffer_size 64k; proxy_buffers 32 32k; proxy_busy_buffers_size 128k; ###############添加这3行 proxy_http_version 1.1; proxy_set_header Connection ""; proxy_set_header Host $host:80; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_pass http://lb; proxy_next_upstream http_500 http_502 http_503 error timeout invalid_header; } } #websocket端口的监听(默认为38888): #这边要是配了非默认的38888,在数据库就需要手动增加一个字段,如下(2) server { listen 38885; server_name 192.168.1.163; location / { proxy_pass http://lbs; proxy_connect_timeout 600; proxy_read_timeout 600; proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "upgrade"; } }
在finedb数据库的fine_conf_entity表中添加两行字段:WebSocketConfig.requestPortWebSocketConfig.port,如下:
222
这里WebSocketConfig.requestPort的端口应与nginx.conf里配置的websocket监听端口一致
注:在linux下如果启动时web服务器时发现websocket服务器没有正确启动,可能需要开放端口,如下:
iptables -A INPUT -ptcp --dport 38888 -j ACCEPT

1.5 修改tomcat配置

1)tomcat设置IPV4

打开%Tomcat_HOME%/bin/catalina.bat添加这一行设置IPV4:set "JAVA_OPTS=%JAVA_OPTS% -Djava.net.preferIPv4Stack=true %JSSE_OPTS%"

222

2)tomcat配置CATALINA_HOME环境变量

打开%Tomcat_HOME%/bin/startup.bat在文件开头添加SET CATALINA_HOME=C:\cluster10\tomcat1

222

3)修改首页标记

打开%Tomcat_HOME%/webapps/ROOT/index.jsp,修改两个tomcaturl分别为Home111和Home222,用来区分两个首页,如下图:

222

配置完成后,重启nginx(若没有启动过,直接启动即可),如下图:

222

再启动两个tomcat,然后访问http://192.168.1.131,刷新页面,就可以不断访问192.168.1.131上的tomcat和192.168.1.163上的tomcat。

222

至此,windows集群环境就已经搭建好了,之后在决策系统中进行集群配置

2. linux系统编辑

同windows

这里测试的centots6.9+jdk1.8+tomcat8.0+nginx1.13+redis3.2,安装步骤如下:

2.1 安装jdk1.8

1)检查并删除已有Jdk (可以不删除)

2)下载安装jdk

[root@livedvd soft]# getconf LONG_BIT //查看系统位数,下载对应的jdk 32 [root@livedvd soft]# wget --no-check-certificate --no-cookies --header "Cookie: oraclelicense=accept-securebackup-cookie" http://download.oracle.com/otn-pub/java/jdk/8u171-b11/512cd62ec5174c3487ac17c61aaa89e8/jdk-8u171-linux-i586.rpm //下载对应的安装包,oracle上面在下载页面还要选择同意协议,但Linux无法选择,因此需要通过参数来避免用户验证(红字部分) [root@livedvd soft]# rpm -ivh jdk-8u171-linux-x64.rpm [root@localhost software]# java -version //查看是否安装成功 java version "1.8.0_171" Java(TM) SE Runtime Environment (build 1.8.0_171-b11) Java HotSpot(TM) Client VM (build 25.171-b11, mixed mode, sharing)

3)配置环境变量

其实安装完jdk-7u45-linux-x64.rpm后不用配置环境变量也可以正常执行javac、java –version操作,因此一般情况下没有必备进行JDK环境变量的配置。如果想配也可以配下。

2.2 安装tomcat

[root@localhost software]# wget http://mirrors.shu.edu.cn/apache/tomcat/tomcat-8/v8.5.31/bin/apache-tomcat-8.5.31.tar.gz [root@localhost software]# tar -zxvf apache-tomcat-8.5.31.tar.gz [root@localhost software]# mv apache-tomcat-8.5.31 tomcat8.5

1)防火墙开放8080端口

查看开启的端口

[root@localhost bin]# /etc/init.d/iptables status

新增8080端口

[root@localhost bin]# iptables -I INPUT -p tcp --dport 8080 -j ACCEPT

保存防火墙规则

[root@localhost bin]# /etc/init.d/iptables save

重启防火墙

[root@localhost bin]# /etc/init.d/iptables restart

2)启动tomcat

[root@localhost bin]# ./startup.sh 

这样其他机器就可以访问这个tomcat了,如下图:

222

3)配置

同windows

打开%Tomcat_HOME%/bin/catalina.sh中添加这一行设置IPV4:JAVA_OPTS="$JAVA_OPTS -Djava.net.preferIPv4Stack=true"

修改首页标记

打开%Tomcat_HOME%/webapps/ROOT/index.jsp,修改两个节点的tomcaturl分别为Home111和Home222,用来区分两个首页,如下图:

222

2.3 安装nginx

1)安装依赖软件

yum -y install gcc gcc-c++ autoconf automake make yum -y install zlib zlib-devel openssl openssl-devel pcre pcre-devel

2)下载nginx

wget http://nginx.org/download/nginx-1.13.7.tar.gz

解压

tar zxvf nginx-1.13.7.tar.gz

创建安装目录(也可以使用已有的目录)

mkdir -p /usr/local/nginx

修改配置

cd nginx-1.13.7 ./configure --prefix=/usr/local/nginx 

安装

make && make install

进入nginx目录,再启动nginx

cd /usr/local/nginx/sbin ./nginx

防火墙开放80端口,保存并重启防火墙

iptables -I INPUT -p tcp --dport 80 -j ACCEPT /etc/init.d/iptables save /etc/init.d/iptables restart

到这里nginx安装启动成功,如下图:

222

停止nginx

./nginx -s stop

重启nginx

./nginx -s reload

3)配置

修改nginx/conf/nginx.conf配置文件,同windows一样

到这里,nginx+tomcat集群配置完成。

2.4 安装redis

1)依赖包和常用包

yum install gcc gcc-c++ make zlib-devel readline readline-devel tkutil tk tkutil-devel tk-devel openssl openssl-devel wget vim ntp -y

2)下载redis

wget http://download.redis.io/releases/redis-3.2.9.tar.gz

解压redis 

tar -zxvf redis-3.2.9.tar.gz

重命名redis

mv redis-3.2.9 /usr/local/redis

3)编译安装redis

cd /usr/local/redis make & make install

4)进入目录启动

cd src/ ./redis-server /usr/local/redis/redis.conf

5)使用redis-cli客户端检测连接是否正常

在redis的根目录,执行./src/redis-cli

127.0.0.1:6379> set key "hello world" OK 127.0.0.1:6379> get key "hello world" 127.0.0.1:6379> exit

222

6)修改配置文件

修改根目录下的redis下的redis.conf

bind 127.0.0.1 ===》 # bind 127.0.0.1

protected-mode yes ===》protected-mode no

daemonize no ===》 daemonize yes  //默认以后台程序方式运行,不需要加&强制后台运行了

222

7)查看reids 是否在运行

ps aux | grep redis

如果redis-server服务正在后台运行,那么需停止redis-server服务: 

正常停止redis-server服务,使用reids 客户端命令: redis-cli shutdown

如果停止不了,则采取杀死进程的方式:kill -9 PID 

redis 的启动 

redis 安装成功之后,会生成相应的reids 命令文件, 所有的命令都在src 目录下,同时会再/usr/local/bin目录下生成reids-* 的几个命令,这样我们在调用redis 的相关命令的时候可以不使用绝对路径.启动reids 有很多中方式,后台启动,脚本启动等。

edis 后台启动:redis-server &

按ctrl + C 可退出redis 启动窗口,此时redis 并不会关闭,而是会再后台运行,可通过命令查看: ps aux | grep redis 

2.5 安装mysql

1)卸载自带的mysql

yum localinstall mysql-5.5.60-linux-glibc2.12-i686 yum list | grep mysql

2)增加两个repo

rpm -Uvh http://mirror.steadfast.net/epel/6/i386/epel-release-6-8.noarch.rpm rpm -Uvh http://rpms.famillecollet.com/enterprise/remi-release-6.rpm

3)安装mysql5.5

yum --enablerepo=remi,remi-test list mysql mysql-server yum --enablerepo=remi,remi-test install mysql mysql-server

启动mysql

/etc/init.d/mysqld start

要启用MySQL 安全设置请输入以下命令

/usr/bin/mysql_secure_installation

一路yes

4)防火墙开放3306端口

iptables -I INPUT -p tcp --dport 3306 -j ACCEPT /etc/init.d/iptables save /etc/init.d/iptables restart

5)mysql开启远程连接设置

首次登录:mysql -uroot -p123456

grant all privileges on *.* to 'root'@'%' identified by '123456'; flush privileges;

6)新建一个空的数据库,到时候hsql迁移到这个数据库中

create database test;
至此,linux环境就搭建好了,之后在决策系统中进行集群配置

附件列表


主题: 性能优化
标签: 暂无标签 编辑/添加标签
如果您认为本文档还有待完善,请编辑

文档内容仅供参考,如果你需要获取更多帮助,付费/准付费客户请咨询帆软技术支持
关于技术问题,您还可以前往帆软社区,点击顶部搜索框旁边的提问按钮
若您还有其他非技术类问题,可以联系帆软传说哥(qq:1745114201

此页面有帮助吗?只是浏览 [ 去社区提问 ]