We have more than 10 services who use es in different ways.
So each service connect to the cluster themselves.
That is, if i want to upgrade es to 6.0, we need to upgrade and test all the services at the same time, fully shutdown the cluster, deploy the new services, start the whole cluster and start the upgraded services.
This work seems so complex, and we can not make sure all the thing is right when upgrading.
Is there any other choice for us, so that we can upgrade es first, leaving the services running old version clients?
This is also another way, which is known as Full Cluster Restart. That is the procedure generally required for upgrading between major Elasticsearch versions, but specifically with 5.6.x we could make it possible to do a rolling upgrade to 6.x and a full cluster restart is not really necessary.
You need to check the Breaking Changes when 6.x is fully released.
In case my cluster has 5 nodes running 6.x, and the other 5 running 5.6.
Can a 5.6 client connect to this cluster and all the functionalities work correctly?
Additionally, what happened if i use 5.0 client to connect to 5.6 cluster? or even a cluster with half 6.x and half 5.6.
These questions seems strange, if it's not clear, i will test them myself.
If you are using a REST client it should be ok.
If you are using the Java Transport Client then you should have the same versions on both end.
The Java High Level Rest client 5 is compatible with cluster running 5.
The Java low level rest client should work from 2.x to 6.x at least.
Depends on the client you are thinking of. Which one is it?
Apache, Apache Lucene, Apache Hadoop, Hadoop, HDFS and the yellow elephant
logo are trademarks of the
Apache Software Foundation
in the United States and/or other countries.