Closed evolross closed 4 years ago
@evolross I'll defer to @theodorDiaconu if there is a way with redis-oplog, but I doubt it. It listens / pushes to the local redis server and reacts to it. Can't see how you would do this, without having to duplicate redis-oplog to listen to 2 instances which would complicate things. This is no longer scalable.
What I was thinking in a similar use case is to create a redis cluster with an SSL connection between the two redis servers. This was all thought, haven't went through the mechanics, but don't see why it wouldn't work.
In fact, just like you read and write from a mongodb instance that is part of a cluster, you are doing the same thing with redis.
This is not a problem of redis-oplog, this is a problem of scaling redis.
https://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/Replication.Redis.Groups.html
There are many solutions out there for this. I would look at their official documentation first.
I have a US-based app on Galaxy on AWS
us-east-1
that usesredis-oplog
to replaceoplog
between a lot of containers. All Galaxy, Mongo Atlas, and (one) Redis containers are all onus-east-1
in their various middleware services. Works awesome.I now want to deploy a European version of the app on the
eu-west-1
flavor of Galaxy. I'm able to deploy my app containers on Galaxy ineu-west-1
, deploy read-only nodes of my database in Atlas oneu-west-1
, and another Redis server oneu-west-1
. It sounds easy enough at first thought if I update URLs appropriately. I was then going to use AWS Route 53 geolocation routing to route all Europe requests to the app to theeu-west-1
Galaxy version.The problem is the app is collaborative and there's a very likely use-case that users in the United States might connect with users in Europe within the app and the two different Redis servers would not be real-time updating their shared data between the app containers correctly.
Is there a solution for this with
redis-oplog
? To somehow use two different Redis servers that work together?If not, it seems like I would have to use one Redis server for all of them and all my European users would have to cross the pond every time they need a
redis-oplog
update. Which sort of defeats the purpose.