当前位置: 首页 > news >正文

php 网站缓存制作网站代码大全

php 网站缓存,制作网站代码大全,做网站运营有前途,广告影视制作谁家好目录 前言 副本定义 副本角色 In-sync Replicas(ISR) 参考资料 前言 现在的很多的分布式系统都支持副本的机制,比如Mysql就有副本的机制,一般使用副本有如下特性和好处。 提供数据冗余。即使系统部分组件失效,系…

目录

前言

 副本定义

副本角色 

 In-sync Replicas(ISR)

参考资料 


前言

现在的很多的分布式系统都支持副本的机制,比如Mysql就有副本的机制,一般使用副本有如下特性和好处。

  • 提供数据冗余。即使系统部分组件失效,系统依然能够继续运转,因而增加了整体可用性以及数据持久性。
  • 提供高伸缩性。支持横向扩展,能够通过增加机器的方式来提升读性能,进而提高读操作吞吐量。
  • 改善数据局部性。允许将数据放入与用户地理位置相近的地方,从而降低系统延时。

而kafka的副本机制仅仅享受到了第一个好处。但是即使是这样,kafka的副本机制也是确保系统高可用和消息高持久性的重要基石。

 副本定义

Kafka 是有主题概念的,而每个主题又进一步划分成若干个分区。副本的概念实际上是在分区层级下定义的,每个分区配置有若干个副本。 

所谓副本(Replica),本质就是一个只能追加写消息的提交日志。根据 Kafka 副本机制的定义,同一个分区下的所有副本保存有相同的消息序列,这些副本分散保存在不同的 Broker 上,从而能够对抗部分 Broker 宕机带来的数据不可用。

在实际生产环境中,每台 Broker 都可能保存有各个主题下不同分区的不同副本,因此,单个 Broker 上存有成百上千个副本的现象是非常正常的。

示例图如下:

副本角色 

 既然分区下能够配置多个副本,而且这些副本的内容还要一致,那么很自然的一个问题就是:我们该如何确保副本中所有的数据都是一致的呢?特别是对 Kafka 而言,当生产者发送消息到某个主题后,消息是如何同步到对应的所有副本中的呢?针对这个问题,最常见的解决方案就是采用基于领导者(Leader-based)的副本机制。

副本机制的工作原理图如下:

第一,在 Kafka 中,副本分成两类:领导者副本(Leader Replica)和追随者副本(Follower Replica)。每个分区在创建时都要选举一个副本,称为领导者副本,其余的副本自动称为追随者副本。

第二,Kafka 的副本机制比其他分布式系统要更严格一些。在 Kafka 中,追随者副本是不对外提供服务的。这就是说,任何一个追随者副本都不能响应消费者和生产者的读写请求。所有的请求都必须由领导者副本来处理,或者说,所有的读写请求都必须发往领导者副本所在的 Broker,由该 Broker 负责处理。追随者副本不处理客户端请求,它唯一的任务就是从领导者副本异步拉取消息,并写入到自己的提交日志中,从而实现与领导者副本的同步。

第三,当领导者副本挂掉了,或者说领导者副本所在的 Broker 宕机时,Kafka 依托于 ZooKeeper 提供的监控功能能够实时感知到,并立即开启新一轮的领导者选举,从追随者副本中选一个作为新的领导者。老 Leader 副本重启回来后,只能作为追随者副本加入到集群中。 

 既然如此,Kafka 为什么要这样设计呢?其实这种副本机制有两个方面的好处。

1、方便实现“read your writes” 

所谓 Read-your-writes,顾名思义就是,当你使用生产者 API 向 Kafka 成功写入消息后,马上使用消费者 API 去读取刚才生产的消息。

2、方便实现单调读(Monotonic Reads)

 什么是单调读呢?就是对于一个消费者用户而言,在多次消费消息时,它不会看到某条消息一会儿存在一会儿不存在。

 In-sync Replicas(ISR)

 Kafka 引入了 In-sync Replicas,也就是所谓的 ISR 副本集合。ISR 中的副本都是与 Leader 同步的副本,相反,不在 ISR 中的追随者副本就被认为是与 Leader 不同步的。那么,到底什么副本能够进入到 ISR 中呢?

我们首先要明确的是,Leader 副本天然就在 ISR 中。也就是说,ISR 不只是追随者副本集合,它必然包括 Leader 副本。甚至在某些情况下,ISR 只有 Leader 这一个副本。

 Broker 端参数 replica.lag.time.max.ms 参数值。这个参数的含义是 Follower 副本能够落后 Leader 副本的最长时间间隔,当前默认值是 10 秒。这就是说,只要一个 Follower 副本落后 Leader 副本的时间不连续超过 10 秒,那么 Kafka 就认为该 Follower 副本与 Leader 是同步的,即使此时 Follower 副本中保存的消息明显少于 Leader 副本中的消息。 

Kafka 把所有不在 ISR 中的存活副本都称为非同步副本。通常来说,非同步副本落后 Leader 太多,因此,如果选择这些副本作为新 Leader,就可能出现数据的丢失。毕竟,这些副本中保存的消息远远落后于老 Leader 中的消息。在 Kafka 中,选举这种副本的过程称为 Unclean 领导者选举。Broker 端参数 unclean.leader.election.enable 控制是否允许 Unclean 领导者选举。

如果你听说过 CAP 理论的话,你一定知道,一个分布式系统通常只能同时满足一致性(Consistency)、可用性(Availability)、分区容错性(Partition tolerance)中的两个。显然,在这个问题上,Kafka 赋予你选择 C 或 A 的权利。

强烈建议你不要开启它,毕竟我们还可以通过其他的方式来提升高可用性。如果为了这点儿高可用性的改善,牺牲了数据一致性,那就非常不值当了。

参考资料 

23 | Kafka副本机制详解-极客时间

http://www.yayakq.cn/news/94826/

相关文章:

  • 目前有做电子合同的网站吗企业建设网站的作用
  • 网站制作推广SSL自定义wordpress登录界面
  • 服装网站建设项目实施报告网站开发招标网
  • 安徽省住房和城乡建设厅网站域名网站建设工作室图片
  • 网站制作模板代码小程序怎么移除
  • 卖农产品最好的平台wordpress的seo作用
  • phpcms 手机网站模板只做健康产品的网站
  • 厦门专业网站建设团队php网站数据库修改
  • xml网站地图格式北大青鸟的网站建设课程多少钱
  • 北京网站制作公司兴田德润实惠网站开发交付清单
  • 网站开发什么语言好酒店预定类网站建设
  • 免费可用的网站源码二级域名做网址导航大全网站
  • wordpress无法访问站点推广方式和推广渠道的区别
  • 阿里云主机建网站网站流量 龙优化软件
  • 网站右下角广告代码企业站手机网站
  • 营口电商网站建设西安互联网网站建设
  • 求免费的那种网站有哪些怀宁县住房与城乡建设局网站
  • 会计公司网站模板下载南沙免费网站建设
  • 什么东西可以做网站市场营销研究生好考吗
  • 用宝塔做网站步骤网站开发制作全包
  • 平湖手机网站设计网页怎么制作成二维码
  • 全flash网站制作教程磁力吧
  • 为代理网站做网站商丘网站推广的方法
  • 芙蓉网站制作有没有介绍做私家导游的网站
  • 标准论坛网站建设网站开发结构文档
  • dart 网站开发中国网站的特点
  • 厦门建设网站的网站主页跳转index
  • 水区建设局网站资金盘app开发要多少钱
  • 网站建设和维护网站制作样板
  • 莱州网页知乎推广优化