chat聊天系统消息消费时遇到的问题及优化思路(二)

1、前言

考虑下面几个条件下如何提升kafka的消费速度

  • 消息要求严格有序,如chat聊天消息
  • 业务处理速度慢,如处理一条数据需要100ms
  • 分片不合理,如有的分区很闲,有的分区消息数量积压

2、解决方案

1、顺序问题

关于消息消费时存在先后顺序问题,在chat聊天系统消息消费时遇到的问题及优化思路(一)中已经加以说明。具体实现大致为对同一会话、帖子Id等维度放入同一分区中,如使用Id % 分区数,如下图:
在这里插入图片描述
上面的解决方案是将同一会话的消息发送至同一分区进行消费,但是但消费者的消费能力大概率是不够的,因此,需要并发处理,详见
chat聊天系统消息消费时遇到的问题及优化思路(一)
在这里插入图片描述
注意:此时需要注意一个问题就是,当单个消费者消费分区,并将获取到的消息放入不同的队列中,此时还可能存在乱序问题,所以,可以考虑复用Id%队列数的方式,将同一个会话的消息放入到相同的队列中,让协程进行消费。

2、消息不丢失问题

上面的方案,当消费者从kafka拉到消息后,并没有等待处理完成就继续从kafka拉取消息然后缓存到内存中,等待消费队列慢慢消费,这个时候如果机器宕机,则内存中的消息将会丢失。

基于上面描述的问题,考虑使用手动提交offset。但是这样其实还存在一个问题就是:各个协程处理的offset值其实是不一样的,如下图:
在这里插入图片描述
此时goroutine1和goroutine2 的消息的offset不一致,为了保证消息不丢失,采用以下策略:定期手动提交当前的offset信息,提交的offset值选当前分区的最小的offset,如上面的就选1001这个offset值。可以采用在内存中缓存处理的offset列表的实现方式,如下:
在这里插入图片描述
当内存中待处理的最大offset与最小的offset差值>= M时,阻塞消费小城继续从kafka拉取消息,控制异常情况下的数据最多不多于M条
但是此时会引进一个新问题:消息重复消费

此时要保证消息消费的幂等性,如可通过消息唯一标识放入如redis中判断

3、消息堆积问题

堆积原因:

  • 生产者短时间生产大量消息到broker,消费者无法及时消费,如大促
  • 生产者无法感知消息堆积,仍继续生产消息,导致消息堆积进一步加剧
  • 消费者能力不足,消费时间长,消费者宕机、网络异常与broker无法通信
  • 业务功能存在bug,导致消费者无法消费

解决方案
消费者端

  • 增加消费者数量,并采用并发消费
  • 提高消费速度,避免消费时间过长。如果单条消息消费时间无法优化,可以提高批次拉取的数量(当批次拉取的数量较少时,拉取数据量/处理时间 < 生产速度时就容易堆积)
  • 消费消息时尽量减少耗时操作,尽量减少三方接口调用、读写库等
  • 合理设置消费组服务数量,合理增加topic的partition=个数,消费者数 >= 分区数
  • 补偿消费,即消费跳过积压数据,直接消费最新的数据,同时启动补偿数据进程消费积压数据

生产者端

  • 支持熔断与隔离,当broker消息积压时,对生产者熔断
  • 根据key采用合适的算法,将消息均匀分不到对应的分区中

服务端

  • 进行预估,设置合理的分区数

在电商中经常大促,因此很容易出现短时间内产生大量消息的问题,因此在大促前可根据历史情况进行容量预估和相关的扩容策略。

参考:

我是如何将一个老系统的Kafka消费者服务的性能提升近百倍的

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://xiahunao.cn/news/351122.html

如若内容造成侵权/违法违规/事实不符,请联系瞎胡闹网进行投诉反馈,一经查实,立即删除!

相关文章

docker卷--docker volumes 使用学习

一、在Docker中管理数据 1.1、Docker 保存容器数据的方法 Docker 卷&#xff08;Docker Volumes&#xff09;&#xff1a;可以将数据保存在 Docker 卷中&#xff0c;这样可以在容器和宿主机之间共享数据&#xff0c;并保证容器中的数据不会因为容器被删除而丢失。Docker 卷可以…

Halcon得出三角形内切圆

Halcon得出三角形内切圆 news2023/5/27 7:14: 目录 一、得出三角形的三个角点二、用类似尺规作图法得出三角形圆心 1、以三角形三角点画出圆形轮廓2、求出三角形轮廓与圆形轮廓之间的交点3、获得角平分线&#xff0c;三边角平分线交点为圆心三、求出圆心到边最短距离即半径 …

mathtype一步将word自带的公式编辑器的公式换成mathtype类型

之前不知道mathtype这个强大公式编辑器的存在&#xff0c;一直用word自带的公式编辑器敲的公式&#xff0c;写论文时害怕公式被查重&#xff0c;因此借助mathtype将公式转换一下。 点击转换公式 把对应的勾选上 点击转换&#xff0c;等待一些时长&#xff0c;便&#x1f197;…

word2010公式编辑器 格式设置

2010好像也只能调用公式3.0来实现&#xff1a;插入-对象-microsoft 公式 3.0-样式 然后设置斜体&#xff08;按下图修改&#xff09; 我的2003的&#xff0c;双击你的公式进入公式编辑器&#xff0c;选中要改的在样式其它中修改&#xff0c;或者先在定义中事先定义好格式。

计算机word的函数怎么用,Word公式编辑器怎么使用,教您怎么使用

word是我们经常使用的文字处理器应用程序由于其功能强大深受用户喜爱已经成为了办公软件中不可或缺的一员word公式编辑器在哪&#xff0c;一些用户需要在用word的时候用到一些数学公式&#xff0c;问朋友word里怎么编辑公式&#xff0c;都说的模棱两可&#xff0c;为此小编整理…

Word中的公式编辑器

这里推荐一款AxMath&#xff0c;我们来看看它集成在word中的标签&#xff1a; 这个是超级好用的哦。 下载 双击安装安装包AxMath 安装 打开word&#xff0c;就可以看到菜单栏上会多了一个“AxMath”的选项卡&#xff0c;点击“行内公式“即可编辑公式。 AxMath还支持公式对…

word中插入常用几种公式编辑器

公式编辑器对于写毕业论文和发表文章是十分重要的&#xff0c;常用的公式编辑器有以下几种&#xff1a; 1.word中自带的公式编辑器&#xff0c;像2016版本的word&#xff0c;公式编辑器就有很多功能 2.AxMath AxMath是一款新生公式编辑器&#xff0c;但其公式编辑功能毫不逊色于…

计算机查重公式编辑器,知网查重文字公式编辑器吗

知网查重文字公式编辑器吗&#xff1f;答案是肯定的。知网查重公式算重复的&#xff0c;这意味着word里公式会查重&#xff0c;更会查重wps公式了&#xff0c;所以不管你是用word自带公式编辑器&#xff0c;还是说文字公式编辑器都会查重到。那么&#xff0c;知网查重文字公式编…

Word自带公式编辑器卡死的解决办法

Word自带公式编辑器卡死的解决办法 容易出现卡死的情况是输入完公式后回车。有教程说是因为默认打印机设置的是远程&#xff0c;更改默认打印机为本地的即可。如图&#xff0c;很多人设置这个就可以解决了。 但是该方法对我无效&#xff01;详细的看了一下和word运行的还有福昕…

word 自带公式编辑器中公式等号对齐方法

注意&#xff1a;这种方法只能对带括号的公式有用&#xff0c;比如下面的括号&#xff1b;且行数是根据 Enter 换行自动填补的&#xff0c;不是矩阵设定的 &#xff01; 我们在写论文时经常遇到公式不对齐问题&#xff0c;影响美观&#xff0c;下面详细介绍一下 word 自带公式…

word自带的公式编辑器——用法技巧总结

Word提供了像Latex一样书写公式的特性&#xff08;虽然我也不知道&#xff0c;姑且算吧&#xff09;。详情可见 https://support.office.com/en-us/article/Linear-format-equations-using-UnicodeMath-and-LaTeX-in-Word-2e00618d-b1fd-49d8-8cb4-8d17f25754f8?uien-US&…

如何在Word中打开公式编辑器

MathType是一款受大众喜爱的功能强大的数学、物理公式编辑器&#xff0c;而Word作为常用的文字处理软件&#xff0c;所以要掌握在其中插入公式的技巧。虽然有自带的公式编辑器&#xff0c;但是不全面&#xff0c;建议使用专业的MathType软件&#xff0c;并且Word文档支持很多种…

word公式编辑器复制粘贴未响应_Word公式编辑器使用中的常见问题的解决办法(图文教程)...

关于公式编辑器的使用在很多书刊和杂志上都有介绍&#xff0c;但在日常使用过程中&#xff0c;还有一些问题经常出现&#xff0c;比如说&#xff1a;输入数学公式后行距不等、不能更改公式的颜色、打印时经常出现乱码等。针对上面提到的各种问题&#xff0c;我们来看一下具体的…

word自带公式编辑_原来有这样几种方式打开Word中的公式编辑器

由于MathType简单易学,并且编辑出来的公式符号国际出版要求,因此越来越多的人在发表期刊论文时用MathType来写公式。常见的就是在Word中调用MathType,但是一些用户们却不知道该怎么打开它。下面就来介绍在Word中打开MathType的几种方式。 MathType是一款专业的数学公式编辑器…

ArduPilot飞控开源代码之滤波设置

ArduPilot飞控开源代码之滤波设置 1. 源由2. 原理3. 调优3.1 ACC低通滤波 INS_ACCEL_FILTER3.2 GRYO低通滤波 INS_GYRO_FILTER3.3 陷波滤波 INS_HNTCH_ENABLE & INS_HNTC2_ENABLE 4. 总结5. 参考资料 1. 源由 对于飞控传感器来来说&#xff0c;振动噪声也是数据。 单纯从数…

word自带公式编辑_关于Word内置公式编辑器不能使用的解决方法,请收藏

我们在编写Word文档时可能需要插入一些公式&#xff0c;这里可以使用Word内置的公式编辑器&#xff0c;但是有用户反映说无法插入公式&#xff0c;这是为何&#xff1f;下文整理了关于Word不能插入公式的解决方法&#xff0c;大家可以参考。 Word2016无法插入公式怎么办&#x…

word公式编辑器复制粘贴未响应_word公式编辑器常见问题汇总,附带解决方法

为了实现公式的多样化&#xff0c;很多人都会在word中使用公式编辑器。但在操作的时候&#xff0c;还是出现了很多问题。比如说不知道在word中怎么插入公式、不知道怎么更改公式的颜色等等。其实&#xff0c;在word中使用公式编辑器&#xff0c;可能对于初学者来说要完全上手会…

Word:公式编辑器,像Latex一样输入

之前写论文&#xff0c;用自带的公式编辑器&#xff0c;被人家一脸嫌弃。 我问他&#xff0c;那你用什么&#xff1f;他回答&#xff0c;“当然用MathType啊”。 不过我好像经常被他嫌弃。呵呵。 一脸高高在上的样子&#xff0c;不知自信从何而来。 后来我发现&#xff0c;W…

word自带公式编辑_Word公式编辑器下载_Word公式编辑器官方下载-太平洋下载中心...

常见问答&#xff1a; word2003版中的word公式编辑器在哪&#xff1f; 1、如图打开word2003版&#xff0c;点击上面菜单插入 软件截图17 2、如图找到菜单里的对象&#xff0c;点击打开 软件截图18 3、打开对象如图&#xff0c;从选框里找到公式3.0&#xff0c;点击确定打开 软件…

word2010 2003公式编辑器 格式设置

word2010调用公式3.0来实现&#xff1a;插入-对象-microsoft 公式 3.0-样式 然后设置斜体&#xff08;按下图修改&#xff09; word2003 双击你的公式进入公式编辑器&#xff0c;选中要改的在样式其它中修改&#xff0c;或者先在定义中事先定义好格式。