Соединитель источника REST API с Kafka Connect - Поддерживаются ли вызовы HTTP? - PullRequest
0 голосов
/ 20 марта 2020

Я пытаюсь использовать предоставленный сообществом соединитель на https://github.com/llofberg/kafka-connect-rest для опроса данных с конечной точки REST HTTP. Конфигурация для моего разъема такая же. ниже:

curl -X POST http://localhost:8083/connectors -H "Content-Type: application/json" -d '{"name": "rest-source-connector", "config":{"key.converter":"org.apache.kafka.connect.storage.StringConverter","value.converter":"org.apache.kafka.connect.storage.StringConverter","connector.class": "com.tm.kafka.connect.rest.RestSourceConnector","tasks.max": "1", "rest.source.poll.interval.ms": "300000", "rest.source.method":"GET","rest.source.url": "https://<insert_endpoint>","rest.source.payload.converter.class": "com.tm.kafka.connect.rest.converter.StringPayloadConverter","rest.source.headers": "Content-Type:application/json,Accept:application/json","rest.source.topic.selector":"com.tm.kafka.connect.rest.selector.SimpleTopicSelector","rest.source.destination.topics": "test-topic"}}'

Я вижу ошибку ниже, когда соединитель работает и пытается извлечь данные из конечной точки:

ERROR HTTP call execution failed null (com.tm.kafka.connect.rest.RestSourceTask)
org.apache.kafka.connect.errors.RetriableException
    at com.tm.kafka.connect.rest.http.executor.OkHttpRequestExecutor.execute(OkHttpRequestExecutor.java:67)
    at com.tm.kafka.connect.rest.RestSourceTask.poll(RestSourceTask.java:89)
    at org.apache.kafka.connect.runtime.WorkerSourceTask.poll(WorkerSourceTask.java:265)
    at org.apache.kafka.connect.runtime.WorkerSourceTask.execute(WorkerSourceTask.java:232)
    at org.apache.kafka.connect.runtime.WorkerTask.doRun(WorkerTask.java:177)
    at org.apache.kafka.connect.runtime.WorkerTask.run(WorkerTask.java:227)
    at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
    at java.util.concurrent.FutureTask.run(FutureTask.java:266)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
    at java.lang.Thread.run(Thread.java:748)
Caused by: java.io.EOFException
    at okio.RealBufferedSource.require(RealBufferedSource.java:65)
    at okio.GzipSource.consumeHeader(GzipSource.java:114)
    at okio.GzipSource.read(GzipSource.java:73)
    at okio.RealBufferedSource.select(RealBufferedSource.java:100)
    at okhttp3.internal.Util.bomAwareCharset(Util.java:467)
    at okhttp3.ResponseBody.string(ResponseBody.java:181)
    at com.tm.kafka.connect.rest.http.executor.OkHttpRequestExecutor.execute(OkHttpRequestExecutor.java:64)

Поддерживает ли соединитель вызовы HTTPS и есть ли какая-то конфигурация I должны предоставить возможность сделать HTTPS-запрос?

1 Ответ

0 голосов
/ 03 апреля 2020

Я бы переместил ваш json из командной строки в файл. json и использовал его для регистрации соединителя

Пример ниже

curl -X POST -H "Content-Type: application/json" --data @filename.json http://localhost:8083/connectors

...