8.Heartbeat实现web服务的高可用案例

8.1部署准备

通过web服务高可用案例来熟悉heatbeat软件的使用,用上面的两台服务器机器名分别为heartbeat-1-130和heartbeat-1-129

8.2 安装配置http服务(两台机器都要安装)

yum install httpd -y

8.3 配置httpd启动脚本

两台机器上分别拷贝httpd启动脚本到/etc/ha.d/resource.d/下,并确保可执行权限。

[root@heartbeat-1-130 html]# cp /etc/init.d/httpd /etc/ha.d/resource.d/

Heartbeat控制的脚本要求:

(1)脚本路径要放入/etc/init.d/httpd或/etc/ha.d/resource.d/

(2)脚本执行需要以/etc/init.d/httpd start/stop方式

(3)脚本具备可执行权限

(4)/etc/init.d/httpd名字要和haresources上设置的一样

8.4 修改haresource配置文件

设置httpd服务开机不启动并停止httpd服务让heartbeat负责启动和停止httpd服务。

[root@heartbeat-1-130 html]# chkconfig httpd off
[root@heartbeat-1-130 html]# /etc/init.d/httpd stop
停止 httpd: [确定]

修改haresource文件(两台机器都要修改)

[root@heartbeat-1-130 ha.d]# cat haresources
heartbeat-1-130 IPaddr::192.168.1.131/24/eth0:1 httpd

httpd为heartbeat监控的服务,也是两台机器对外提供的核心服务。

9. 有关heartbeat调用资源的生产场景应用

在工作中,有两种方法实现高可用问题:

(1)heartbeat可以仅控制vip资源的漂移,不负责服务资源的启动和停止。这种方式适合web服务。

(2)heartbeat即控制vip资源的漂移,同时又负责服务资源的启动及停止,及ip和服务要切换都切换,这种方式适合数据服务。VIP正常,httpd服务器宕了,这个时候不会做高可用切换。写一个脚本或守护进程判断httpd服务。如果有问题,则停止heartbeat主动使其上的业务切换到另一台。

10 heartbeat和keepalived的应用场景和区别

(1)对于一般的web、db、负载均衡(nginx,haproxy)等等,heartbeat和keepalived都可以实现。

(2)Lvs负载均衡和keepalived结合,虽然heartbeat也可以调用带有ipvsadm命令的脚本来启动和停止lvs负载均衡,但是heartbeat本身并没有rs的检查功能,这个缺陷可以通过Idircetord插件来弥补。

(3)需要数据同步(配合drbd)的高可用业务最好用heartbeat列如:mysql双主多从,NFS/MFS存储,他们的最大特点是需要数据同步,这样的业务最好用heartbeat,因为heartbeat自带了drbd的脚本。

11. Heartbeat服务生产环境下的恢复要点

每天可能都有一些需求,新项目上线或者VIP更改需求时,可能会进行添加修改服务VIP的操作。我们就以heartbeat+haproxy/nginx高可用负载均衡为例,来学习一下生产环境下的维护方法。
所有配置文件放到SVN,更改之后提交SVN对比,推送到正式环境。

(1)在修改配置文件前执行/etc/init.d/heartbeat stop或/usr/lib64/heartbeat/hb_standby(此命令最好)把本机命令推送到备节点工作,当确认备节点工作正常后,开始修改本地的配置,修改好后执行/etc/init.d/heartbeat start把资源服务接管回来。在把业务推送到备节点时及修改配置接管回服务器时都要立即服务是否正常,特别是所有的VIP(新的旧的)是否启动OK,URL地址是不是能够打开,这个检查过程可以写成脚本放在hearbeat服务启动脚本的参数里。

(2)先设置要添加的VIP,添加ip别名。设置成功了再修改haresources配置文件,修改新添加的VIP。在夜里或业务量比较低的情况下重新启动heartbeat当然要把以前的旧的VIP停掉。

学习heartbeat-03t实现web服务的高可用案例及维护要点的更多相关文章

  1. keepalived+httpd 做web服务的高可用

    场景: 环境中有两台httpd服务器,一台做主,一台做备用:平时只用主向外提供http服务:当主宕机后,keepalived把vip绑定到备机上去,这样就由备机提供http服务了. **keepalv ...

  2. (转)Heartbeat+DRBD+NFS高可用案例

    原文:http://9861015.blog.51cto.com/9851015/1939521--------------------------------Heartbeat+DRBD+NFS高可 ...

  3. 浅谈web应用的高可用

    1.熟悉几个组件 1.1.apache     —— 它是Apache软件基金会的一个开放源代码的跨平台的网页服务器,属于老牌的web服务器了,支持基于Ip或者域名的虚拟主机,支持代理服务器,支持安全 ...

  4. 使用redis实现程序或者服务的高可用

    使用redis实现程序或者服务的高可用,就是将某一程序或服务部署在不同服务器上,或者是跨机房部署,当运行服务的服务器挂了之后,其他服务器上的该服务能立马顶上,这里我简单的使用redis实现这一目的. ...

  5. CentOS 6.5使用Corosync + pacemaker实现httpd服务的高可用

    Corosync:它属于OpenAIS(开放式应用接口规范)中的一个项目corosync一版本中本身不具备投票功能,到了corosync 2.0之后引入了votequorum子系统也具备了投票功能了, ...

  6. 基于corosync+pacemaker+drbd+LNMP做web服务器的高可用集群

    实验系统:CentOS 6.6_x86_64 实验前提: 1)提前准备好编译环境,防火墙和selinux都关闭: 2)本配置共有两个测试节点,分别coro1和coro2,对应的IP地址分别为192.1 ...

  7. windows NLB+ARR实现Web负载均衡高可用/可伸缩

    基于IIS的ARR负载均衡 基于NLB负载均衡 这两篇分别分ARR 和 NLB基本配置,下面我们讲讲,如何组合使用,搭配成高可用/可伸缩集群. 什么是高可用,可伸缩 ? 高可用:是指系统经过专门设计减 ...

  8. SOA&微服务&服务网格&高可用

    SOA 架构 SOA 全称是:Service Oriented Architecture,“面向服务的架构”. 它是一种设计理念,其中包含多个服务,服务之间通过相互依赖最终提供一系列完整的功能. 各个 ...

  9. hbase学习(二)hbase单机和高可用完全分布式安装部署

    hbase版本 2.0.4  与hadoop兼容表http://hbase.apache.org/book.html#hadoop  我的 hadoop版本是3.1   1.单机版hbase 1.1解 ...

随机推荐

  1. window 消息传递机制【复杂版本】

    一.消息概述     众人周知,window系统是一个消息驱动的系统, windows操作系统本身有自己的消息队列称做系统消息队列(操作系统队列),消息循环,它捕捉键盘,鼠标的动作生成消息,并将这个消 ...

  2. oj教程--学习顺序

    1.数组 2.排序 3.递归 4.栈 5.队列 6.链表 7.二叉树 8.大数或高精度 9.枚举 10.搜索 11.字符串问题 12.贪心 13.最短路径 14.动态规划

  3. kubebuilder operator的运行逻辑

    kubebuilder 的运行逻辑 概述 下面是kubebuilder 的架构图.可以看到最外层是通过名为Manager的组件驱动的,Manager中包含了多个组件,其中Cache中保存了gvk和in ...

  4. 无法cin一个string 没有找到接受“std::string”类型的右操作数的运算符(或没有可接受的转换)

    头文件#include<string>不能写成#include<string.h>

  5. SpringBoot入门二:与Mybatis整合

    一.编程步骤 1.引入依赖 springboot相关依赖(略).mybatis-spring-boot-starter.mysql.druid.lombook <dependency> & ...

  6. QQ音乐官方定制精简版v1.3.6 纯净无广告

    介绍 近期腾讯推出了QQ音乐简洁版.顾名思义,QQ音乐简洁版就是官方精简后的版本,没有内置任何广告.完全专注于听歌,不存在直播.K歌.短视频等花里胡哨的内容.如有违规,请删删.. 结尾附pc端 QQ音 ...

  7. 判断jQuery是否加载,如果未加载则加载

    一般情况返回的js这么写history.go(-1) 但是如果是从别人分享过来的,就没有反应 所以就做个判断,没有上一页就返回首页 if (typeof jQuery == 'undefined') ...

  8. CentOS Linux服务器安装Nginx

    1.安装nginx前,我们首先要确保系统安装了g++.gcc.openssl-devel.pcre-devel和zlib-devel软件,可通过如图所示命令进行检测,如果以安装我们可以通过图二所示卸载 ...

  9. web Javascript360°全景实现

    360 全景浏览是一种性价比很高的虚拟现实解决方案,给人一种全新的浏览体验,让你足不出户就能身临其境地感受到现场的环境.该技术被广泛地应用在房产.酒店.家居等领域. 下面我们使用三种方法讨论一个 36 ...

  10. OCCT基础

    基础 构成总览 Root类 基本类型,如布尔,字符,整数或实数 安全处理动态创建的对象,确保自动删除未引用的对象 可配置的内存管理器,提高了应用程序的性能 包含运行时类型信息机制,有助于创建复杂应用 ...