184 похожих чатов

Ситуация: 1. есть настроенный рабочий контейнер с kafka. Сообщения в него

пишутся, из него всё читается. с ним работают kafka-manager, zookeeper из скоих контейнеров и десятки программ из локального окружения (windows). Т.е. рабочий вариант
2. разворачиваю контейнер clickhouse:
docker run -d --name md-clickhouse -p 8123:8123 --ulimit nofile=262144:262144 -v=e:/.docker-mount/storage/clickhouse:/var/lib/clickhouse -v=e:/dev/_clickhouse/initdb.d:/docker-entrypoint-initdb.d -v=e:/dev/_clickhouse/logs:/var/log/clickhouse-server yandex/clickhouse-server

в результате на старте контейнера из папки docker-entrypoint-initdb.d исполняется 0001_init.sql.
Исполняется без ошибок. Clickhouse стартует, всё, что должно создаться, создаётся

В числе прочего в этом файле создаётся таблица с движком Kafka, типа такой (опущены некоторые столбцы):
create table auditTrail.SpanBuffer
(
async_trace_id UUID,
type UInt8
)
ENGINE = Kafka
SETTINGS kafka_broker_list = 'host.docker.internal:9092',
kafka_topic_list = 'Topic.Name',
kafka_group_name = 'Group.Clickhouse.Kafka.Engine',
kafka_format = 'JSONEachRow',
kafka_max_block_size = 1048576;

Но в логах clickhouse видно, что соединиться он пытается по 127.0.0.1:9092:

2021.10.13 12:59:14.091724 [ 57 ] {} <Warning> Context: Effective user of the process (clickhouse) does not match the owner of the data (root).
2021.10.13 12:59:17.967427 [ 228 ] {} <Error> StorageKafka (SpanBuffer): [rdk:FAIL] [thrd:GroupCoordinator]: GroupCoordinator: 127.0.0.1:9092: Connect to ipv4#127.0.0.1:9092 failed: Connection refused (after 0ms in state CONNECT)
2021.10.13 12:59:17.968299 [ 212 ] {} <Error> StorageKafka (SpanBuffer): [rdk:ERROR] [thrd:app]: ClickHouse-2ca3cfcc592b-auditTrail-SpanBuffer#consumer-1: GroupCoordinator: 127.0.0.1:9092: Connect to ipv4#127.0.0.1:9092 failed: Connection refused (after 0ms in state CONNECT)

что я делаю не так, как заставить clickhouse подключаться через host.docker.internal:9092?

8 ответов

35 просмотров

вам сеть надо общую создать и запускать контейнеры указав эту сеть https://runnable.com/docker/basic-docker-networking

Alex-Spiridonov Автор вопроса
Denny [Altinity]
вам сеть надо общую создать и запускать контейнеры...

разве host.docker.internal не решает эту проблему за меня (хотя для целей локальной разработки, не берём сейчас продакшн)? почему clickhouse судя по логам и не пытается использовать host.docker.internal, а обращается к 127.0.0.1?

Alex Spiridonov
разве host.docker.internal не решает эту проблему ...

я хз про host.docker.internal, все это зависит от оси, в линуксе может и будет работать

Alex Spiridonov
разве host.docker.internal не решает эту проблему ...

это не имеет отношения к КХ, если вы подключитесь в контейнер кх, то можете там проверить курлом например ping host.docker.internal , curl host.docker.internal:9092

Alex-Spiridonov Автор вопроса
Denny [Altinity]
это не имеет отношения к КХ, если вы подключитесь ...

root@ffacb257f26f:/# curl 127.0.0.1:9092 curl: (7) Failed to connect to 127.0.0.1 port 9092: Connection refused root@ffacb257f26f:/# curl host.docker.internal:9092 curl: (52) Empty reply from server root@ffacb257f26f:/# ping host.docker.internal PING host.docker.internal (192.168.65.2) 56(84) bytes of data. 64 bytes from 192.168.65.2 (192.168.65.2): icmp_seq=1 ttl=37 time=0.460 ms есть ощушение, что если бы clickhouse обращался по host.docker.internal, а не по 127.0.0.1, то всё бы заработало

Alex Spiridonov
root@ffacb257f26f:/# curl 127.0.0.1:9092 curl: (7)...

с кафкой есть такая проблема, что это адрес host.docker.internal:9092 service discovery. Дальше брокер говорит откуда забирать партиции этого топика, там в кафке настраивается какой хостнейм отдавать. Т.е. брокеров много, и куда ходить за партициями топика знают только сами брокеры, клиенту кафки надо знать только одну точку входа, дальше ему рассказывают где вещи лежат. возможно в вашем случае кафка говорит ходить в локалхост

Alex-Spiridonov Автор вопроса
Denny [Altinity]
с кафкой есть такая проблема, что это адрес host.d...

я сейчас пересобрал контейнер, указав вместо host.docker.internal:9092 вообще заведомо некорректное значение: engine = Kafka SETTINGS kafka_broker_list = 'some.invalid.address:9999' в логах ничего не поменялось: 2021.10.13 14:25:55.984670 [ 220 ] {} <Error> StorageKafka (SpanBuffer): [rdk:FAIL] [thrd:GroupCoordinator]: GroupCoordinator: 127.0.0.1:9092: Connect to ipv4#127.0.0.1:9092 failed: Connection refused (after 0ms in state CONNECT) т.е. до использования указанного адреса дело даже не доходит, а clickhouse что-то пытается найти локально на порту 9092 p.s. проверил DDL таблицы - там именно то, что я указал при создании контейнера. Т.е. в kafka_broker_list значение одно, а в логах другое. непонятное что-то

Alex-Spiridonov Автор вопроса
Denny [Altinity]
с кафкой есть такая проблема, что это адрес host.d...

это было оно! Неверное значение advertised.listeners в настройках кафки. Спасибо за наводку!

Похожие вопросы

Обсуждают сегодня

Добрый вечер. Есть вопрос, а может и предложение. Был у меня диалог в другой группе о делфи и я задался вопросом: "А нельзя ли в делфи цвет //коментария и {комментария} сде...
Kraszx
24
Всем привет! Подскажи, пожалуйста, как передать в TComboBox сразу значение и id записи. На Delphi я делал так: ComboBox1.Items.AddObject('Какое-то значение', Pointer(id запис...
Евгений
13
Мдя, прикол, боевая сборка запускается (именно под отладчиком) после F9 примерно полторы минуты (97 секунд если быть точным). Начал копать - проблема детектится сразу - зависа...
Александр (Rouse_) Багель
38
я так понимаю, я так подозреваю, что создание такого плагина для человека, кто умеет писать плагины для делфи потребует минут 5-10 времени. но это мое подозрение. хотелось бы ...
Kraszx
7
Товарищи, кто работа с iphelper? Или может я в самой логике ошибки фигачу, не пойму.... var ifTable : PMIB_IFTABLE; size, corSize: DWORD; Buffer ...
Warfarellen
4
Здравствуйте, вопрос по структурам данных. Были у вас случаи, когда пришлось писать деревья или двунаправленные списки?
/ /
50
Коллеги, добрый вечер. Создаю коллекцию от TFPGMap, ключ - перечисление, значение - целое. Нужно отсортировать коллекцию по значению. Как это можно сделать?
Kirill Filippenok
11
Скажи а ты когда этот канал создавал ты уже дельфи не любил, или это со временем пришло?
Роман Лях (rgreat)
18
Привет, такой вопросик появился кажется ли вам что Rust слишком сложный/строгий для высокоуровневого программирования и слишком "безопасный"/строгий для низкоуровневого?
Крокант
10
Всем привет! Использую кастомное модальное диалоговое окошко, все по классике - mrOK, mrCancel как ModalResult. Однако есть нюанс - в главной форме есть универсальный обработч...
Олег Гранишевский
20
Карта сайта