Kafka 为非 Java 语言创建主题 API 选项

编程入门 行业动态 更新时间:2024-10-28 20:29:15
本文介绍了Kafka 为非 Java 语言创建主题 API 选项的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

限时送ChatGPT账号..

虽然您可以通过 Java 或基于 Java 的语言创建主题(请参阅 here),如果不使用 Java,似乎没有一种干净的方法可以做到这一点.因此,纯语言客户端 API(如 kafka-node,纯 JavaScript 客户端)无法直接创建主题.相反,我们有两个选择:

While you can create a topic via Java or Java-based languages (see here), there does not seem to be a clean way to do this without using Java. As a result, pure-language client APIs (like kafka-node, a pure JavaScript client) can't directly create topics. Instead, we have two options:

1) 使用像向主题发送元数据请求这样的技巧——如果 auto.create.topics.enable 设置为 true,那么您可以创建一个topic -- 但仅限于默认配置,无法控制分区等

1) Use a hack like sending a metadata request to a topic -- if auto.create.topics.enable is set to true, then you can create a topic -- but only with the default configuration, no control over partitions, etc.

2) 为基于 Java 的客户端编写一个包装器,用于创建主题.最简单的方法是使用命令行参数exec脚本bin/kafka-topics.sh,这至少可以说是丑陋的.

2) Write a wrapper around a Java-based client just for topic creation. The easiest way to do this is to exec the script bin/kafka-topics.sh with command line arguments, which is ugly, to say the least.

有没有更好的方法来做到这一点?Zookeeper 有一个纯 JavaScript 客户端,node-zookeeper-client,如果我直接在 Zookeeper 中操作代理/分区信息会发生什么?

Is there a better way to do this, though? There's a pure-JavaScript client for Zookeeper, node-zookeeper-client, what happens if I manipulate broker / partition info directly in Zookeeper?

还有其他想法吗?

推荐答案

您现在可以使用 REST Proxy API v3 为非 Java 语言创建带有 http 请求的 Kafka 主题.

You can now use REST Proxy API v3 to create Kafka topics with http requests for non-Java languages.

根据Confluent REST Proxy API参考 可以使用当前作为预览功能提供的 REST 代理 API v3 创建主题.

According to the Confluent REST Proxy API Reference the creation of a topic is possible with the REST Proxy API v3 that is currently available as a preview feature.

API v3 可用于评估和非生产测试目的,或向 Confluent 提供反馈."

"The API v3 can be used for evaluation and non-production testing purposes or to provide feedback to Confluent."

主题创建请求的示例如下所示并记录在这里:

An example of a topic creation request is presented below and documented here:

POST /v3/clusters/cluster-1/topics HTTP/1.1
Host: kafkaproxy.example
Content-Type: application/vnd.api+json
Accept: application/vnd.api+json

{
  "data": {
    "attributes": {
      "topic_name": "topic-1",
      "partitions_count": 2,
      "replication_factor": 3,
      "configs": [
        {
          "name": "cleanup.policy",
          "value": "compact"
        }
      ]
    }
  }
}

使用curl:

curl -X POST -H "Content-Type: application/vnd.api+json" -H "Accept: application/vnd.api+json" \
          --data '{"data":{"attributes": {"topic_name": "topic-1", "partitions_count": 2, "replication_factor": 1, "configs": [{"name": "cleanup.policy","value": "compact"}]}}}' \
          "http://localhost:8082/v3/clusters/<cluster-id>/topics"

可以使用

curl -X GET -H "Accept: application/vnd.api+json" localhost:8082/v3/clusters

这篇关于Kafka 为非 Java 语言创建主题 API 选项的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

更多推荐

[db:关键词]

本文发布于:2023-04-19 13:27:36,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/961780.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:选项   语言   主题   Kafka   Java

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!