Каков наилучший простой способ тестирования брокера/тем Кафки на удаленном сервере с помощью консоли?

#linux #asp.net-core #apache-kafka

Вопрос:

Позвольте мне объяснить мой сценарий. У меня есть приложение Asp.NETCore, размещенное на компьютере B. Это приложение отвечает за создание сообщений по теме в брокере, который размещен на компьютере. Но он не может выдать никакого сообщения по теме, и поэтому я хочу протестировать его через консоль. Я не хочу устанавливать слишком много приложений на машину B. Поэтому я ищу эффективный и простой способ протестировать брокера, размещенного в машине A. Это может быть какая-то проблема с аутентификацией и авторизацией при подключении. У кого-нибудь есть какие-нибудь идеи?

Комментарии:

1. попробуй с кафкой-продюсером на машине А .

2. Конечно, я могу это сделать. Это не проблема. Я хочу проверить связь Кафки между машиной A и машиной B.

Ответ №1:

Я применил решение, и оно может быть полезно для всех вас;

У меня был Питон на машине B. Из-за этого я решил решить эту проблему с помощью python.

Это тот самый build.sh;

 #!/bin/bash

# Change current directory to project directory.
cd "$(dirname "$0")" || exit

# Install python3-venv package if not installed.
sudo apt install python3-venv

# Create virtual environment directory
python3 -m venv "venv/"

# Activate virtual environment
source "venv/bin/activate"

echo "[INFO] USING PYTHON:" "$(which python)"
echo "[INFO] USING PIP:" "$(which pip)"

# Upgrade Python
python -m pip install --upgrade pip

# Check the version of pip
# Version must be below 18.XX and compatible with Python 3.4 
pip --version

# Install dependencies
pip install  kafka-python==2.0.0
 

Это main.py для потребительского теста Кафки;

 from kafka import TopicPartition
from kafka import KafkaConsumer
from datetime import datetime
import time, threading
import sys

print("Initialize")
consumer = KafkaConsumer(bootstrap_servers='yourbootstrapservers')
consumer.subscribe(['topicName'])
print('start for consuming')
for msg in consumer:
    print(msg)

print(next(consumer))
print("ended")
 

Сначала вам нужно выполнить сборку.sh, а затем выполните main.py для потребления. Если все будет происходить без каких-либо проблем, вы увидите некоторые данные.