关于人工智能:急急急Kafka-Topic-资源权限紧张怎么办

38次阅读

共计 1941 个字符,预计需要花费 5 分钟才能阅读完成。

咱们都晓得 Kafka 的 topic 资源比拟“贵”,所以个别会给我的项目 topic 权限限度,按需申请。Milvus 会在建新表时主动申请 kafka topic 资源,这时候主动申请不到怎么办?手动配置 topic 要合乎什么标准能力被 Milvus 应用?

通过本文的小实际,大家能够理解 Milvus 如何为 Kafka Topic 命名、应用 Topic 的机制,以及用户在 Kafka Topic 资源权限缓和状况下,对 Kafka Topic 的预设及应用。心愿能给大家启发的同时减少对 Milvus 音讯零碎的理解。

Topic 在 Milvus 中的作用

Kafka 是一个分布式流解决零碎,流解决零碎使它能够像音讯队列一样 publish 或者 subscribe 音讯。Topic 用于建设 Producer 和 Consumer 之间的订阅关系。生产者发送音讯到指定的 Topic,音讯者从这个 Topic 上面生产音讯(Kafka 把音讯存在 topic 中,每一条音讯蕴含 key、value、timestamp)。

在 Milvus 2.x 中,流式音讯通过 Proxy 生产到 Kafka topic 中,再由 Data Node 节点生产到对象存储中。

参考链接: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 的复用。

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 多平台公布

正文完
 0