Я написал что-то подобное в моем файле конфигурации
<yandex>
<remote_servers>
<clickhouse>
<shard>
<weight>1</weight>
<internal_replication>true</internal_replication>
<replica>
<host>s00-r00.clickhouse.xxx.net</host>
<port>9000</port>
</replica>
<replica>
<host>s00-r01.clickhouse.xxx.net</host>
<port>9000</port>
</replica>
</shard>
<shard>
<weight>1</weight>
<internal_replication>true</internal_replication>
<replica>
<host>s01-r00.clickhouse.xxx.net</host>
<port>9000</port>
</replica>
<replica>
<host>s01-r01.clickhouse.xxx.net</host>
<port>9000</port>
</replica>
</shard>
</clickhouse>
</remote_servers>
</yandex>
И моя конфигурация load_balancing была nearest_hostname
.
Я создал таблицу в кластере clickhouse и распределенную таблицу на нем.
Я отправил глобальный запрос к этой распределенной таблице на машине s00-r00, и ожидалось, что локальные запросы должны быть выполнены на машинах s00-r00 и s01-r00.
Но, наблюдая за несколькими тестами запросов, в дополнение к машине s00-r00, я смог увидеть, как она выполняется в s01-r00 и s01-r01 в разное время.
Если я понимаю правильно, имя хоста в моей конфигурации должно соответствовать описанию документа из nearest_hostname
. Почему это не сработало?
Или имя хоста, определенное этой конфигурацией nearest_hostname
, не имя хоста, настроенное в <remote_servers><clickhouse><shard><replica>
, а что-то еще?