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:
- Normally, the primary DC and backup DC can reach each other.
- 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.
- 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:
-
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 -
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?