
架构:
两台服务器,两个实体IP,一个虚拟IP。
如下图所示,服务器正常运行时,KEEPALIVED主保证的Nginx的HA,Nginx的主负责两台的Tomcat服务器负载均衡,Redis的主负责Tomcat1和2的会话共享,MySql主主同步保证了数据的安全及稳定性。
当主节点的一个或者多个服务无法正常运行,甚至节点宕机时,备节点能立即接续主节点来执行业务从而实现业务的不中断或短暂中断。
优势:适合硬件有限的小规模集群,且能保证服务器的稳定,高可用运行可持续发展来看,集群规模可升级-麻雀虽小五脏俱全。
劣势:对业务的处理能力有限,毕竟服务器仅两台。

一,环境:
Centos:7.4
Java:jdk1.8.0_192
Tomcat:apache-tomcat-9.0.13
Nginx:nginx-1.15.8
Keepalived :Keepalivedv1.3.5
Redis:redis-5.0.3
Mysql:mysql-5.7.25 编译安装
Cmak:cmake-3.13.4
Boost:boost_1_59_0
1,需要Jar:
commons-pool2-2.4.2.jar
jedis-2.9.0.jar
tomcat-redis-session-manager.jar
2,依赖环境:
yum -y install gcc pcre-devel zlib-devel openssl-devel make gcc gcc-c++ ncurses-devel bison openssl-devel
3,服务器配置:
节点名称IP端口开放VIP
Master
10.200.36.166
80,1777,6000,3306
10.200.36.168
Backuo
10.200.36.167
80,1777,6000,3306
10.200.36.168
二,部署前准备:
1,上传数据包(双节点都需要实施)
下载所需的包,网址:https://download.csdn.net/download/clownwl/11006534
本人下载软件,一般只去该软件的官网下载,那怕给出的链接是官网的,我也不去点击,因为我担心该链接指向的资源版本太早。若没有安装,请登陆三星官网下载最新版本的kies3软件,此情况可能是电脑中缺少usb驱动,kies3下载链接如下:。上传进度结束后生成一个下载链接,请整理记录好这个链接,这个链接就是为你赚钱的,很快如果忘记了这个文件的链接,可以查看此文件外链。
下载好以后win7下ngnix mysql php的安装,通过winSCP、Xftp等工具将包上传到/opt/soft目录下(opt /soft)
并赋予该目录下所有文件/文件夹可执行权限(chmod -R 755 *)
2,测试环境,先关闭防火墙和SELinux
关闭SELinux
#setenforce 0
selinux [--disabled|--enforcing|--permissive]。server_port: 绑定的端口,注意不要设置已经使用了的端口,而且防火墙没有阻止,查看centos7使用firewalld打开关闭防火墙、端口。将selinux=enforcing 改为selinux=disabled。
#systemctl stop firewalld.service--关闭firewalld
3,配置163yum源或者阿里yum源(双节点都需要安装)
去 下载centos7的yum源。
备份原有yum源:
#mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup
更新生成新的缓存:
#yum clean all
#yum makecache
提前安装依赖包:
yum -y install make gcc-c++ cmake bison-devel ncurses-devel gcc \ 。yum -y install gcc gcc-c++ make automake autoconf libtool perl。yum install -y gcc gcc-devel gcc-c++ gcc-c++-devel make kernel kernel-devel。
三,安装JDK(双节点都需要安装)
1、快播3增强版虽然有解码组件检测功能,但安装前还是请您先卸载与快播3增强版功能类似的解码包及播放器,以保证较好的兼容性和全功能使用,强烈建议在卸载后重新启动windows系统再进行安装。卸载完成可以重新启动下,接着去使用驱动精灵或者驱动人生软件安装声卡驱动,我们可以百度搜索下“驱动精灵”找到下载地址,下载驱动精灵在电脑中后并且安装该软件,最后在驱动精灵软件中检测电脑中没有安装的驱动,找到音频驱动下载并且安装即可。,更新,卸载装置,更新卸载,安装,更新,卸载安装,更新卸载,安装,最后一次布告了新区找精英玩家qq群213533946yy83359739 有不宝宝商人mmm -〖问道〗教训交换,更新,卸载安装,更新卸载,安装,更新,卸载安装,更新卸载,安装,更新,卸载安装,更新卸载,安装,更新,卸载安装,更新卸载,安装,更新,卸载安装,更新卸载,安装,更新,卸载安装,更新:q:q:q安妮说的措施做了,也改了,也抉择只读了。
1,安装JDK:
#cd /opt/soft
#tar -zxvf jdk-8u192-linux-x64.tar.gz -C /opt/
#vim /etc/profile.d/jdk.sh
输入以下内容:

export JAVA_HOME=/opt/jdk1.8.0_192
export JRE_HOME=${JAVA_HOME}/jre
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib
export PATH=${JAVA_HOME}/bin:$PATH
检测:
#java -version
java version "1.8.0_192"
Java(TM) SE Runtime Environment (build 1.8.0_192-b12)
Java HotSpot(TM) 64-Bit Server VM (build 25.192-b12, mixed mode)
返回值若如上所示,说明安装成功
四,安装Nginx(双节点都需要安装)
1,安装nginx
#cd /opt/soft
#tar -xvf nginx-1.15.8.tar.gz
#cd nginx-1.15.8
#./configure
#make
#make install
#cd /usr/local/nginx/sbin
#./nginx -t检查nginx是否安装成功 若出现以下内容则表示安装成功
nginx: the configuration file /usr/local/nginx/conf/nginx.conf syntax is ok
nginx: configuration file /usr/local/nginx/conf/nginx.conf test is successful
2,配置nginx以实现负载均衡分发
#cd /usr/local/nginx/conf
#mv nginx.conf nginx.conf.bak --备份配置文件
#vim nginx.conf
主从节点配置文件一样:
user root;
worker_processes 2;
error_log /usr/local/nginx/logs/error.log info;
#指定pid存放文件
pid logs/nginx.pid;
events
{
use epoll; #epoll是多路复用IO(I/OMultiplexing)中的一种方式,但是仅用于linux2.6以上>内核,可以大大提高nginx的性能
worker_connections 1024; #单个后台worker process进程的最大并发链接数
}
http
{
upstream tomcat_pool
{
#server tomcat地址:端口号 weight表示权值,权值越大,被分配的几率越大;
server 10.200.36.166:8080 weight=4 max_fails=2 fail_timeout=30s;
server 10.200.36.167:8080 weight=4 max_fails=2 fail_timeout=30s;
}
server {
listen 80;
#charset utf-8
server_name 10.200.36.168;
location / {
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header REMOTE-HOST $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_pass http://tomcat_pool;
client_max_body_size 1000m;
proxy_cookie_path /scientific /;
proxy_set_header Cookie $http_cookie;
}
error_page 404 /404.html;
location = /40x.html {
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
}
}
}
五,安装keepalived(双节点都需要安装)
1,安装Keepalived(两种安装方式)
第一种(推荐):
#yum -y install keepalived
第二种:
#cd /opt/soft
#tar -zxvf keepalived-1.3.5.tar.gz
#cd keepalived-1.3.5
#./configure
#make
#make install
2,Keepalived主从节点配置
声明:以下两个配置文件中interface ens192这个参数,不同的节点用到的网络接口名会不同,具体请使用ifconfig查看当前IP对应的接口名。
#cd /etc/keepalived/
#vim /keepalived.conf
主节点配置文件:
! Configuration File for keepalived
global_defs {
notification_email {
xxx@xxx.cn
}
notification_email_from xxx@xxx.cn
smtp_server 127.0.0.1
smtp_connect_timeout 30
router_id LVS_DEVEL
}
vrrp_script chk_nginx {
#该脚本检测ngnix的运行状态,并在nginx进程不存在时尝
#试重新启动ngnix,如果启动失败则停止keepalived,准备让其它机器接管。
script "/opt/ha/check_nginx.sh"
#每1s检测一次
interval 1
# 检测失败(脚本返回非0则优先级2)
weight 2
}
vrrp_script chk_tomcat {
#该脚本检测ngnix的运行状态,并在nginx进程不存在时尝
#试重新启动ngnix,如果启动失败则停止keepalived,准备让其它机器接管。
script "/opt/ha/check_tomcat.sh"
#每1s检测一次
interval 1
# 检测失败(脚本返回非0则优先级2)
weight 2
}
#vrrp_script check_gateway {
# script "/opt/ha/check_gateway.sh"
# interval 5
# fall 4
# rise 4
# weight 3
#}
vrrp_instance VI_1 {
#指定keepalived的角色,MASTER表示此主机是主服务器,BACKUP表示此主机是备用服务器
state MASTER
# 指定HA监测的网络接口
interface ens192
# 虚拟路由标识,要求主从节点一致
virtual_router_id 55
# 优先级,在同一vrrp_instance下要求主节点的优先级高于从节点
priority 100
# 设定主从节点之间同步检查的时间间隔,单位是秒
advert_int 1
authentication {
# 设置验证类型,主要有PASS和AH两种
auth_type PASS
# 设置验证密码,在同一个vrrp_instance下,MASTER与BACKUP必须使用相同的密码才能正常通信
auth_pass 1111
}
virtual_ipaddress {
# 设置虚拟IP地址,可以设置多个虚拟IP地址,每行一个
10.200.36.168
}
track_script {
# 引用VRRP脚本,即在 vrrp_script 部分指定的名字。
# 定期运行它们来改变优先级,并最终引发主备切换。
chk_nginx
chk_tomcat
#chk_gateway
}
}
#virtual_server 10.200.36.168 3306 {
# delay_loop 6
# lb_algo wrr #lvs调度算法rr|wrr|lc|wlc|lblc|sh|dh
# lb_kind DR #负载均衡转发规则NAT|DR|RUN
# persistence_timeout 50
# protocol TCP
#
# real_server 10.200.36.166 3306 {
# weight 1
# notify_down /opt/ha/mysql.sh
# TCP_CHECK {
# connect_timeout 10
# nb_get_retry 3
# delay_before_retry 3
# connect_port 3306
# }
# }
#}
本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/jisuanjixue/article-111706-1.html
面对给中华民族带来史上最深重灾难的日本