nacos负载均衡怎么实现,综合项目:Keepalived+Redis+Haproxy实现主从热备、负载均衡、秒级切换

 2023-09-23 阅读 15 评论 0

摘要:Keepalived+Redis+Haproxy 群集 一、部署 Redis 群集 1.编译安装 Redis 1)创建群集目录 2)编辑配置文件 3)复制配置文件到每个实例 4)启动 Redis 实例 2.配置 Ruby 环境 1)安装 Ruby 工具 2)使用脚本安装 Redis 群集 3

Keepalived+Redis+Haproxy 群集
一、部署 Redis 群集
1.编译安装 Redis
1)创建群集目录
2)编辑配置文件
3)复制配置文件到每个实例
4)启动 Redis 实例
2.配置 Ruby 环境
1)安装 Ruby 工具
2)使用脚本安装 Redis 群集
3)查看群集状态
二、部署 Keepalived 实现主从热备、秒级切换
1.主调度器配置
2.备调度器配置
3.编写 Haproxy 状态检测脚本
4.开启服务,验证 VIP
三、部署 Haproxy 实现负载均衡
1.编译安装 Haproxy
2.配置 Haproxy 主配置文件
3.创建自启动脚本
4.配置 Haproxy 日志管理
四、访问验证

准备工作:
主机名 操作系统 IP地址 担任角色
master CentOS7 192.168.1.1 Redis-主
slave 192.168.1.2 Redis-从
haproxy1 192.168.1.3 Keepalived-主,Haproxy
haproxy2 192.168.1.4 Keepalived-从,Haproxy
实验所需软件包从这个链接下载:https://pan.baidu.com/s/1tbyUzeBI6vhYHWk92EGUwg
提取码:3wh6
一、部署 Redis 群集
1.编译安装 Redis
master slave 操作一致

[root@master ~]# ls
anaconda-ks.cfg redis-3.2.9.tar.gz
[root@master ~]# tar zxf redis-3.2.9.tar.gz -C /usr/src
[root@master ~]# cd /usr/src/redis-3.2.9/
[root@master redis-3.2.9]# make && make install
[root@master redis-3.2.9]# cd utils/
[root@master utils]# ./install_server.sh
依次回车即可
1
2
3
4
5
6
7
8
在这里插入图片描述

nacos负载均衡怎么实现、1)创建群集目录
master 上操作

[root@master ~]# /etc/init.d/redis_6379 stop
[root@master ~]# mkdir -p /redis_cluster/{6001…6003}
1
2
在这里插入图片描述
slave 上操作

[root@slave ~]# /etc/init.d/redis_6379 stop
[root@slave ~]# mkdir -p /redis_cluster/{6004…6006}
1
2
在这里插入图片描述

2)编辑配置文件
master 和 slave 不同之处在于监听地址不同

apache 负载均衡、[root@master ~]# vim redis.conf
bind 192.168.1.1 #slave 需要将 IP 地址改为 192.168.1.2
protected-mode yes
port 6001
tcp-backlog 511
timeout 0
tcp-keepalive 300
daemonize yes
supervised no
pidfile /redis_cluster/redis_6001.pid
loglevel notice
logfile /redis_cluster/6001/redis_6001.log
databases 16
save 900 1
save 300 10
save 60 10000
stop-writes-on-bgsave-error yes
rdbcompression yes
rdbchecksum yes
dbfilename dump.rdb
dir /redis_cluster/6001
slave-serve-stale-data yes
slave-read-only yes
repl-diskless-sync no
repl-diskless-sync-delay 5
repl-disable-tcp-nodelay no
slave-priority 100
appendonly no
appendfilename “appendonly.aof”
appendfsync everysec
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
3)复制配置文件到每个实例
master 上操作

[root@master ~]# cp redis.conf /redis_cluster/6001
[root@master ~]# cp redis.conf /redis_cluster/6002
[root@master ~]# cp redis.conf /redis_cluster/6003
[root@master ~]# sed -i ‘s/6001/6002/g’ /redis_cluster/6002/redis.conf
[root@master ~]# sed -i ‘s/6001/6003/g’ /redis_cluster/6003/redis.conf
1
2
3
4
5
在这里插入图片描述
slave 上操作

[root@slave ~]# cp redis.conf /redis_cluster/6004
[root@slave ~]# cp redis.conf /redis_cluster/6005
[root@slave ~]# cp redis.conf /redis_cluster/6006
[root@slave ~]# sed -i ‘s/6001/6004/g’ /redis_cluster/6004/redis.conf
[root@slave ~]# sed -i ‘s/6001/6005/g’ /redis_cluster/6005/redis.conf
[root@slave ~]# sed -i ‘s/6001/6006/g’ /redis_cluster/6006/redis.conf
1
2
3
4
5
6
在这里插入图片描述

4)启动 Redis 实例
master 上操作

redis负载均衡策略、[root@master ~]# redis-server /redis_cluster/6001/redis.conf
[root@master ~]# redis-server /redis_cluster/6002/redis.conf
[root@master ~]# redis-server /redis_cluster/6003/redis.conf
1
2
3
在这里插入图片描述
slave 上操作

[root@slave ~]# redis-server /redis_cluster/6004/redis.conf
[root@slave ~]# redis-server /redis_cluster/6005/redis.conf
[root@slave ~]# redis-server /redis_cluster/6006/redis.conf
1
2
3
在这里插入图片描述
查看 Redis 的进程和端口

[root@master ~]# ps -ef | grep redis | grep cluster
[root@master ~]# netstat -anpt | grep redis
1
2
在这里插入图片描述
在这里插入图片描述

2.配置 Ruby 环境
1)安装 Ruby 工具
master 上操作

redis负载均衡,[root@master ~]# yum -y install ruby rubygems
上传软件 redis-3.2.0.gem
[root@master ~]# gem install redis --version 3.2.0
1
2
3
2)使用脚本安装 Redis 群集
[root@master ~]# cd /usr/src/redis-3.2.9/src/
[root@master src]# ./redis-trib.rb create --replicas 1
192.168.1.1:6001 192.168.1.1:6002 192.168.1.1:6003
192.168.1.2:6004 192.168.1.2:6005 192.168.1.2:6006

Can I set the above configuration? (type ‘yes’ to accept): yes

1
2
3
4
5
6
7
3)查看群集状态
[root@master ~]# redis-cli -h 192.168.1.1 -p 6001 -c
192.168.1.1:6001> set xingming zhangsan
OK
192.168.1.1:6001> exit
[root@master ~]#
[root@master ~]# redis-cli -h 192.168.1.2 -p 6004 -c
192.168.1.2:6004> get xingming
-> Redirected to slot [1657] located at 192.168.1.1:6001
“zhangsan”
192.168.1.1:6001> exit
1
2
3
4
5
6
7
8
9
10
在这里插入图片描述

二、部署 Keepalived 实现主从热备、秒级切换
1.主调度器配置
[root@haproxy1 ~]# yum -y install keepalived
[root@haproxy1 ~]# vim /etc/keepalived/keepalived.conf
global_defs {
router_id Haproxy_1
}
vrrp_script chk_haproxy {
script “/etc/keepalived/check_haproxy.sh”
interval 2
weight 2
}
vrrp_instance VI_1 {
state MASTER
interface ens33
virtual_router_id 51
priority 100
advert_int 1
authentication {
auth_type PASS
auth_pass 123456
}
track_script {
chk_haproxy
}
virtual_ipaddress {
192.168.1.188/24
}
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
2.备调度器配置
[root@haproxy2 ~]# yum -y install keepalived
[root@haproxy2 ~]# vim /etc/keepalived/keepalived.conf
global_defs {
router_id Haproxy_2
}
vrrp_script chk_haproxy {
script “/etc/keepalived/check_haproxy.sh”
interval 2
weight 2
}
vrrp_instance VI_1 {
state BACKUP
interface ens33
virtual_router_id 51
priority 99
advert_int 1
authentication {
auth_type PASS
auth_pass 123456
}
track_script {
chk_haproxy
}
virtual_ipaddress {
192.168.1.188/24
}
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
3.编写 Haproxy 状态检测脚本
haproxy1 haproxy2 操作一致

[root@haproxy1 ~]# vim /etc/keepalived/check_haproxy.sh
#!/bin/bash
ps aux | grep haproxy
if [ $? -ne 0 ]
then
/usr/bin/systemctl stop keepalived
fi
[root@haproxy1 ~]# chmod +x /etc/keepalived/check_haproxy.sh
1
2
3
4
5
6
7
8
4.开启服务,验证 VIP
[root@haproxy1 ~]# systemctl start keepalived
[root@haproxy1 ~]# ip a
1
2
在这里插入图片描述

三、部署 Haproxy 实现负载均衡
haproxy1 haproxy2操作一致

consistency hash负载均衡?1.编译安装 Haproxy
挂光盘,并配置yum源

[root@haproxy1 ~]# yum -y install pcre-devel bzip2-devel #安装依赖包
[root@haproxy1 ~]# ls
anaconda-ks.cfg haproxy-1.5.19.tar.gz
[root@haproxy1 ~]# tar zxf haproxy-1.5.19.tar.gz -C /usr/src/ #解压到/usr/src/目录
[root@haproxy1 ~]# cd /usr/src/haproxy-1.5.19/
[root@haproxy1 haproxy-1.5.19]# make TARGET=linux26 && make install #安装 64 位系统
1
2
3
4
5
6
在这里插入图片描述

2.配置 Haproxy 主配置文件
[root@haproxy1 ~]# mkdir /etc/haproxy #创建配置文件目录
[root@haproxy1 ~]# vim /etc/haproxy/haproxy.cfg
global
log /dev/log local0 info
log /dev/log local1 notice
maxconn 4096
uid 99
gid 99
daemon
defaults
log global
mode http
option httplog
option dontlognull
retries 3
redispatch
maxconn 2000
contimeout 5000
clitimeout 50000
srvtimeout 50000
listen stats
bind *:8888
stats enable
stats hide-version
stats uri /haproxystats
stats realm Haproxy\ stats
stats auth admin:admin
stats admin if TRUE
listen redis
bind *:6379
mode tcp
balance roundrobin
server redis1 192.168.1.1:6001 check inter 2000 fall 3
server redis2 192.168.1.1:6002 check inter 2000 fall 3
server redis3 192.168.1.1:6003 check inter 2000 fall 3
server redis4 192.168.1.2:6004 check inter 2000 fall 3
server redis5 192.168.1.2:6005 check inter 2000 fall 3
server redis6 192.168.1.2:6006 check inter 2000 fall 3
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
3.创建自启动脚本
[root@haproxy1 ~]# cp /usr/src/haproxy-1.5.19/examples/haproxy.init /etc/init.d/haproxy
[root@haproxy1 ~]# chmod +x /etc/init.d/haproxy #添加可执行权限
[root@haproxy1 ~]# ln -s /usr/local/sbin/haproxy /usr/sbin/ #软链接,优化执行路径
[root@haproxy1 ~]# /etc/init.d/haproxy restart #启动 haproxy
1
2
3
4
在这里插入图片描述

4.配置 Haproxy 日志管理
[root@Haproxy1 ~]# vim /etc/rsyslog.d/haproxy.conf
if ($programname == ‘haproxy’ and KaTeX parse error: Expected 'EOF', got '&' at position 72: …proxy-info.log &̲ ~ if (programname == ‘haproxy’ and $syslogseverity-text == ‘notice’) then -/var/log/haproxy/haproxy-notice.log
& ~
[root@haproxy1 ~]# systemctl restart rsyslog
[root@haproxy1 ~]# /etc/init.d/haproxy restart
1
2
3
4
5
6
7
在这里插入图片描述

nat负载均衡,四、访问验证
使用浏览器访问:http://192.168.1.188:8888/haproxystats
在这里插入图片描述
在这里插入图片描述

版权声明:本站所有资料均为网友推荐收集整理而来,仅供学习和研究交流使用。

原文链接:https://hbdhgg.com/4/91427.html

发表评论:

本站为非赢利网站,部分文章来源或改编自互联网及其他公众平台,主要目的在于分享信息,版权归原作者所有,内容仅供读者参考,如有侵权请联系我们删除!

Copyright © 2022 匯編語言學習筆記 Inc. 保留所有权利。

底部版权信息