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. 企业为什么需要BI报表工具?

    企业一旦成规模运作起来,数据量是数以万计的,无论数据还是报表都需要协同管理不断更新.面对各大OA\ERP\CRM系统的数据,传统用Excel处理数据效率是很低下的.要想快速出报表,快速取数,快速做业务 ...

  2. c# 编程学习(二)

    标识符是对程序中的各个元素进行标识的名称.     只能使用字母(大写和小写).数字和下划线     标识符必须以字母或下划线开头   变量是容纳值的存储位置.可将变量想象成容纳临时信息的容器   ...

  3. 【C# 线程】 volatile 关键字和Volatile类、Thread.VolatileRead|Thread.VolatileWrite 详细 完整

    overview 同步基元分为用户模式和内核模式 用户模式:Iterlocked.Exchange(互锁).SpinLocked(自旋锁).易变构造(volatile关键字.volatile类.Thr ...

  4. 实现按钮跳转&下划线等

    按钮点击跳转页面:(在java文件里写) 1 public class MainActivity extends AppCompatActivity { 2 3 private Button mbtn ...

  5. vue如何全局引用公共js

    在项目开发中需要调用一些工具类方法,所以需要将公共方法放在公共js中,并且需要全局引用这些公共js 1:创建公共JS(utils.js)  src/common/utils.js export def ...

  6. 使用 MobaXterm 连接矩池云 GPU服务器

    Host Name(主机名):hz.matpool.com 或 hz-t2.matpool.com,请以您 SSH 中给定的域名为准. Port(端口号):矩池云租用记录里 SSH 链接里冒号后的几位 ...

  7. 2. Java入门

    2.Java入门 2.1.安装开发环境 卸载JDK 删除Java的安装目录 删除JAVA_HOME 删除path下关于Java的目录 java -version 安装JDK 百度搜索JDK8,找到下载 ...

  8. 06 for循环 增强for循环 练习

    for循环 //九九乘法表 //1.打印第一列 //2.我们固定的1再用一个循环包起来 //3.去掉重复项,i <= j //4.调整样式 for(int j=1;j <=9;j++){ ...

  9. 软件工程homework-002

    博客信息 沈阳航空航天大学计算机学院2020软件工程作业 作业要求 https://edu.cnblogs.com/campus/sau/Computer1701-1705/homework/1058 ...

  10. vant中tab标签切换时会改变内容滚动高度

    vant的tabs标签页,标签切换时会改变内容区的滚动高度,这是因为内容区共用同一个父元素为滚动区域引起的,解决办法:在tabs的内容区域嵌套一层滚动区域,让每个内容区域使用单独的滚动元素就行了.   ...