Проблемы внешнего доступа Kafka Kraft docker-composePython

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Проблемы внешнего доступа Kafka Kraft docker-compose

Сообщение Anonymous »

У меня есть Kafka kraft в docker-compose на сервере Ubuntu. Локально все работает правильно, и я могу, например, перечислить темы:

Код: Выделить всё

~$ docker exec -it blopa-kafka-1 /bin/bash
I have no name!@8b166cb3a647:/$ kafka-topics.sh --bootstrap-server 127.0.0.1:9092 --list
__consumer_offsets
boton_topic
dht_topic
gps_topic
pulso_topic
Проблема возникает при попытке подключения с другого компьютера (в той же сети) с помощью следующего кода:

Код: Выделить всё

KAFKA_BOOTSTRAP_SERVERS = os.getenv('KAFKA_BOOTSTRAP_SERVERS', '192.168.1.211:9092')
app = FastAPI()

def ckeck_conectivity_kafka(kafka_bootstrap_servers):
kafka_host, kafka_port = kafka_bootstrap_servers.split(':')
try:

with socket.create_connection((kafka_host, int(kafka_port)), timeout=10) as sock:

except Exception as e:
error_message = f"[ERROR datos_kafka] Not conection {kafka_bootstrap_servers}: {e}"
logger.error(error_message))

check_conectivity_kafka(KAFKA_BOOTSTRAP_SERVERS)

@asynccontextmanager
async def lifespan(app: FastAPI):
global producer
try:

producer = AIOKafkaProducer(
bootstrap_servers=KAFKA_BOOTSTRAP_SERVERS
)
await producer.start()

except Exception as e:

await asyncio.sleep(5)
yield
return
yield
...

app.router.lifespan_context = lifespan
Это трассировка, которую я получаю, когда запускаю код:

Код: Выделить всё

INFO:     Started server process [135789]
INFO:     Waiting for application startup.

ERROR:aiokafka:Unable connect to node with id 0: [Errno -2] Name or service not known
KafkaConnectionError: No connection to node with id 0

INFO:     Application startup complete.
INFO:     Uvicorn running on http://127.0.0.1:8001 (Press CTRL+C to quit)
То есть ошибку не выдает, соединение происходит, но с именем сервиса проблемы.
Это мой . yaml:

Код: Выделить всё

services:
kafka:
image: 'bitnami/kafka:latest'
environment:
- KAFKA_CFG_NODE_ID=0
- KAFKA_CFG_PROCESS_ROLES=controller,broker
- KAFKA_CFG_LISTENERS=PLAINTEXT://0.0.0.0:9092,CONTROLLER://:9093
- KAFKA_CFG_LISTENER_SECURITY_PROTOCOL_MAP=CONTROLLER:PLAINTEXT,PLAINTEXT>
- KAFKA_CFG_CONTROLLER_QUORUM_VOTERS=0@kafka:9093
- KAFKA_CFG_CONTROLLER_LISTENER_NAMES=CONTROLLER
- KAFKA_CFG_ADVERTISED_LISTENERS=PLAINTEXT://192.168.1.211:9092
volumes:
- kafka-data:/bitnami/kafka/data
tty: true
restart: always
ports:
- "9092:9092"
- "9093:9093"
- "9094:9094"
volumes:
kafka-data:
driver: local
Мне удалось связаться с на 192.168.1.211:9092 или nc:

Код: Выделить всё

nc -zv 192.168.1.211 9092
192.168.1.211: inverse host lookup failed: Unknown host
(UNKNOWN) [192.168.1.211] 9092 (?) open
Он не знает ни службы, ни хоста, но порт открыт
но я предполагаю, что какая-то проблема в конфигурации не позволяет моему коду работать.
Вероятно, это несложная проблема, но есть такие решения, как «вам нужно будет объявить внешнее имя хоста/IP (например, 192.168.x.y) хоста, а также/вместо локального хоста. Требуется переадресация портов Docker». (и изменения брандмауэра/группы безопасности)» мне не помогли. Это уже сделано и не работает. Фактически, если бы ему не разрешили проходить через брандмауэр, тесты nc или telnet не работали бы.
Добавляю результаты nmap и kcat:
sudo nmap -p 9092 192.168.1.211 -vv -sV --traceroute
Сканирование 192.168.1.211 [1 порт]
Обнаружен открыть порт 9092/tcp на 192.168.1.211
АДРЕС HOP RTT
1 53,84 мс 192.168.1.211
echo "Привет, Кафка !" | kcat -P -b 192.168.1.211:9092 -t boton_topic
%3|1727082503.291|FAIL|rdkafka#producer-1| [thrd:8b166cb3a647:9092/0]: 8b166cb3a647:9092/0: Не удалось разрешить '8b166cb3a647:9092': имя или служба неизвестны (после 102 мс в состоянии CONNECT)
% ОШИБКА: Локально: Ошибка разрешения хоста: 8b166cb3a647:9092/0: Не удалось разрешить '8b166cb3a647:9092': имя или служба неизвестны (после 102 мс в состоянии CONNECT)
%3|1727082504.353|FAIL|rdkafka#producer-1| [thrd:8b166cb3a647:9092/0]: 8b166cb3a647:9092/0: не удалось разрешить '8b166cb3a647:9092': имя или служба неизвестны (после 61 мс в состоянии CONNECT подавлено 1 идентичная ошибка)
% ОШИБКА: Локальная: ошибка разрешения хоста: 8b166cb3a647:9092/0: не удалось разрешить '8b166cb3a647:9092': имя или служба неизвестны (после 61 мс в состоянии CONNECT подавлены 1 идентичная ошибка)
Это информация о сервере docker-compose:
sudo lsof -i -P -n | grep LISTEN
docker-pr 1624 root 4u IPv4 9165 0t0 TCP *:9092 (LISTEN)
docker-pr 1629 root 4u IPv6 9171 0t0 TCP *:9092 (СЛУШАТЬ)

Подробнее здесь: https://stackoverflow.com/questions/790 ... s-problems
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Проблемы внешнего доступа Kafka Kraft docker-compose
    Anonymous » » в форуме Python
    0 Ответы
    18 Просмотры
    Последнее сообщение Anonymous
  • Проблемы с внешним доступом к Docker-Compose Kafka Kraft
    Anonymous » » в форуме Python
    0 Ответы
    31 Просмотры
    Последнее сообщение Anonymous
  • Apache Kafka Kraft – отменен текущий запрос API_VERSIONS
    Anonymous » » в форуме JAVA
    0 Ответы
    83 Просмотры
    Последнее сообщение Anonymous
  • Apache Kafka Kraft – отменен текущий запрос API_VERSIONS
    Anonymous » » в форуме JAVA
    0 Ответы
    120 Просмотры
    Последнее сообщение Anonymous
  • Apache Kafka Kraft – отменен текущий запрос API_VERSIONS
    Anonymous » » в форуме JAVA
    0 Ответы
    29 Просмотры
    Последнее сообщение Anonymous

Вернуться в «Python»