keepalived

keepalived 实现 Java 服务的高可用(主备切换)

只谈情不闲聊 提交于 2019-12-05 16:35:49
前言 本文要说的是基于 keepalived 实现两台服务器之间的 主备切换 ,从而实现 Java 服务的高可用。 keepalived 的原理不多做介绍,自行搜索了解, keepalived 的安装部署请参考 keepalived 的安装及使用 。 个人建议 不要沉迷于 死扣 和 理解 原理,网上关于原理的文章大同小异,关键词就是 虚拟ip ,了解个大概,动手实践下,结合 keepalived 的配置文件会更好。 项目描述 我所做的项目是不是一个 web 程序,主要功能是定时从文件服务器下载文件,然后做一些处理,放到本地。 需求 当一台服务器部署的 系统出现故障 时,能够有 备用机器 继续提供服务,尽量避免人工介入去恢复系统。注意跟 负载均衡 的区别!初步方案只提供一台备用机。 方案 1. 实现原理 keepalived 的配置文件中有 权重 和 STATE 两个配置项, 两台机器 上的 keepalived 通过 虚拟IP 绑定之后,它们之间就可以通过上述的配置项来进行 ”选举“ ,区分 MASTER 和 BACKUP 。 然后配合 keepalived 中另外的两个功能, 检测脚本 和 通知脚本 实现我们的主备切换的需求。 到底如何决定 MASTER 和 BACKUP ? STATE 的值可以是 MASTER 和 BACKUP ,当 两台机器配置的 STATE 的值相同

lvs+keepalived高可用集群

◇◆丶佛笑我妖孽 提交于 2019-12-05 12:11:58
LVS的三种包转发方式 NET方式(VS/NET模式) 请求和相应的包都要经过调度器因此网站访问量较大的时候负载均衡调度器可能down掉 NAT技术将请求的报文和响应的报文都需要通过LB进行地址改写,因此网站访问量比较大的时候LB负载均衡调度器有比较大的瓶颈,一般要求最多只能10-20台节点 缺点:延迟 隧道方式(VS/TUN模式) 调度器接受客户端请求报文转发给真实服务器(IP隧道方式),真实服务器直接将响应返回给客户端,这样调度器只用处理请求报文,减少了调度器的工作量。 直接路由方式(VS/DR模式) 跟隧道方式类似,不同点在于调度器将数据发送给RS是通过MAC地址转发的 (实际上是往整个局域网发送,但只有该MAC地址的RS才不会丢弃) 调度方式: 轮叫调度(轮询调度):RR 按依次循环的方式将请求调度到不同的服务器上 平均分配给每个服务器 加权轮叫调度:WRR 为每台服务器添加权值,权值越高处理的数据越多 最小连接调度:LC 将最新的请求分配到连接数最小的服务器,是一种动态调度算法 加权最小链接调度:WLC 根据每台服务器的性能设置权值,经可能使服务器的已建立连接数和其权值成比例。调度器可以自动问询真实服务器的负载情况,并动态地调整其权值。 基于局部的最少连接:LBLC 先找出这个请求的ip地址最近使用的服务器,如果这个服务器可用且没有有超载,则将请求发送给该服务器

nginx总结

て烟熏妆下的殇ゞ 提交于 2019-12-05 11:16:34
一:nginx可以实现反向代理,也可以实现动静分离、负载均衡: 1:具体配置如下所示: upstream :配置n台Tomcat服务器地址、权重等等配置信息 server:配置监听端口号、请求地址等配置信息 location:是在server里面的配置,主要是配置upstream等信息,也可以配置拦截静态文件如css、png、js等静态文件 2:nginx实现动静分离的目的:减少带宽的压力,减少对服务器端压力 expire参数配置的主要是作用是:让客户端缓存css等静态文件的时间,减少对nginx服务器的请求的压力 二:实现nginx高可用方案: 1:为了实现nginx高可用,实现方案是keepalived + nginx,keepalived在每台NGINX服务器上都是要安装的 keepalived虚拟地址就是可以访问的nginx域名地址,与nginx发送心跳,监测NGINX服务是否活着--》sh脚本 来源: https://www.cnblogs.com/jelly12345/p/11922026.html

RabbitMQ高可用配置(Haproxy + Keepalived)

久未见 提交于 2019-12-05 11:14:43
网络结构如下图: 共有104、105、106三台RabbitMQ Server,互为集群 其中104和105安装了Haproxy,每个Haproxy承担三台RabbitMQ server的负载均衡 两台Harpoxy采用Keepalived互为主备,VIP是172.16.0.108 操作系统为Ubuntu 以下介绍操作步骤: 1、三台主机安装RabbitMQ apt-get install rabbitmq-server 开启RabbitMQ management,激活控制台以方便MQ的管理与监控 sudo rabbitmq-plugins enable rabbitmq_management 开启监控后可以输入http://ip:15672可以登录管理界面,默认账户guest/guest 2、配置MQ集群 2.1 cookie文件 因为RabbitMQ的集群是通过Erlang的集群来实现的,所以,要求三台机器的 /var/lib/rabbitmq/.erlang.cookie 文件内容一致,用VI等工具将它的内容修改为 zHDCGETPYWOWREASJUAB 由于RabbitMQ在启动Booker时会检查该文件的权限,必须为400,否则会报错,所以要修改文件的权限 chmod 400 .erlang.cookie 2.2 修改各机器hosts 172.16.0.104 pzs

使用Keepalived+Nginx实现Nginx高可用的负载均衡

扶醉桌前 提交于 2019-12-05 10:18:32
接上一文章 <<CentOS 6.5高可用集群LVS+Keepalived>> 本文主要是配置Nginx、Keeplive,至于Nginx的配置就省略了 1、服务器规划 服务器IP   服务 192.168.80.77  VIP 192.168.80.188  Keepalived(Master)、Nginx(Backup) 192.168.80.189  Keepalived(Slave)、Nginx(Backup) 2、目标 所有的请求都通过1.77虚拟服务转发给1.188服务器,而189作为188的备份,当188服务挂掉了,自动切换到189 3、Nginx配置 安装省略......,Nginx 安装目录:/usr/local/nginx 1) 188、189配置index.html来区分是哪台nginx工作: 在188上配置: echo "192.168.80.188" > /usr/local/nginx/html/index.html 在189上配置 echo "192.168.80.189" > /usr/local/nginx/html/index.html 验证方法: 1)、首先用IP访问各自的nginx,看index.html页面内容是否为当前服务器的IP地址 2、 配置keepalived 按照上面的安装方法,keepalived的配置文件在 /etc

keepalived 安装及使用

折月煮酒 提交于 2019-12-05 09:58:56
两点说明 本文不讲 keepalived 的工作机制及原理 个人实验采用的源码安装的方式进行的安装,比较麻烦。 通过 yum 安装会更快,方法如下: yum install keepalived 启动/关闭/重启/查看状态 systemctl start/stop/restart/status keepalived 编辑配置文件 vi /ect/keepalived/keepalived.conf 因此采用 yum 安装可以直接跳到 第 5 步。 注意: 不管是哪种方式安装,关注点在 配置文件 和 启动脚本的位置。 1. 下载源码包 wget https://www.keepalived.org/software/keepalived-1.2.16.tar.gz 2. 安装 mkdir keepalived-1.2.16 tar -zxvf keepalived-1.2.16.tar.gz -C keepalived-1.2.16 cd keepalived-1.2.16 ./configure 如果出现如下错误 configure: error: !!! OpenSSL is not properly installed on your system. !!! !!! Can not include OpenSSL headers files. !!! 解决办法: yum -y

Nginx+keepalived配置实现nginx服务器高可用

▼魔方 西西 提交于 2019-12-05 06:35:11
前一篇帖子里,把nginx在linux里的安装部署搞完了,现在接着安装配置keepalived。 1、keepalived主要用来防止服务器单点故障。简单来说,需要在两台nginx服务器上都安装上keepalived,设置为一主一备(或者多台备份服务器),主服务器工作,备份服务器不工作;当主服务器故障时,备份服务器根据预设规则选举出一台新的主服务器顶上,直到原来的主服务器活过来。对于客户端来说,直接访问的ip地址并不是主服务器或者备份服务器的ip,而是一个虚拟ip,这样不管哪台服务器出现故障,只要还有一台服务器可用,客户端是感知不到的。keepalived是通过实现VRRP协议来达到这个效果的,具体可自行百度。 2、nginx服务器两台:172.16.170.41(备份)、172.16.170.41(主),通过keepalived虚拟对外的服务地址172.16.170.43 3、安装keepalived:网上帖子一大把,参考这个照做即可: https://www.cnblogs.com/yaboya/p/9107442.html 。不过我的配置更简单,暂时没有涉及到检测nginx服务的死活、以及发生故障时邮件发送设置等内容。 4、安装完了修改配置文件:vi /etc/keepalived/keepalived.conf      参数说明:   router_id:服务器的路由标识

mysql双主+keepalived架构

让人想犯罪 __ 提交于 2019-12-05 06:15:44
架构展示 操作系统 centos6.5 数据库 mysql5.7 master1 10.0.254.148 master2 10.0.254.147 VIP 10.0.254.88 (keepalived) 最好在自己的内网VIP 一、创建操作系统 centos6.5 关闭selinux 关闭防火墙 iptables 二、每台机器都安装数据库 编译安装 不作介绍需要配置/etc/my.cnf 文件 master1的my.cnf 文件配置 启动mysql /etc/init.d/mysqld start master2的my.cnf文件配置 启动mysql /etc/init.d/mysqld start 完成以上操作之后,需要对两台机器做权限分配以及主主配置 需要同时进行配置两台机器 grant replication slave,replication client on *.* to guoshang@'%' identified by '1qaz!QAZ1qaz'; flush privileges; flush tables with read lock; 锁表 show master status; 查看master情况 +------------------+----------+--------------+------------------+-----------

keepalived

喜夏-厌秋 提交于 2019-12-05 04:12:30
keepalived 保持在线状态,也就是所谓的高可用或热备,它集群管理中 保证集群高可用的一个服务软件 ,其功能类似于heartbeat,用来防止 单点故障 (单点故障是指一旦某一点出现故障就会导致整个系统架构的不可用)的发生。VRRP协议这个协议就是keepalived实现的基础 VRRP https://www.cnblogs.com/betterquan/p/11903616.html 简单了解就是 1)VRRP是用来实现路由器冗余的协议。 2)VRRP协议是为了消除在静态缺省路由环境下路由器单点故障引起的网络失效而设计的主备模式的协议,使得发生故障而进行设计设备功能切换时可以不影响内外数据通信,  不需要再修改内部网络的网络参数。 3)VRRP协议需要具有IP备份,优先路由选择,减少不必要的路由器通信等功能。 4)VRRP协议将两台或多台路由器设备虚拟成一个设备,对外提供虚拟路由器IP(一个或多个)。然而,在路由器组内部,如果实际拥有这个对外IP的路由器如果工作正常的话,  ·就是master,或者是通过算法选举产生的,MASTER实现针对虚拟路由器IP的各种网络功能,如ARP请求,ICMP,以及数据的转发等,其他设备不具有该IP,状态是BACKUP。  除了接收MASTER的VRRP状态通告信息外,不执行对外的网络功能,当主级失效时

第十五周作业

╄→гoц情女王★ 提交于 2019-12-05 00:28:38
1、 Nginx+Keepalived实现站点高可用 答: keep_1#] yum –y install keepalived s1_#] vim /etc/keepalived/keepalived.conf ! Configuration File for keepalived global_defs { notification_email { root@localhost } notification_email_from keepalived@localhost smtp_server 127.0.0.1 smtp_connect_timeout 30 router_id node1 vrrp_mcast_group4 224.0.100.19 } vrrp_instance VI_1 { state MASTER interface eno16777736 virtual_router_id 14 priority 100 advert_int 1 authentication { auth_type PASS auth_pass 571f97b2 } virtual_ipaddress { 10.1.0.90/16 dev eno16777736 } } keep_2#] yum –y install keepalived s1_#] vim /etc