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

站酷设计网站官网入企业网站开发背景

站酷设计网站官网入,企业网站开发背景,台州seo排名外包,网站编辑电子商务网站运营专员文章目录 01. Kafka 分区位移02. Kafka 消费位移03. kafka 消费位移的作用04. Kafka 消费位移的提交05. kafka 消费位移的存储位置06. Kafka 消费位移与消费者提交的位移07. kafka 消费位移的提交时机08. Kafka 维护消费状态跟踪的方法 01. Kafka 分区位移 对于Kafka中的分区而… 文章目录 01. Kafka 分区位移02. Kafka 消费位移03. kafka 消费位移的作用04. Kafka 消费位移的提交05. kafka 消费位移的存储位置06. Kafka 消费位移与消费者提交的位移07. kafka 消费位移的提交时机08. Kafka 维护消费状态跟踪的方法 01. Kafka 分区位移 对于Kafka中的分区而言它的每条消息都有唯一的offset用来表示消息在分区中对应的位置。偏移量从0开始每个新消息的偏移量比前一个消息的偏移量大1。 每条消息在分区中的位置信息由一个叫位移Offset的数据来表征。分区位移总是从 0 开始假设一个生产者向一个空分区写入了 10 条消息那么这 10 条消息的位移依次是 0、1、2、…、9。 02. Kafka 消费位移 对于kafka中的消费者而言也有一个offset的概念消费者使用 offset 来表示消费到分区中某个消息所在的位置。 消费位移偏移量是指消费者在消费分区中的消息时记录的已经消费的消息的位移。消费者会定期地将已经消费的消息的位移提交到Kafka集群中以便在下一次启动时从上次消费的位置继续消费。 每个消费者在消费消息的过程中必然需要有个字段记录它当前消费到了分区的哪个位置上这个字段就是消费者位移Consumer Offset。注意这和分区位移完全不是一个概念。“分区位移”表征的是分区内的消息位置它是不变的即一旦消息被成功写入到一个分区上它的位移值就是固定的了。而消费者位移则不同它可能是随时变化的毕竟它是消费者消费进度的指示器嘛。另外每个消费者有着自己的消费者位移。 03. kafka 消费位移的作用 消费者位移偏移量是指消费者在消费分区中的消息时记录的已经消费的消息的位移。它的作用主要有以下几个方面 ① 消费者可以通过记录偏移量来实现断点续传。当消费者下线或者重启时它可以通过记录的偏移量来恢复之前的消费状态从而避免重复消费已经处理过的消息。 ② Kafka 通过偏移量来保证消息的顺序性。在同一个分区中消息的顺序是有序的消费者可以通过记录偏移量来保证消费的顺序性。 ③ Kafka 还可以通过偏移量来实现消息的回溯。消费者可以通过指定偏移量来重新消费之前的消息这在某些场景下非常有用比如重新处理之前出现的错误。 总之Kafka 消息偏移量是非常重要的一个概念它可以帮助消费者实现断点续传、保证消息的顺序性以及实现消息的回溯等功能。 04. Kafka 消费位移的提交 消费者可以通过订阅一个或多个主题来拉取消息。当消费者调用 poll() 方法时它会从 Kafka 集群中拉取一批消息这些消息会被缓存在消费者的本地缓存中等待消费者进一步处理。在消费者处理完这批消息后它可以再次调用 poll() 方法来拉取下一批消息。如果消费者在处理消息时发生了错误那么这批消息将会被重新拉取直到消费者成功地处理它们为止。 因此每次调用poll()方法它总是会返回还没有被消费者读取过的记录这意味着我们可以追踪哪些记录是被群组里的哪个消费者读取过的。要做到这一点就需要记录上一次消费时的消费位移。并且这个消费位移必须做持久化保存而不是单单保存在内存中否则消费者重启之后就无法知晓之前的消费位移。再考虑一种情况当有新的消费者加入时那么必然会有再均衡的动作对于同一分区而言它可能在再均衡动作之后分配给新的消费者如果不持久化保存消费位移那么这个新的消费者也无法知晓之前的消费位移。 在旧消费者客户端中消费位移是存储在 ZooKeeper 中的。而在新消费者客户端中消费位移存储在Kafka内部的主题 __consumer_offsets 中。这里把将消费位移存储起来持久化的动作称为“提交”消费者在消费完消息之后需要执行消费位移的提交。 05. kafka 消费位移的存储位置 消费者默认将 offset 保存在Kafka一个内置的 topic 中该 topic 为 __consumer_offsets。 [rootmaster01 kafka01]# bin/kafka-topics.sh --zookeeper localhost:2183 --list __consumer_offsets消费者会向一个叫作 __consumer_offset 的内置主题发送消息消息里包含每个分区的偏移量。如果消费者一直处于运行状态那么偏移量就没有什么实际作用。但是如果消费者发生崩溃或有新的消费者加入群组则会触发再均衡。再均衡完成之后每个消费者可能会被分配新的分区而不是之前读取的那个。为了能够继续之前的工作消费者需要读取每个分区最后一次提交的偏移量然后从偏移量指定的位置继续读取消息。 消费 offset 案例 ① __consumer_offsets 为 Kafka 中的 topic那就可以通过消费者进行消费。但是需要在配置文件 config/consumer.properties 中添加配置 exclude.internal.topicsfalse默认是 true表示不能消费系统主题。为了查看该系统主题数据所以该参数修改为 false。 ② 创建主题 haha [rootmaster01 kafka01]# bin/kafka-topics.sh --zookeeper localhost:2183 --create --partitions 3 --replication-factor 2 --topic haha Created topic test1.③ 启动生产者生产数据 [rootmaster01 kafka01]# bin/kafka-console-producer.sh --broker-list 10.65.132.2:9093 --topic haha hello,haha! 你好haha!④ 启动消费者消费数据 [rootmaster01 kafka01]# bin/kafka-console-consumer.sh --bootstrap-server 10.65.132.2:9093 --topic haha --group group-haha --from-beginning hello,haha! 你好haha!⑤ 查看消费者消费主题__consumer_offsets [rootmaster01 kafka01]# bin/kafka-console-consumer.sh --bootstrap-server 10.65.132.2:9093 --topic __consumer_offsets --consumer.config config/consumer.properties --formatter kafka.coordinator.group.GroupMetadataManager\$OffsetsMessageFormatter --from-beginning# key是[消费者组消费的主题消费的分区]value中已经消费的消息在当前分区的offset1 [group-haha,haha,2]::OffsetAndMetadata(offset1, leaderEpochOptional.empty, metadata, commitTimestamp1692000487851, expireTimestampNone) [group-haha,haha,1]::OffsetAndMetadata(offset1, leaderEpochOptional.empty, metadata, commitTimestamp1692000487851, expireTimestampNone) [group-haha,haha,0]::OffsetAndMetadata(offset0, leaderEpochOptional.empty, metadata, commitTimestamp1692000487851, expireTimestampNone)06. Kafka 消费位移与消费者提交的位移 如下图x 表示某一次拉取操作中此分区消息的最大偏移量假设当前消费者已经消费了 x 位置的消息那么我们就可以说消费者的消费位移为 x不过当前消费者需要提交的消费位移并不是 x而是 x1它表示下一条需要拉取的消息的位置。 如果使用自动提交或不指定提交的偏移量那么将默认提交poll()返回的最后一个位置之后的偏移量即提交比客户端从poll()返回的最后一个位置大1的偏移量。在进行手动提交或需要提交特定的偏移量时一定要记住这一点。 07. kafka 消费位移的提交时机 当前一次 poll() 操作所拉取的消息集为[x2x7]x2代表上一次提交的消费位移说明已经完成了x1之前包括x1在内的所有消息的消费x5表示当前正在处理的位置。 ① 如果最后一次提交的偏移量大于客户端处理的最后一条消息的偏移量那么处于两个偏移量之间的消息就会丢失 如图如果拉取到消息之后就进行了位移提交即提交了x8那么当前消费x5的时候遇到了异常在故障恢复之后我们重新拉取的消息是从x8开始的。也就是说x5至x7之间的消息并未能被消费如此便发生了消息丢失的现象。 ② 如果最后一次提交的偏移量小于客户端处理的最后一条消息的偏移量那么处于两个偏移量之间的消息就会被重复处理 如图如果消费完所有拉取到的消息之后才进行位移提交那么当消费x5的时候遇到了异常在故障恢复之后我们重新拉取的消息是从x2开始的。也就是说x2至x4之间的消息又重新消费了一遍故而又发生了重复消费的现象。 08. Kafka 维护消费状态跟踪的方法 在Kafka中消费者组可以通过消费者偏移量consumer offset来跟踪它们在分区中消费的消息。消费者偏移量是一个整数表示消费者已经成功读取的消息的位置。当消费者读取消息时它会将偏移量保存在内存中以便在下一次读取消息时能够从正确的位置开始读取。
http://www.dnsts.com.cn/news/69113.html

相关文章:

  • 谁有qq网站开发资源群廊坊seo排名公司
  • 百度排名 网站标题网站制作 昆明
  • 手机网站开发人员工具wordpress接口密码
  • 济南网站优化公司排名网站被k
  • 济源建网站简单网站搭建
  • 网站开发平台开发公司租号网站建设贴吧
  • iis能建设网站吗wordpress08影视
  • 给网站做seo的必要性有没有专门做宝宝用品的网站
  • 沈阳康平志诚建设集团网站创新网站建设
  • 中国建设银行网站是什么上海网页制作步骤
  • 广州网站建设哪家技术好wordpress分类页面添加幻灯片
  • 网站做收录要多少长时间个人网站花多少钱
  • 网站维护升级装修设计师培训班
  • 网站架构模式用哪种优秀交互设计app欣赏
  • wordpress快速仿站教程给企业做网站前景
  • thinkphp手机网站模板学设计哪个网站好
  • 漳浦网站制作刚刚发生了什么大事
  • 住房城乡建设部招投标网站网站开发技术路线与规范
  • 网站开发和程序员阿里云cdn wordpress错位
  • 个人网站 后台管理网站建站时间
  • 可以做推广的网站有哪些广之旅自由通卡特约商家
  • 小说网站建立在线crm什么软件好
  • 云南城市建设职业学院成绩查询网站wordpress 精美主题
  • 武威 网站开发犀牛云网站建设费用
  • 西安网站建设工作室ai logo设计网站
  • 公司注销后 网站备案吗商品展示网站源码
  • 电商网站推广常见问题什么是软件开发
  • 塘沽做网站的公司贵州企业网站
  • 建设部网站监理公告wordpress 替代 php
  • wordpress做的网站效果6云游戏网页版