I am writing a distributed application with several node interfaces that should reject an action for the user if they are not part of the list.
Currently, we have more than 4 of these encoded, but only one database server running DB2, which is often unavailable for maintenance.
Now we are conducting a database survey to update the list in memory, so that if the user is removed from the list, the change is reflected in all 4 nodes. But if one of the nodes reboots when the database is down, we get an empty list that will reject the entire user request that we donβt want. We can accept a request from the user, even if the database does not work, when we buffer them in the message queue, but we want to reject them immediately if they should be rejected!
Does it make sense to run a Zookeeper instance on each of our 4 nodes and save user permissions in Zookeeper. Thus, reading should be fast and data highly accessible and consistent. We will no longer need to do polls, and even if we reload the database, node will be able to get its configuration from zookeeper!
skyde source share