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

打印 上一主题 下一主题

主题 1055|帖子 1055|积分 3165

我们都知道 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:
  1.   # Channel name generation rule: ${namePrefix}-${ChannelIdx}<br />common:<br />  chanNamePrefix:<br />    cluster: "by-dev"<br />    rootCoordDml: "rootcoord-dml"<br />    rootCoordDelta: "rootcoord-delta"<br />    dataCoordTimeTick: "datacoord-timetick-channel"<br />
复制代码


  •          Milvus 会创建三种范例的 Topic:
  Datacoord-timetick-channel——chanNamePrefix.cluster-chanNamePrefix.dataCoordTimeTick
  1. by-dev-datacoord-timetick-channel<br />
复制代码
Dml channel--chanNamePrefix.cluster-chanNamePrefix.rootCoordDml
  1. 1 by-dev-rootcoord-dml_0<br />2 ...<br />3 by-dev-rootcoord-dml_255<br />
复制代码
Delta channel--chanNamePrefix.cluster-chanNamePrefix.rootCoordDelta
  1. 1 by-dev-rootcoord-delta_0<br />2 ...<br />3 by-dev-rootcoord-delta_255<br />
复制代码
机制

  

  •          在启动 Milvus 集群时,会创建唯一的 dataCoordTimeTick:by-dev-datacoord-timetick-channel。
  •          当创建一个新的 Collection 时,系统会创建对应的 rootCoordDml 和 rootCoordDelta 。由于一个表默认有 2 个 shard number ,共创建 22 共 4 个 topic(若shard number 为 4 ,则创建 42 个 topic,以此类推),名称如下:
  1. 1 by-dev-rootcoord-dml_0<br />2 by-dev-rootcoord-dml_1<br />3 by-dev-rootcoord-delta_0<br />4 by-dev-rootcoord-delta_1<br />
复制代码
默认 rootCoord.dmlChannelNum 是 256(需要注意的是在新版本中我们调低了默认值),意思是最多创建 dml-channel topic 256 个,如果 collection 数量所需 topic 超过该值,则会对 topic 进行复用。所以我们可以通过控制 rootCoord.dmlChannelNum 来控制 topic 的复用。
     
    Milvus Kafka Topic 预设方案

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

  •          根据命名规则预设对应的 rootCoordDml 和 rootCoordDelta 相干 Topic。
  1. 1 by-dev-rootcoord-dml_2
  2. 2 by-dev-rootcoord-dml_3
  3. 3 by-dev-rootcoord-delta_2
  4. 4 by-dev-rootcoord-delta_3
复制代码

  •          修改 rootCoord.dmlChannelNum 参数为4,控制 dml-channel topic 的使用数量。
  •          在系统读取到预设 topic 时直接使用,不再重新申请。
  (本文作者张翔系 Zilliz 客户工程师;曾杰系 Zilliz 主任工程师)
  本文由 mdnice 多平台发布

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

郭卫东

论坛元老
这个人很懒什么都没写!
快速回复 返回顶部 返回列表