14.RocketMQ之高可用性机制

这篇具有很好参考价值的文章主要介绍了14.RocketMQ之高可用性机制。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

1.2 高可用性机制

14.RocketMQ之高可用性机制

RocketMQ分布式集群是通过Master和Slave的配合达到高可用性的。

Master和Slave的区别:在Broker的配置文件中,参数 brokerId的值为0表明这个Broker是Master,大于0表明这个Broker是 Slave,同时brokerRole参数也会说明这个Broker是Master还是Slave。

Master角色的Broker支持读和写,Slave角色的Broker仅支持读,也就是 Producer只能和Master角色的Broker连接写入消息;Consumer可以连接 Master角色的Broker,也可以连接Slave角色的Broker来读取消息。

1.2.1 消息消费高可用

在Consumer的配置文件中,并不需要设置是从Master读还是从Slave 读,当Master不可用或者繁忙的时候,Consumer会被自动切换到从Slave 读。有了自动切换Consumer这种机制,当一个Master角色的机器出现故障后,Consumer仍然可以从Slave读取消息,不影响Consumer程序。这就达到了消费端的高可用性。

1.2.2 消息发送高可用

在创建Topic的时候,把Topic的多个Message Queue创建在多个 Broker上(相同Broker名称,不同 brokerId的机器组成一个Broker组)比如broker-A 和 broker-B,这样当一个Broker组的Master不可 用后,其他组的Master仍然可用,Producer仍然可以发送消息。

RocketMQ目前还不支持把Slave自动转成Master,如果机器资源不足, 需要把Slave转成Master,则要手动停止Slave角色的Broker,更改配置文件,用新的配置文件启动Broker。

发送消息失败的规避策略

14.RocketMQ之高可用性机制

1.2.3 消息主从复制

如果一个Broker组有Master和Slave,消息需要从Master复制到Slave 上,Master有同步复制和异步复制两种复制方式。

slave 代表是从节点不需要配置

SYNC_MASTER-同步复制

同步复制方式是等Master和Slave均写成功后才反馈给客户端写成功状态。

在同步复制方式下,如果Master出故障, Slave上有全部的备份数据,容易恢复,但是同步复制会增大数据写入延迟,降低系统吞吐量。

ASYNC_MASTER-异步复制

异步复制方式是只要Master写成功 即可反馈给客户端写成功状态。

在异步复制方式下,系统拥有较低的延迟和较高的吞吐量.

但是如果Master出了故障,有些数据因为没有被写 入Slave,有可能会丢失;

SLAVE-从节点

Slave 代表是从节点不需要配置

1.2.4 刷盘策略

同步刷盘-写入磁盘

在返回写成功状态时,消息已经被写入磁盘。具体流程是,消息写入内存的PAGECACHE后,立刻通知刷盘线程刷盘, 然后等待刷盘完成,刷盘线程执行完成后唤醒等待的线程,返回消息写 成功的状态。

异步刷盘-写入PAGECACHE

在返回写成功状态时,消息可能只是被写入了内存的PAGECACHE,写操作的返回快,吞吐量大;当内存里的消息量积累到一定程度时,统一触发写磁盘动作,快速写入。

1.2.5 配置

同步刷盘还是异步刷盘,都是通过Broker配置文件里的flushDiskType 参数设置的,这个参数被配置成SYNCFLUSH、ASYNCFLUSH中的 一个。

推荐配置:SYNCMASTER + ASYNCFLUSH
主从同步复制

同步复制是等Master和Slave均写成功后才反馈给客户端写成功状态。

异步复制方式是只要Master写成功即可反馈给客户端写成功状态

这两种复制方式各有优劣:

在异步复制方式下,系统拥有较低的延迟和较高的吞吐量,但是如果Master出了故障,有些数据因为没有被写入Slave,有可能会丢失。

在同步复制方式下,如果Master出故障,Slave上有全部的备份数据,容易恢复。但是同步复制会增大数据写入延迟,降低系统吞吐量。

如果对于消息有零丢失的要求,设置主从同步方式为主从同步复制即可。否则可以选择异步复制的方式。

主从异步刷盘

实际应用中要结合业务场景,合理设置刷盘方式和主从复制方式,尤其是SYNC_FLUSH方式,由于频繁的触发写磁盘动作,会明显降低性能。

通常情况下,应该把Master和Slave设置成ASYNC_FLUSH的刷盘方式。

总结

主从之间配置成SYNC_MASTER的复制方式,这样即使有一台机器出故障,仍然可以保证数据不丢。

**主从刷盘策略配置为ASYNC_FLUSH可以保证吞吐量。

由于配置的主从同步方式是SYNCMASTER,主从刷盘策略配置为ASYNCFLUSH。这样可以保证master和slave的消息都写入到了内存中,即使主从有1台机器发生故障,至少有1台机器存在全量的消息。2台机器同时发生故障的几率太小了,以至于可以忽略不计。

总结:SYNCMASTER可以保证消息不丢失,ASYNCFLUSH可以保证吞吐量。

最后如果对性能要求较高,对消息丢失存在一定的容忍度可以配置为ASYNCMASTER + ASYNCFLUSH文章来源地址https://www.toymoban.com/news/detail-513651.html

到了这里,关于14.RocketMQ之高可用性机制的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 什么是可用性测试?

    可用性测试(Usability Testing)是一种软件测试方法,旨在评估一个产品(如软件、网站、移动应用等)的易用性和用户体验。该测试方法通过让真实的用户执行特定任务,观察和记录他们的行为、反应和满意度,来评估产品的可用性和用户友好程度。 可用性测试的主要目标是

    2024年02月11日
    浏览(43)
  • selenium代理ip可用性测试

    测试代理ip是否工作正常,将正常的代理ip提取出来 测试结果

    2024年01月20日
    浏览(47)
  • 软件的可用性改善:善用帮助信息

    当我们吭哧吭哧的开发功能性模块的时候,也需要回头思考一下软件的可用性。今天的主题就是使用帮助信息来改善软件的可用性,让软件不仅”能用”,也更”好用”。 帮助信息,也叫工具提示(Tooltip)。当用户的鼠标悬停在一段文字或者控件上时,会自动显示相关的帮助信

    2024年02月10日
    浏览(40)
  • Elasticsearch的高可用性与容错

    Elasticsearch是一个分布式、实时的搜索和分析引擎,它可以处理大量数据并提供快速、准确的搜索结果。在现实应用中,Elasticsearch的高可用性和容错性是非常重要的,因为它可以确保系统的稳定运行和数据的安全性。 在本文中,我们将深入探讨Elasticsearch的高可用性与容错,包

    2024年02月21日
    浏览(39)
  • 聊一聊医疗器械的可用性

    很抱歉由于各种因素这个号拖更了好久了,最近呢也有几个公众号做的挺好的,比如包总的 MD SRE 、丁总的 医械安全 、 饽饽糕的叨逼叨 ,而且更新也都比较频繁,大家可以 关注 一下; 好久没登录,当我上来看到已经有 5000多 的关注者,说实话,有 感动 ,有 自豪 ,也有

    2024年02月07日
    浏览(44)
  • Kafka 高可用性集群部署实践 锤子技术

    作者:禅与计算机程序设计艺术 随着互联网应用场景的不断扩张、人们对实时数据处理需求越来越强烈,消息队列(MQ)系统也在逐渐发展壮大。Kafka 是 Apache 开源的分布式消息系统,它是一个分布式、高吞吐量、可扩展且高容错的平台。相对于其他 MQ 系统而言,Kafka 有以下

    2024年02月08日
    浏览(35)
  • 兼容性测试如何提高网站的可用性?

    兼容性测试如何提高网站的可用性? 在现代社会,网站已经成为了人们获取信息、进行交流的主要渠道之一。但是,在网站的设计和开发中,往往会存在兼容性问题,导致不同浏览器或设备的用户无法顺利地访问和使用网站,降低了网站的可用性。因此,进行兼容性测试是提

    2024年02月09日
    浏览(64)
  • 深入理解 Redis 高可用性方案及其原理

    深入理解 Redis 高可用性方案及其原理 在当今数据驱动的时代,Redis 作为一种高性能的键值存储数据库,在现代应用架构中扮演着举足轻重的角色。无论是作为缓存系统、消息队列还是轻量级数据库,Redis 以其卓越的性能和灵活性赢得了广泛的应用。然而,随着业务规模的不

    2024年03月25日
    浏览(55)
  • 让Zookeeper更高效:高可用性扩展策略

    作者:禅与计算机程序设计艺术 引言 1.1. 背景介绍 随着分布式系统的广泛应用,Zookeeper作为一致性系统的核心组件,在分布式系统中发挥着越来越重要的作用。Zookeeper作为一个分布式协调服务,负责协调分布式系统中的各个组件,保证系统的一致性和可用性。 1.2. 文章目的

    2024年02月14日
    浏览(33)
  • SQLserver AlwaysOn 提交模式与节点的可用性

    接上文:https://www.cnblogs.com/wy123/p/17905118.html,关于AlwaysOn主副本与辅助副本之间提交模式与安全故障转移的话题 参考AlwaysOn属性面板中的信息 1,主节点异步提交模式:如果主要副本配置为“异步提交模式” ,则从节点不管是同步或者异步,主节点提交事务都无须等待从节点

    2024年02月04日
    浏览(35)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包