学习笔记:微服务-16 nginx+keepalived +zuul 实现高可用及负载均衡

栏目: 服务器 · 发布时间: 5年前

内容简介:在上节文章实现了nginx + zuul实现微服务高可以 ,实现原理图片如下

在上节文章 https://blog.csdn.net/oLinBSoft/article/details/85418953 学习笔记:微服务-8 nginx+zuul 实现高可用负载均衡 

实现了nginx + zuul实现微服务高可以 ,实现原理图片如下

学习笔记:微服务-16 nginx+keepalived +zuul 实现高可用及负载均衡

在这个图中,还是存在单点故障问题,就是ngnix服务只有一台,如何避免这个单点故障呢,可以采用 nginx+keepalived的双机热备 方式实现。

原理图如下:

学习笔记:微服务-16 nginx+keepalived +zuul 实现高可用及负载均衡

就是dns解析的ip,指向到一个虚拟的ip上,通过keepalived 软件,一个Master 一个slave 两台都虚拟ip192.168.41.148 但只有一个激活虚拟ip对外服务,两个keepalived会相互检测心跳,当主服务器ip宕机时,备份服务器自动激活虚拟ip,接替虚拟ip的工作。即在同一时刻只有一个192.168.41.148.

安装配置,两台服务器分别安装

1. 两台服务器都安装keepalived 和 nginx

安装nginx参见前文,安装keepalived:

yum install keepalived

2.配置

vim /etc/keepalived/keepalived.conf

! Configuration File for keepalived

global_defs {

notification_email {

}

router_id LVS_DEVEL

vrrp_skip_check_adv_addr

vrrp_strict

vrrp_garp_interval 0

vrrp_gna_interval 0

}

vrrp_instance VI_1 {

state MASTER     #    备份服务器是SLAVE

interface ens33      #注意这个是网卡名称

virtual_router_id 51    # master 和 slave 要相同

priority 100      # 优先值 master 和 slave 要不相同

advert_int 1

authentication {

auth_type PASS

auth_pass 1111

}

virtual_ipaddress {

192.168.49.148      #可以有多个虚拟ip

}

}

3. 启动

systemctl  start keepalived

4.启动后查看主服务器的ip

命令 ip addr

学习笔记:微服务-16 nginx+keepalived +zuul 实现高可用及负载均衡

启动keepalived 在主服务器看见ip:192.168.49.148,关闭主服务器的keepalived 可以看到备份服务器上会激活ip:192.168.49.148,可以达到服务不中断

5. 可以进一步配置定时检查是否nginx意外停止服务,这是在ip是可用的,但nginx不可用的情况下,需要另外处理

(1)创建文件 /opt/chk_nginx.sh

#!/bin/bash

while true

do

counter=$(ps -C nginx --no-heading|wc -l)

if [ "${counter}" = "0" ]; then

/sbin/nginx

sleep 4

counter=$(ps -C nginx --no-heading|wc -l)

if [ "${counter}" = "0" ]; then

systemctl stop keepalived

fi

fi

sleep 4

done

该脚本检测nginx的运行状态,并在nginx进程不存在时尝试重新启动nginx,如果启动失败则停止keepalived,让其它机器接管。

(2)修改为可执行:

chmod 755 /opt/chk_nginx.sh

sh /opt/chk_nginx.sh

(3)让 /opt/chk_nginx.sh 开机在后台执行

这样,其中一个主机宕机或nginx软件宕机都能触发相应处理程序,实现IP漂移。

参考: https://blog.csdn.net/xyang81/article/details/52556886/ Keepalived+Nginx实现高可用(HA)

http://blog.51cto.com/superpcm/2095395 Nginx+Keepalived高可用集群


以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

连线

连线

加里·沃尔夫 / 黄锫坚 / 中国铁道出版社 / 2006-7 / 29.80元

简言之,是一个人和一本杂志的传奇……   放在大环境中,是一个时代的跌宕起伏……   一直大力地向所有人推荐这本书,只是因为,故事真的很精彩,是一个伟大而疯狂的时代所造就的一个不屈不挠的斗士——路易斯·罗塞托,还有这本举世皆知的杂志——《连线》。   通过本书,中国读者会知道,新经济热潮的主角不仅是比尔·盖茨、杨致远等技术和商业能人,还有一大批新文化的传教士和吹鼓手,比如路易斯·......一起来看看 《连线》 这本书的介绍吧!

Base64 编码/解码
Base64 编码/解码

Base64 编码/解码

XML、JSON 在线转换
XML、JSON 在线转换

在线XML、JSON转换工具

HEX HSV 转换工具
HEX HSV 转换工具

HEX HSV 互换工具