我正在尝试按照以下说明使用 kafkacat 本地连接到我的 heroku kafka:https://gist.github.com/crcastle/cb21c2148fc57ad89753bf28b561d910
我正在创建一个这样的环境文件:
heroku config -s > .env
然后运行此脚本以尝试侦听
#! /usr/bin/env bash
set -e
source .env
kafkacat -C -t ${KAFKA_PREFIX}test-topic -b $KAFKA_URL
-X security.protocol=ssl
-X ssl.key.location=<(echo $KAFKA_CLIENT_CERT_KEY)
-X ssl.ca.location=<(echo $KAFKA_TRUSTED_CERT)
-X ssl.certificate.location=<(echo $KAFKA_CLIENT_CERT)
然后我得到这个错误:
% ERROR: Failed to create producer: ssl.ca.location failed: No error
有趣的是,即使我试图消费,它也说生产者。
我可以使用以下方法从同一主题生产和消费
heroku kafka:topics:write test-topic "test 1"
和
heroku kafka:topics:tail test-topic
在OSX上,我认为不支持<(...)
语法。尝试:
heroku config:get KAFKA_TRUSTED_CERT -a my-app > $PWD/ca.pem
heroku config:get KAFKA_CLIENT_CERT -a my-app > $PWD/cert.pem
heroku config:get KAFKA_CLIENT_CERT_KEY -a my-app > $PWD/cert.key
export KAFKA_URL="$(heroku config:get KAFKA_URL -a my-app | sed 's/kafka+ssl:////g')"
export TOPIC="my-topic"
kafkacat -C -t $TOPIC -b $KAFKA_URL
-X security.protocol=ssl
-X ssl.key.location=$PWD/cert.key
-X ssl.ca.location=$PWD/ca.pem
-X ssl.certificate.location=$PWD/cert.pem