1

我正在尝试使用我当前的连接集群为镜像制造商 2 进行设置。根据这个文档,它可以通过 connect rest api 来完成。

https://cwiki.apache.org/confluence/display/KAFKA/KIP-382%3A+MirrorMaker+2.0#KIP-382:MirrorMaker2.0-RunningMirrorMakerinaConnectcluster

我按照发送此 PUT 请求的示例进行操作:

PUT /connectors/us-west-source/config HTTP/1.1

{
    "name": "us-west-source",
    "connector.class": "org.apache.kafka.connect.mirror.MirrorSourceConnector",
    "source.cluster.alias": "us-west",
    "target.cluster.alias": "us-east",
    "source.cluster.bootstrap.servers": "us-west-host1:9091",
    "topics": ".*"
}

但我得到一个方法不允许响应错误响应。

{
  "error_code": 405,
  "message": "HTTP 405 Method Not Allowed"
}

如果我从 / 执行简单的 GET 并返回版本,则 api 看起来不错

{
  "version": "2.1.0-cp1",
  "commit": "bda8715f42a1a3db",
  "kafka_cluster_id": "VBo-j1OAQZSN8tO4lMJ0Gg"
}
4

1 回答 1

3

PUT 方法不起作用,使用 POST 就像 api 的文档显示的那样: https ://docs.confluent.io/current/connect/references/restapi.html#get--connectors

按照@cricket_007 的建议,从 url 中删除连接器的名称,并用新元素包装配置,如下所示:

curl --noproxy "*" -XPOST -H 'Content-Type: application/json' -H 'Accept: application/json' http://localhost:8083/connectors -d'{
    "name": "dc-west-source",
    "config": {
    "connector.class": "org.apache.kafka.connect.mirror.MirrorSourceConnector",
    "source.cluster.alias": "dc-west",
    "target.cluster.alias": "dc-east",
    "source.cluster.bootstrap.servers": "dc-west-cp-kafka-0.domain:32721,dc-west-cp-kafka-1.domain:32722,dc-west-cp-kafka-2.dc.domain:32723",
    "topics": ".*" 
    }
}
' | jq .
于 2020-04-24T10:47:14.290 回答