Почему происходит рассинхронизация реплик Elasticsearch?

У меня есть два сервера. Размер индекса не большой (сотни тысяч документов), поэтому шарды мне не нужны.
Но мне нужны реплики для распределния нагрузки.
В день добавляется/обновляется не много данных - сотни документов.
Но бывает возникает проблема, при одном запросе на первый и второй сервер выдаются разные данные.

Конфиг на первой ноде
cluster.name: mycluster
node.name: node-1

node.master: true
node.data: true

network.host: 0.0.0.0
transport.tcp.port: 9300
http.port: 9200

discovery.zen.ping.multicast.enabled: false
discovery.zen.ping.unicast.hosts: ["192.168.0.1", "192.168.0.1"]


На второй ноде, конфиг такой же за исключением двух строк
node.name: node-2
node.master: false


curl -XGET 'localhost:9200/_cluster/health?pretty=true'
{
  "cluster_name" : "mycluster",
  "status" : "green",
  "timed_out" : false,
  "number_of_nodes" : 2,
  "number_of_data_nodes" : 2,
  "active_primary_shards" : 10,
  "active_shards" : 20,
  "relocating_shards" : 0,
  "initializing_shards" : 0,
  "unassigned_shards" : 0,
  "delayed_unassigned_shards" : 0,
  "number_of_pending_tasks" : 0,
  "number_of_in_flight_fetch" : 0,
  "task_max_waiting_in_queue_millis" : 0,
  "active_shards_percent_as_number" : 100.0
}


Запросы на запись отправляются как в мастер так и в реплику.

1. Возможно стоит принудительно указать параметры number_of_shards и number_of_replicas, и пересоздать индекс? Или это не должно повлиять.

index.number_of_shards: 1
index.number_of_replicas: 1

И я не совсем понимаю какие числа тут надо указывать? 1 шард и 1 реплика? А если будет 3 сервера? - 1 шард и 2 реплики?

2. Как можно понять что произошла какая-то рассинхронизация?
  • Вопрос задан
  • 328 просмотров
Решения вопроса 1
un1t
@un1t Автор вопроса
Вобщем выяснил что было. Дело было не в синхронизации. А в том что порядок сортировки был не определен. Поэтому при запросе разные ноды выдавали разный результат. И даже при запросе к одной ноде результат выдавался разный (видимо эластксерч сам делает балансировку запросов). Добавил сортировку по id, проблема решилась.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы
Искра Екатеринбург
от 80 000 до 100 000 ₽
Art gorka Санкт-Петербург
от 60 000 ₽
от 40 000 до 60 000 ₽
19 апр. 2024, в 03:52
1000 руб./за проект
19 апр. 2024, в 03:01
1000 руб./за проект
18 апр. 2024, в 21:56
2000 руб./за проект