Прежде всего, избегайте хранить 2 главных узла, так как он будет уязвим для split brain problem.
Сколько будет эффективно?
Количество узлов-мастеров/данных зависит от вашего варианта использования с кластером. Попробуйте получить ответы на такие вопросы, как:
- Является ли ваш индекс кластера тяжелым, поисковым или обоими?
- Сколько данных вы делаете для индексации и с какой частотой?
- Сколько поисковых запросов вы ожидаете?
как координировать их
Вам не нужно. Узлы Elasticsearch способны это сделать. Просто убедитесь, что ваш elasticsearch.yml имеет все упомянутые IP-адреса узлов. (В случае одноадресных хостов я предпочитаю избегать многоадресной рассылки). Используйте конфигурацию, как это:
discovery.zen.ping.multicast.enabled: false
discovery.zen.ping.unicast.hosts: ["<node1-ip:port>", "<node2-ip:port>", "<node3-ip:port>", "<node4-ip:port>"]
любой эффект, если я использую репликацию как 2
Добавление реплик увеличит использование дискового пространства и размер кучи тоже. Для 4 узлов коэффициент репликации 1 должен быть достаточным, если вам не требуется высокая избыточность.
Поскольку вы добавили spring-data-elasticsearch в качестве тега, я предполагаю, что вы хотите использовать его в качестве транспортного клиента с Elasticsearch. Зайдите в this tutorial, чтобы начать.
Итак, вы можете сказать, что 1 главный узел и 3 узла данных были бы в порядке? если мне нужен индекс тяжелый и тяжелый поиск @Utkarsh Mishra – sweety
Попробуйте сохранить 3 главных узла (с относительно низкой ОЗУ) и 3 главных узла (с большим количеством ОЗУ), так как они занимают большую часть кучи. –
Это 3 главных узла и 3 узла данных, которые вы упомянули @Utkarsh Mishra – sweety