Как создать sink-коннектор для Kafka, который будет записывать информацию, введенную в командную строку, в текстовый файл?

Как создать коннектор для Кафки, который будет записывать информацию, введенную в командной строке, в файл txt?
  • 17 ноября 2023 г. 9:08
Ответы на вопрос 1
Для создания sink-коннектора для Kafka, который будет записывать информацию, введенную в командную строку, в текстовый файл, можно использовать следующий пример конфигурации:

1. Создайте файл конфигурации `sink.properties` с содержимым:

```
name=file-sink
connector.class=FileStreamSink
tasks.max=1
file=tmp/output.txt
topics=<your_topic_name>
```

2. Запустите Kafka Connect с использованием созданного конфигурационного файла:

```
kafka/bin/connect-standalone.sh kafka/config/connect-standalone.properties sink.properties
```

Теперь все сообщения, поступающие в указанный в `topics` топик Kafka, будут записываться в файл `output.txt` в указанной директории.

Чтобы создать коннектор для Кафки, который будет записывать информацию, введенную в командной строке, в файл txt, вы можете использовать следующий пример в Python:

```python
from kafka import KafkaProducer
import sys

# Создайте экземпляр KafkaProducer, указав адрес и порт Kafka
producer = KafkaProducer(bootstrap_servers='localhost:9092')

# Считайте ввод с командной строки
input_data = input("Введите данные для записи в файл: ")

# Отправьте введенные данные в Kafka топик
producer.send('your_topic_name', input_data.encode('utf-8'))

# Закройте соединение с Kafka
producer.close()

# Запись данных в файл txt
if input_data:
    with open('output.txt', 'a') as file:
        file.write(input_data + '\n')
```

После запуска этого скрипта, вводимая информация будет отправляться в Kafka топик и записываться в файл `output.txt`.
Похожие вопросы