Need advice for my small ElasticSearch cluster

Hi all,

We have a 3-node cluster in production in the past, and recently we added an independent DC for backup usage.

For simplicity, I want to deploy a single ES instance in the backup DC, and keep data in sync with 3-node cluster in primary DC.

Current status and my expectations:

  1. Normally, the primary DC and backup DC can reach each other.
  2. When primary DC is down, its network would completely isolate itself from others. It also means my application can only reach the backup DC at that moment.
  3. And I want my applications can still reach the ES node in the backup DC. Act normally for (at least) read operations.

My attempt and problem:

  1. I've made the 4-th single ES instance in backup DC to join the cluster. And config the four URLs in the application's java es-client.
    However when we shutdown network for primary DC, all reading would result in ERROR (type=search_phase_execution_exception, reason=all shards failed

  2. application-level retry + CCR or CCS+CCR is not considered for now, since we don't have a platinum license yet.

I'm seeking an easy way to my goal above, application-level code change or a simple change in deployment pattern(in backup DC) is preferable. Can somebody help me?

Welcome to our community! :smiley:

The easy way is CCR with 2 clusters.
Another way is to have an equal number of nodes in each DC, with a tie breaker voting node held in a 3rd DC. That way you will make sure you always have a majority to form a cluster.

Thanks Walkom, your help is greatly appreciated. :kissing_smiling_eyes:

I would like to adopt your advice right now.

This topic was automatically closed 28 days after the last reply. New replies are no longer allowed.