Kafka развернута на Heroku и выдает ошибку «Нет прав доступа к темам»

Я развернул Kafka на сервере Heroku. Проблема в том, что я подключаюсь к серверу Kafka на Heroku. Подключение установлено успешно, и я вижу все доступные мне темы на сервере Heroku. Но когда я пытаюсь создать сообщение по одной из тем. Выдает ошибку {"level":"ERROR","timestamp":"2024-08-20T14:52:25.903Z","logger":"kafkajs","message":"[Connection] Response Metadata(key: 3, version: 6)","broker":"MY_BROKER","clientId":"MY_CLIENT_ID","error":"Нет прав доступа к темам: [Ошибка авторизации темы]","correlationId":1,"size":627}

Вот как я создаю клиента

Вот code, где он выдает ошибку

Лог "Подключение успешно установлено" регистрируется, а затем происходит сбой на Producer.send()

kafka = new Kafka(
        {
         clientId: "deanon-tool",
         brokers: [
           "ec2-54-77-1-249.eu-west-1.compute.amazonaws.com:9096",
           "ec2-54-72-228-10.eu-west-1.compute.amazonaws.com:9096",
           "ec2-52-48-167-48.eu-west-1.compute.amazonaws.com:9096",
           "ec2-34-246-78-10.eu-west-1.compute.amazonaws.com:9096",
           "ec2-34-242-239-67.eu-west-1.compute.amazonaws.com:9096",
           "ec2-34-246-81-10.eu-west-1.compute.amazonaws.com:9096",
           "ec2-34-246-80-221.eu-west-1.compute.amazonaws.com:9096",
           "ec2-52-214-17-78.eu-west-1.compute.amazonaws.com:9096",
           ],
         ssl: {
           rejectUnauthorized: false,
           ca: [fs.readFileSync("./ca-cert.pem", "utf-8")],
           key: fs.readFileSync("./client-key.pem", "utf-8"),
           cert: fs.readFileSync("./client-cert.pem", "utf-8"),
          },
        });
   public async testConnection(topic: string): Promise<void> {
        const producer = this.kafka.producer();
        console.log("Topic", topic);
        try {
            console.log("Connecting to Kafka...");
            await producer.connect();
            console.log("Connected successfully. Attempting to send a test message...");
            await producer.send({
                topic: topic,
                messages: [{ value: "Test message" }],
            });
            console.log("Test message sent successfully");
        } catch (error) {
            console.error("Error during Kafka test:", error);
        } finally {
            await producer.disconnect();
        }
    }
Пантелеймон
Вопрос задан2 мая 2024 г.

1 Ответ

2
Прасковья
Ответ получен13 сентября 2024 г.

Ваш ответ

Загрузить файл.