急急急!Kafka Topic 资源权限紧张怎么办?

佳蕙
• 阅读 852

我们都知道 Kafka 的 topic 资源比较“贵”,所以一般会给项目 topic 权限限制,按需申请。Milvus 会在建新表时自动申请 kafka topic 资源,这时候自动申请不到怎么办?手动配置 topic 要符合什么规范才能被 Milvus 使用?

通过本文的小实践,大家可以了解 Milvus 如何为 Kafka Topic 命名、使用 Topic 的机制,以及用户在 Kafka Topic 资源权限紧张情况下,对 Kafka Topic 的预设及使用。希望能给大家启发的同时增加对 Milvus 消息系统的了解。

急急急!Kafka Topic 资源权限紧张怎么办?

Topic 在 Milvus 中的作用

Kafka 是一个分布式流处理系统,流处理系统使它可以像消息队列一样 publish 或者 subscribe 消息。Topic 用于建立 Producer 和 Consumer 之间的订阅关系。生产者发送消息到指定的 Topic,消息者从这个 Topic 下面消费消息(Kafka 把消息存在 topic 中,每一条消息包含 key、value、timestamp)。

在Milvus 2.x 中,流式消息经过 Proxy 生产到 Kafka topic 中,再由 Data Node 节点消费到对象存储中。

急急急!Kafka Topic 资源权限紧张怎么办?

参考链接:https://milvus.io/docs/data_processing.md

Milvus Kafka Topic 命名规则

命名规则

  • 配置文件中的 chanNamePrefix:
  # Channel name generation rule: ${namePrefix}-${ChannelIdx}
common:
  chanNamePrefix:
    cluster: "by-dev"
    rootCoordDml: "rootcoord-dml"
    rootCoordDelta: "rootcoord-delta"
    dataCoordTimeTick: "datacoord-timetick-channel"
  • Milvus 会创建三种类型的 Topic:

Datacoord-timetick-channel——chanNamePrefix.cluster-chanNamePrefix.dataCoordTimeTick

by-dev-datacoord-timetick-channel

Dml channel--chanNamePrefix.cluster-chanNamePrefix.rootCoordDml

1 by-dev-rootcoord-dml_0
2 ...
3 by-dev-rootcoord-dml_255

Delta channel--chanNamePrefix.cluster-chanNamePrefix.rootCoordDelta

1 by-dev-rootcoord-delta_0
2 ...
3 by-dev-rootcoord-delta_255

机制

  1. 在启动 Milvus 集群时,会创建唯一的 dataCoordTimeTick:by-dev-datacoord-timetick-channel
  1. 当创建一个新的 Collection 时,系统会创建对应的 rootCoordDml 和 rootCoordDelta 。由于一个表默认有 2 个 shard number ,共创建 22 共 4 个 topic(若shard number 为 4 ,则创建 42 个 topic,以此类推),名称如下:
1 by-dev-rootcoord-dml_0
2 by-dev-rootcoord-dml_1
3 by-dev-rootcoord-delta_0
4 by-dev-rootcoord-delta_1

默认 rootCoord.dmlChannelNum 是 256(需要注意的是在新版本中我们调低了默认值),意思是最多创建 dml-channel topic 256 个,如果 collection 数量所需 topic 超过该值,则会对 topic 进行复用。所以我们可以通过控制 rootCoord.dmlChannelNum 来控制 topic 的复用。

急急急!Kafka Topic 资源权限紧张怎么办?

Milvus Kafka Topic 预设方案

在了解了 Milvus 对 Topic 的命名和复用规则之后,我们可以按规则预设 Kafka Topic。

  1. 根据命名规则预设对应的 rootCoordDml 和 rootCoordDelta 相关 Topic。
1 by-dev-rootcoord-dml_2
2 by-dev-rootcoord-dml_3
3 by-dev-rootcoord-delta_2
4 by-dev-rootcoord-delta_3
  1. 修改 rootCoord.dmlChannelNum 参数为4,控制 dml-channel topic 的使用数量。
  1. 在系统读取到预设 topic 时直接使用,不再重新申请。

(本文作者张翔系 Zilliz 客户工程师;曾杰系 Zilliz 主任工程师)

本文由mdnice多平台发布

点赞
收藏
评论区
推荐文章
Easter79 Easter79
4年前
springboot+kafka集成
kafka概念  Topic:消息根据Topic进行归类,可以理解为一个队里。  Producer:消息生产者,就是向kafkabroker发消息的客户端。  Consumer:消息消费者,向kafkabroker取消息的客户端。  broker:每个kafka实例(server),一台kafka服务器就是一个broker,一个集群
DevOpSec DevOpSec
3年前
Kafka topic leader 均衡
Kafkatopicleader均衡(about:blank%E8%83%8C%E6%99%AF"背景")背景在创建一个topic时,partition会在Br
DevOpSec DevOpSec
3年前
Kafka——彻底删除Topic
一、配置server.properties 设置delete.topic.enabletrue如果没有设置delete.topic.enabletrue,则调用kafka的delete命令无法真正将topic删除,而是显示(
Stella981 Stella981
4年前
MapReduce On YARN的资源申请
MapReduceOnYARN的资源申请MapReduce资源分配原理MapReduce所需要的资源包含三类:1.mappertask所需要的资源2.reducertask所需的资源3.JobTracker(AM)所需要的资源mappermapper的数量由输入的splits个数决定.有
Easter79 Easter79
4年前
Storm结合kafka参数配置详解+代码示例(累计单词出现的次数)
kafka参数配置详情:publicfinalBrokerHostshosts;//设置kafka从哪里获取相关的配置信息publicfinalStringtopic;//从哪个topic开始消费publicfinalStringclientId;//设置客户端标识publicintfetchSizeBytes10
Stella981 Stella981
4年前
Kafka监控工具kafka
KafkaMonitor为Kafka的可视化管理与监控工具,为Kafka的稳定运维提供高效、可靠、稳定的保障,这里主要简单介绍KafkaMonitor的相关功能与页面的介绍;  KafkaMonitorv0.1主要功能有:Kafka基本信息仪表盘、broker列表、topic列表、当前消费者列表、Topic添加删除、Topic数据
Stella981 Stella981
4年前
Kafka Java API获取非compacted topic总消息数
目前Kafka并没有提供直接的工具来帮助我们获取某个topic的当前总消息数,需要我们自行写程序来实现。下列代码可以实现这一功能,特此记录一下:/获取某个topic的当前消息数Java8only@paramtopic@
Stella981 Stella981
4年前
Kafka常用操作
Kafka的版本间差异较大,下面是0.8.1的操作方法首先cd到kafaka的bin目录下,操作kafka的工具都在这里呢。如果发现找不到,或者名字不对,说明kafka版本不对。以topic是test为例子zookeeper后的ip改成你们自己的创建topic./kafkatopics.shtopictestcreate
Stella981 Stella981
4年前
Kafka基于topic的分区设计
1.若没有分区,一个topic对应的消息集在分布式集群服务组中,就会分布不均匀,即可能导致某台服务器A记录当前topic的消息集很多,若此topic的消息压力很大的情况下,服务器A就可能导致压力很大,吞吐也容易导致瓶颈。有了分区后,假设一个topic可能分为10个分区,kafka内部会根据一定的算法把10分区尽可能均匀分布到不同的服务器上,比如:A服务
Stella981 Stella981
4年前
Kafka常用命令
Kafka命令行工具1.查看Kafka现有的Topic1bin/kafkatopics.shzookeeperlocalhost:2181list2.查看Topic详情1bin/kafkatopics.shzo
一种面向混合云平台基于LSTM预测模型的资源池配额方法。
基于用户的历史配额申请情况和实际资源使用情况组成数据集搭建LSTM时序预测模型。当前用户提出资源配额申请时,基于该用户的历史资源实际使用情况结合LSTM模型来预测该次配额申请的实际使用量来动态调整实际分配给用户的配额量从而减少资源滥用的可能性。