2

The Spring XD documentation (http://docs.spring.io/spring-xd/docs/1.0.0.RC1/reference/html/) recommends Zookeeper to be run in ensemble so that Zookeeper is highly available. There is not lot of details about Redis about high availability.

If I were to run 2 XD admin instances and say 4 Container instances, I see 3 options

should I run a Redis instance in each server that runs container or admin? In that case does the Distributed runtime work properly with different Redis instances handling transport of different modules?

OR

should I run 1 Redis instance in a separate server and configure all XD instances to talk to this instance? In this case 1 instance of Redis is not highly available

OR

should I configure Redis cluster or Redis Sentinel high availability? I am not sure how XD or any other client will connect to a cluster or HA.

Thanks

SathiyaS
  • 246
  • 3
  • 11

1 Answers1

3

I would suggest that you run a single Redis instance, there are some settings for persistence that you can change that may meet your requirements.

http://redis.io/topics/persistence

We will be adding support for Redis Sentinal, certainly in the Spring XD 1.1 release, but possibly in a maintenance release depending on what library changes we need to pick up. Spring Data Redis and Spring Boot have recent updates to support Redis Sentinal.

If you are using Redis as a message transport and want higher guarantees, I would switch to using Rabbit HA configuration of the MessageBus.

Cheers, Mark

Mark Pollack
  • 166
  • 4