#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 для потребления. Если все будет происходить без каких-либо проблем, вы увидите некоторые данные.