- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
有一个微服务,它从外部接收一批消息并将它们推送到kafka。每条消息都是单独发送的,因此对于每批我有大约 1000 条消息,每条 100 字节。消息似乎在内部占用了更多空间,因为磁盘上可用空间的下降速度比我预期的要快得多。
我正在考虑更改生产者逻辑,它将所有批处理放入一条消息中的方式(然后消费者将自行拆分它们)。但是我没有找到任何关于许多小消息的空间或性能问题的信息,也没有找到任何关于大小和数量之间平衡的准则。而且我对 Kafka 的了解还不足以得出我自己的结论。
谢谢。
最佳答案
生产者
将自行批处理发往同一分区的消息,以避免不必要的调用。
生产者之所以能做到这一点,要归功于它的后台线程。在图中,您可以看到它如何在将 3 条消息发送到每个分区之前对其进行批处理。
如果您还在生产者端设置了压缩,它也会在将消息发送到金属丝。此属性也可以在代理端设置(因此消息由生产者未压缩发送,并由代理压缩)。
这取决于您的网络容量来决定您是喜欢较慢的生产者(因为压缩会减慢它)还是在线路上的更大负载。请注意,为大文件设置较大的压缩级别可能会对您的整体性能产生很大的影响。
无论如何,我相信大/小消息问题对消费者
方面的伤害更大;向 Kafka 发送消息既简单又快速(默认行为是异步的,因此 生产者
不会太忙)。但是在 consumer
端,您必须查看处理消息的方式:
在这里,您将消费与处理结合起来。这是最简单的方法:消费者设置自己的线程,读取 kafka 消息并处理它。然后继续循环。
在这里,您将消费和处理分离。 在大多数情况下,从 kafka 读取消息的速度会比处理消息所需的时间快。 这只是物理学。在这种方法中,一个消费者提供许多分担处理负载的独立工作线程。
有关此的更多信息 here ,就在 Constructors
区域上方。
我为什么要解释这个?好吧,如果您的消息太大,并且您选择了第一个选项,您的消费者可能不会在超时间隔内调用 poll()
,因此它将不断重新平衡。如果您的消息很大(并且需要一些时间来处理),最好选择实现第二个选项,因为消费者将继续自己的方式,调用 poll()
而不会陷入重新平衡。
如果消息太大太多,您可能不得不开始考虑可以将消息缓冲到内存中的不同结构。例如,Pools
、deques
、queues
是实现此目的的不同选项。
您还可以增加轮询超时间隔。这可能会隐藏你关于死消费者的信息,所以我真的不推荐它。
所以我的回答是:这基本上取决于:您的网络容量、所需的延迟时间和处理能力。如果您能够像处理小消息一样快地处理大消息,那么我就不会在意了。
也许如果您需要过滤和重新处理较旧的消息,我建议您对主题进行分区并发送较小的消息,但这只是一个用例。
关于performance - Kafka : is it better to have a lot of small messages or fewer, 但更大的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62778495/
我正在 Java 上开发 Tic Tac Toe 游戏(eclipse)。在我的计算机上,我的对话框非常小。我一直在努力把它做得更大。我没有任何运气。我希望这里有人能引导我走向正确的方向。下面的代码是
出于辅助功能的目的,我需要使所有可滚动控件(列表、 ListView )的滚动条更宽,滚动条箭头更大。 如何从可滚动控件(例如:TListView)获取滚动条( handle )? 如何使滚动条和箭头
在我的 flutter 应用程序中,我想制作一个圆圈作为这样的背景: 最佳答案 问题主要是当屏幕处于横向时,除非它覆盖整个屏幕,否则你不能在那里放置一个圆圈。 ClipRect 还有另一种方法,如果这
如何在列表中找到最接近的值,这将返回更高的值?示例:[3,7,12,19] 的列表,如果我的值为 8,我如何获得最接近(更大)的值 12?我想要 dart 中的这个逻辑。 最佳答案 只需过滤 List
我是一个绝对的 HTML 和 javascript 初学者,我很确定,这真的很容易实现。我生成了以下 IFRAME: document.write("");Das aktuelle Wetter in
我有点知道为什么压缩 DES 文件时它更大,但谁能给我正确的理由或链接,我似乎找不到任何原因? 谢谢:) 最佳答案 经过适当加密的密文在压缩程序看来非常像一系列随机数。如果没有以明文形式出现的模式,压
假设我有两个表,其中一个(我们称之为 person)有一个名为 type 的字段,该字段存储链接到另一个表的整数(我们称之为types 带有一个名为 id 的字段。什么会更能提高性能? 一个更大的查询
我有一个ListView,它使用GridView来显示DataTable,并且当新行添加到DataTable
我在只出现在 Firefox 中的导航菜单上遇到了一个奇怪的问题(在 IE7、8、9、10 和 Chrome 中工作正常)。菜单上的链接显示为 block ,但它们在 Firefox 中计算得比任何其
我正在使用 javax.mail 并获取邮件收件箱文件夹中的邮件计数。使用https://outlook.office.com/ Folder folderInbox = store.getFolde
我想让地球字形图标更大,以便它覆盖页面的大部分(它是矢量图像)。它不在按钮或任何东西中;它只是一个人。有没有办法做到这一点? 最佳答案 增加 glyphicon 的 font-size
我定制了一个看起来像这样的搜索栏 问题是很难捕获 slider 。所以我想做的是增加拇指的碰撞箱以使其更容易。我尝试了一些东西,但总是弄乱了搜索栏的外观。我有什么想法可以做到这一点吗? 布局.xml
我有一个问题:下载到 Documents 文件夹中的音乐比以前长 2 倍,而且体积更大。比特率也有问题(增加/减少 2 倍)。图片保存得很好,但任何音乐都有问题。也许我需要手动设置音频比特率,但我还没
为什么 div 区域仍然比图像 css 大? /image/WHDU3.jpg 如何设置 div 区域以适合图像? 最佳答案 IMG - 是行内元素,因此
我发现在对文本文件进行排序时非常困惑。不同的算法/应用程序会产生不同的结果,例如,比较两个字符串 str1=";P" 和 str2="-_-" 仅供引用,这里给出了这些字符串中每个字符的 ASCII:
我有一个应用程序已经在 Play 商店中存在多年,我刚刚构建了一个更新。该更新利用了 numberpicker,它的 min-sdk 为 11,并且在 v4 支持库中不适用。我倾向于发布我的新版本并在
你能告诉我如何强制 CSS 使 line-through 属性比元素 width 宽吗? 例如 50 结果看起来像现在如何使线条比元素更宽更明显? 赞 最佳答案 你可以使用 ,这是一种很俗气的方式 &
我想制作一个比应有的大得多的虚拟 Win32 EXE 文件。所以默认情况下,样板 Win32 EXE 文件为 80 KB。我想要一个 5 MB 的空间来测试其他一些实用程序。 第一个想法是添加资源,但
我有一个 UIView,里面有一个更大的 UIImageView。有没有办法隐藏超出 View 大小的内容? CGRect baseFrame = CGRectMake(100, 100, 300,
当我改变缓冲区的大小时,我得到了无法从 BufferedReader 解释的奇怪结果。 我曾强烈期望性能会随着缓冲区大小的增加而逐渐增加, yield 递减设置相当快,此后性能或多或少会持平。但看起来
我是一名优秀的程序员,十分优秀!