`
wbj0110
  • 浏览: 1603317 次
  • 性别: Icon_minigender_1
  • 来自: 上海
文章分类
社区版块
存档分类
最新评论

HA方案

阅读更多

介绍

Meta相比于kafka的一个重要特性就是消息高可用方案的实现,我们称之为HA方案。消息在发送到broker之后立即写入磁盘才返回客户端告诉消息生产者消息发送成功,通过unflushThresholdunflushInterval两个参数的控制,可以保证单机消息数据的安全性,只要机器的磁盘没有永久损坏,消息总可以在重启后恢复并正常投递给消费者们。但是,如果遇到了磁盘永久损坏或者数据文件永久损坏的情况,那么该broker上的消息数据将可能永久丢失。为了防止这种情况的发生,一个可行的方案就是将消息数据复制到多台机器,类似mysql的主从复制功能。

同步复制和异步复制

meta提供类似mysql主从复制的异步复制和同步功能,分别对应不同的可靠级别。理论上说同步复制能带来更高的可靠级别,异步复制因为延迟的存在,可能会丢失极少量的消息数据,相应地,同步复制会带来性能的损失,因为要同步写入两台甚至更多的broker机器上才算写入成功。

在实际实践中,我更推荐采用异步复制的架构,因为异步复制的架构相对简单,并且易于维护和恢复,对性能也没有影响。而同步复制对运维要求相对很高,机制复杂容易出错,故障恢复也比较麻烦。异步复制加上磁盘做磁盘阵列,足以应对非常苛刻的数据可靠性要求。

异步复制配置

假设你已经根据如何开始这份文档配置了一台broker服务器,并且配置了一个topic为test,现在你希望test能复制到另一台slave broker上来保证消息数据的高可用。你可以这样做:

1.首先,你需要部署一个新的broker,具体仍然参照如何开始这份文档,配置server.ini从master broker拷贝一份。

2.其次,配置slave文件。编辑conf/async_slave.properties:

#slave编号,大于等于0表示作为slave启动,同一个master下的slave编号应该设不同值.
slaveId=0

#作为slave启动时向master订阅消息的group,如果没配置则默认为meta-slave-group
#不同的slaveId请使用不同的group
slaveGroup=meta-slave-group

#slave数据同步的最大延时,单位毫秒  
slaveMaxDelayInMills=500

#是否自动从master同步server.ini, 1.4.2新增选项
#第一次仍然需要自己拷贝server.ini,后续可以通过设置此选项为true来自动同步
autoSyncMasterConfig=true

配置参数的含义请自己看注释。可见,一个master可以复制到多个slave。

3.执行下列命令启动slave:

bin/metaServer.sh start slave

4.第一次复制因为需要跟master完全同步需要耗费一定时间,你可以在数据文件的目录观察复制情况。

5.请注意,异步复制的slave将参与消费者的消费活动,消息消费者可以从slave中获取消息并消费,消费者会随机从master和slaves中挑选一台作为消费broker。

6.请注意,从1.4.2开始,可以通过autoSyncMasterConfig选项配置是否自动同步master的server.ini到异步复制的slave上,当master的server.ini文件变更并通过bin/metaServer.sh reload之后,slave将监控到这一变更并自动同步。

异步复制的局限

  • 异步复制有延迟,虽然可以通过设定slaveMaxDelayInMills来控制延迟。

异步复制的故障处理

  • Master永久故障: 将slave作为master启动,去除启动参数中的slave即可,也就是metaServer.sh restart
  • Slave永久故障: 启动新的broker并配置作为master新的slave启动。

同步复制配置

from metaq's wiki

分享到:
评论

相关推荐

    sap 高可用性 HA 方案

    ### SAP高可用性HA方案详解 #### 概述 在当今企业环境中,确保关键业务应用程序如SAP系统的连续运行至关重要。随着技术的发展和业务需求的增长,SAP提出了高可用性(High Availability,简称HA)的概念,旨在通过...

    fs使用keepalived做HA方案及设计逻辑图

    在IT行业中,高可用性(HA)架构是关键服务必须具备的特性,以确保系统无中断地运行。本文将深入探讨如何使用Keepalived来构建...在实际部署时,应根据具体的网络环境和业务需求进行调整,确保HA方案的稳定性和适用性。

    容错服务器对比传统双机HA方案

    ### 容错服务器对比传统双机HA方案 #### 核心知识点概述 本文将深入探讨海得控制H&iServer冗余服务器与传统双机HA(High Availability)方案之间的区别,重点分析其在可靠性、可用性以及灵活性方面的优势。通过...

    keepalived_redis_ha方案

    【keepalived_redis_ha方案】是用于实现高可用性(HA)的解决方案,结合了Keepalived和Redis两个组件,以确保在主服务器故障时能够无缝切换到备份服务器,保持服务的连续性和数据的完整性。 **Keepalived** 是一个...

    RedHat HA方案的配置方法

    RedHat HA方案的配置方法,详细的操作方案!

    在Linux上实现DB2双机HA完整方案

    - 双机互备HA方案是一种常见的高可靠性设计,确保当一台服务器出现故障时,服务能快速切换到另一台备用服务器上,保持不间断运行。 - 在这个方案中,两台服务器(Active节点和Passive节点)具有相同的应用程序和...

    LPAR-HA方案描述[借鉴].pdf

    【LPAR-HA方案描述】 LPAR,全称逻辑分区(Logical Partitioning),是一种IBM主机技术,它允许在单个物理服务器上创建多个独立的、虚拟化的操作系统实例,这些实例被称为逻辑分区。与物理分区(PPAR)不同,LPAR不...

    防火墙双机HA 方案模板.doc

    防火墙双机HA 方案模板.doc

    MySQL原生HA方案–Fabric体验之旅

    还在为MySQLHA方案的选型头疼吗?现在不用了,自从2014年5月28日Oracle发布Fabric之后,一切都变得如此简单。因为是原生的官方产品,可以放心使用,由于这款产品大力的增强了HA效率,可以看出Oracle对云计算的支持...

    ROSEHA双机方案

    ### ROSEHA双机方案详解 #### 一、RoseHA的工作原理 RoseHA是一种高度可靠的双机容错方案,主要用于确保关键业务系统的连续运行。其核心机制在于通过两台服务器(主机)之间的协同工作,以及对共享存储资源的共同...

    ORACLE数据库HA架构方案[收集].pdf

    Oracle数据库的高可用性(HA)架构方案是确保业务连续性和数据安全的关键。在软件开发领域,特别是使用Oracle数据库的系统,确保数据的可靠性和安全性至关重要。传统的Oracle Replication方式虽然能够提供一定的冗余...

    系统HA实施方案图,思路清晰,易懂

    在本方案中,我们重点探讨的是一个基于网络和存储架构的HA实施策略,以提高应用系统的稳定性和可靠性。 首先,从给出的实施方案图来看,我们可以看到一个典型的双活架构,包括多台物理服务器(OS)、存储设备和...

    drbd+heartbeat+oracle10g(HA)

    DRBD+Heartbeat+Oracle10g高可用HA方案 在本文档中,我们将详细介绍如何使用DRBD、Heartbeat和Oracle10g来实现高可用HA方案。该方案的主要目的是为了提供一个高可用、可靠、可扩展的解决方案,以满足业务连续性和...

    ORACLE数据库HA架构方案.pdf

    在选择适合的Oracle HA方案时,通常需要考虑以下几个因素: - **性能需求**:RAC提供最高级别的性能和负载均衡,但可能需要更多的硬件资源。 - **容灾需求**:Data Guard和Streams更适合于灾难恢复和地理分散的数据...

    双机热备方案(RoseHA)

    "双机热备方案(RoseHA)" 双机热备方案是服务器系统中的一种高可用性解决方案,它能够确保服务器在出现故障时能快速恢复,减少停机时间,提高服务器的可用性和可靠性。RoseHA是是一种热备软件,能够实现双机热备,...

    SAP Basis系列文档-分布式HA系统的构建.pdf

    为了保证ERS的高可用性,也会采用硬件HA方案。 #### 其他需要保护的服务 除了上述的核心服务之外,还有一些其他服务也需要进行保护,以确保整个SAP系统的稳定运行: - **Spool Service**:负责打印作业的管理和...

    SA FORUM HA资料

    9. **兼容性和集成**:资料可能还会讨论与其他IT基础设施(如存储、网络设备、数据库等)的集成,以及如何确保HA方案与现有环境的兼容性。 10. **最佳实践**:基于行业经验和最佳实践,资料可能提供了关于规划、...

    主机HA高可用技术梳理和最佳实践.docx

    主机HA(高可用性)技术是确保关键业务系统持续运行的关键技术,主要通过减少计划内和计划外停机时间来提高系统和应用的可用性。...了解和评估各种HA方案,结合实际业务需求,可以为企业构建更稳定、可靠的IT基础设施。

Global site tag (gtag.js) - Google Analytics