标签: rebalancing

卡夫卡重新平衡和听众陷阱

我正在阅读Kafka:The Definitive Guide,并希望更好地理解重新平衡监听器.本书中的示例简单地使用a HashMap来维护已处理的当前偏移量,并在撤销分区时提交当前状态.我担心的是:

我在代码示例中有两个问题/问题:

  1. 使用的语言让我假设这些回调是在不同的线程上进行的.那么,在应用当前偏移量时,是否应该考虑线程安全性?此外,在提交后,当前批次是否应该取消?
  2. 它说使用commitSync确保在重新平衡进行之前提交偏移量.然而,这仅在该消费者中是同步的.有没有一种机制让协调员在收到所有订阅消费者的回复之前不会继续进行?

apache-kafka rebalancing

12
推荐指数
1
解决办法
1189
查看次数

使用MySQL/InnoDB重新平衡表分片

我有一个巨大的InnoDB表(> 1TB,> 1B行),我想要分片:我想从那个大表中创建多个较小的独立表.

怎么做 ?

我已经尝试过的:

  • 通过从原始表中选择行来将行移动到分区,并将它们插入分区.这需要很长时间,并且在操作期间保持行同步是很困难的(但是对于触发器似乎是可行的,只要分区在同一服务器上).我还没有找到一个可以使用的工具来做到这一点.
  • 复制整个表,然后删除不属于该分区的行.仍然很慢,特别是考虑到桌子的大小.这显然是MySQL Fabric所做的.

随机疯狂的想法:

  • .idb文件脱机并将其导入服务器,但我不知道是否存在能够执行此操作的工具.

显示创建表:

CREATE TABLE `Huge` (
  `account_id` int(11) NOT NULL,
  `id` bigint(20) NOT NULL AUTO_INCREMENT,
  `foo` varchar(255) NOT NULL,
  `bar` int(11) NOT NULL,
  `baz` char(2) NOT NULL,
  PRIMARY KEY (`account_id`,`id`),
  UNIQUE KEY `id` (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 ROW_FORMAT=COMPRESSED;
Run Code Online (Sandbox Code Playgroud)

分片键是account_id.当前的主键是(account_id,id)使行聚集account_id.

是否有任何工具可以自动执行此任务?有没有更好的方法呢?

mysql innodb sharding rebalancing

8
推荐指数
1
解决办法
1214
查看次数

如何检查 Kafka Consumer 是否准备就绪

我已将 Kafka 提交策略设置为最新且缺少前几条消息。如果我在开始将消息发送到输入主题之前休眠 20 秒,则一切都按预期工作。我不确定问题是否与消费者花费很长时间进行分区重新平衡有关。有没有办法在开始轮询之前知道消费者是否准备好?

apache-kafka rebalancing

7
推荐指数
1
解决办法
6084
查看次数

消费者“group_name”组正在永远重新平衡

我使用的是卡夫卡:2.11-1.0.1。该应用程序包含主题“X”的并发度为 5 且分区为 5 的使用者。

当应用程序重新启动并且在分区分配之前在主题“X”上发布消息时,主题“X”的 5 个消费者找到组协调器并向组协调器发送加入组请求。预计会得到团体协调员的答复,但没有收到任何答复。

我已检查 Kafka 服务器日志,但找不到 DEBUG 日志级别的相关日志。

当我运行描述消费者组命令时,出现以下观察结果:

  1. 消费群体正在重新平衡
  2. 老消费者,有一定滞后性
  3. 具有一些随机名称的新消费者。随着时间的推移,新的消费者数量不断增加。

新消息发布在主题“X”上,但消费者没有收到。

heartbeat 和 session.time.out 设置为默认值。

如果消息在主题“X”及其使用者的分区分配之前发布,则会出现此问题。

我的疑问是:为什么重新平衡没有完成以便新的消费者开始消费新生成的消息?

apache-kafka kafka-consumer-api rebalancing spring-kafka

6
推荐指数
1
解决办法
1万
查看次数

Kafka连接器-无法停止重新平衡

我正在使用kafka连接器融合3.0.1版本。我创建了一个名为new-group的新组,其上大约有20个主题。这些主题大多数都很忙。但是很可惜的是,当我启动连接器框架时,系统无法停止重新平衡,所有主题大约需要2分钟重新平衡。我不知道原因 一些错误信息是:

[2017-01-03 21:43:57,718] ERROR Commit of WorkerSinkTask{id=new-connector-0} offsets threw an unexpected exception:  (org.apache.kafka.connect.runtime.WorkerSinkTask:180)
org.apache.kafka.clients.consumer.CommitFailedException: Commit cannot be completed since the group has already rebalanced and assigned the partitions to another member. This means that the time between subsequent calls to poll() was longer than the configured session.timeout.ms, which typically implies that the poll loop is spending too much time message processing. You can address this either by increasing the session timeout or by reducing the maximum size …
Run Code Online (Sandbox Code Playgroud)

apache-kafka rebalancing apache-kafka-connect

5
推荐指数
1
解决办法
2262
查看次数

Kubernetes - 触发 Pod 的重新平衡

我有一个 kubernetes 集群,其中设置了几个节点。我想确保 Pod 有效地分布在节点上。

我会解释:

假设我有两个节点: Node 1 - 2gb ram Node 2 - 2gb ram

我有这些豆荚: Pod 1 - 1gb ram on Node 1 Pod 2 - 100mb ram on Node 1 Pod 3 - 1gb ram on Node 2 Pod 4 - 100mb ram on Node 2

现在问题来了:假设我想向集群添加一个带有 1gb ram 的 pod。目前任何节点都没有空间,所以 kubernetes 不会这样做(除非我添加另一个节点)。我想知道 kubernetes 是否会看到它可以将 Pod 3 移动到节点 1 以便为新 Pod 腾出空间?

帮助

scheduling kubernetes rebalancing

5
推荐指数
1
解决办法
1万
查看次数

Service Fabric资源平衡器使用陈旧的报告负载

在研究Service Fabric上的资源平衡器和动态负载指标时,我们遇到了一些问题(运行devbox SDK GA 2.0.135).
在Service Fabric Explorer(门户网站和独立应用程序)中,我们可以看到平衡是经常运行的,大部分时间它几乎立即完成,这种情况每秒都会发生.在查看节点或分区上的负载度量信息时,它不会在报告负载时更新值.

我们根据交互(对服务的HTTP请求)发送动态负载报告,大量增加单个分区的报告负载数据.这个尖峰在5分钟内变得可见,此时平衡器实际上开始平衡.这似乎是加载数据刷新的间隔.在上次报告的时间得到更新所有的时间,但没有新的价值.

我们将指标添加到applicationmanifest和clustermanifest以确保它在平衡中使用.这意味着资源平衡器使用相同的数据5分钟.这是可配置的设置吗?是约束因为它是在devbox上运行的吗?我们在clustermanifest中尝试了很多变量,但似乎都没有影响这个刷新时间.

如果这不适应,有人可以解释为什么你会使用陈旧数据运行平衡器?为什么选择这5分钟的间隔?

metrics azure-service-fabric rebalancing

4
推荐指数
1
解决办法
613
查看次数