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. 【c# 操作符】- nameof用法

    最重要的是nameof不会影响性能! nameof有什么用?主要用解决 类成员名做参数替代成员们的字符串做参数,如下: using System; namespace csharp6 { intern ...

  2. 广度优先搜索(BreadthFirstSearch)& 迪克斯特拉算法 (Dijkstra's algorithm)

    BFS可回答两类问题: 1.从节点A出发,有前往节点B的路径吗? 2.从节点A出发,前往节点B的哪条路径经过的节点最少? BFS中会用到"队列"的概念.队列是一种先进先出(FIFO ...

  3. c++ cgi执行shell命令l发送qq邮件mailx

    #include <cstdlib> //随机数 #include <iostream> #include <cstdio> //popen函数调用的需要 #inc ...

  4. [手写系列] 带你实现一个简单的Promise

    简介 学习之前 需要先对Promise有个基本了解哦,这里都默认大家都是比较熟悉Promise的 本次将带小伙伴们实现Promise的基本功能 Promise的基本骨架 Promise的then Pr ...

  5. python实现四则运算题库

    #主函数(main.py) from generator import Ari_Expression from infixTosuffix import infix_to_suffix import ...

  6. js location.href 和 php header 跳转方式

    if ($result){ echo '添加成功';// header('refresh:3,url=user_nameList.php'); echo "<script> al ...

  7. 数据备份RAID1 和RAID5详解和对比

    数据备份RAID1 和RAID5详解和对比 RAID 全称 Redundant Array of Independent Disks,中文意思"独立的冗余磁盘列队". RAID 一 ...

  8. hive从入门到放弃(二)——DDL数据定义

    前一篇文章,介绍了什么是 hive,以及 hive 的架构.数据类型,没看的可以点击阅读:hive从入门到放弃(一)--初识hive 今天讲一下 hive 的 DDL 数据定义 创建数据库 CREAT ...

  9. 03 Java的数据类型分为两大类 类型转换 八大基本类型

    数据类型 强类型语言:要求变量的使用要严格符合规定,所有变量都必须先定义后才能使用 Java的数据类型分为两大类 基本类型(primitive type) 数值类型 整数类型 byte占1个字节范围: ...

  10. Spring data jpa 报错: java.sql.SQLSyntaxErrorExceptoion: Table ' test.hibernate_sequence' doesn`t exists

    错误信息如图: 错误原因:在自定义主键是没有注明自增策略 解决办法:明确主键自增策略,比如 @Entity @Table(name = "t_order") @Data @AllA ...