MSK Kafka: Объясните, почему для ZookeeperConnectString указано несколько конечных точек и как их использовать.

Если вы выполните следующую команду aws, вы получите сведения о кластере msk kafka:

aws kafka list-clusters

Это возвращает что-то вроде этого:

{
    "ClusterInfoList": [
        {
            "BrokerNodeGroupInfo": { ...},
            "ClusterArn": "arn:aws:kafka:us-west-2:000000000000000:cluster/my-cluster/{guid}",
            "ClusterName": "my-cluster",
            "ZookeeperConnectString": "z-1.my-cluster.xyz.c5.kafka.us-west-2.amazonaws.com:2181,z-3.my-cluster.xyz.c5.kafka.us-west-2.amazonaws.com,z-3.my-cluster.xyz.c5.kafka.us-west-2.amazonaws.com"
        }
    ]
}

Обратите внимание, что ZookeperConnectString представляет собой строку, разделенную запятыми ...

Это действительно zookeeper (я думал, что весь смысл zookeeper заключается в координации брокеров с одной конечной точкой) или это список брокеров? Вот что я подозреваю. Кроме того, когда я использую это в команде -zoookeeper для создания тем или создания темы, это работает точно так же, если я просто использую одну из конечных точек.

Могу ли я обойтись без использования только одной из конечных точек в моем приложении? Или я должен использовать все три в моей конфигурации производителя. Если да, то почему? Каковы последствия использования только одного из них?


person cosbor11    schedule 01.02.2021    source источник


Ответы (1)


  • Это не брокеры, а различные серверы zookeeper, которые образуют ансамбль zookeeper для вашего кластера Kafka.

  • Вы можете использовать только один из них, но это означает, что для успешного выполнения команды должен быть запущен конкретный zookeeper.

  • Вы должны использовать все из них, чтобы достичь высокой доступности и отказоустойчивости при запуске ваших клиентов, избегая сценария, в котором zookeeper, который вы только что установили в своих конфигурациях, останавливается (в то время как другие все еще работают).

    Установка всех из них гарантирует (если кворум здоров), что ваша команда kafka будет успешной, даже если некоторые из серверов zookeeper не работают.


Настройка нескольких серверов Zookeeper

Для надежной службы ZooKeeper вы должны развернуть ZooKeeper в кластере, известном как ансамбль. Пока большая часть ансамбля активна, услуга будет доступна. Поскольку Zookeeper требует большинства, лучше использовать нечетное количество машин. Например, с четырьмя машинами ZooKeeper может справиться с отказом только одной машины; если две машины выходят из строя, оставшиеся две машины не составляют большинство. Однако с пятью машинами ZooKeeper может справиться с отказом двух машин.

person aran    schedule 01.02.2021