Designing and implementing a well-functioning distributed system is not an easy task. There are many challenges which solutions are far from simple. One of them is to ensure high reliability. In my thesis I deal with this problem and I present a possible solution using the Apache ZooKeeper.
In the first chapter I talk about the distributed systems in general, the basis and the possible uses of the ZooKeeper. Then I create a banking scenario with a high-level system design showing the components and the relationship between them. After that I implement the scenario in Java and present how it works. The third chapter is about how I use the zookeeper in my application and how it’s realize the automatic failover with the help of the ZooKeeper. Then I introduce the system works through a simple example to see how the failover works when a component fails. In the last chapter I evaluate the finished distributed application, as well as outline the potential for further development opportunities.