Splitting out the services
As it stands, we have our MessageServer
and WebServer
in the same service.py
module. It's now time to split these, especially since we will be removing the WebServer
in favor of a Flask server. At the end of this chapter, the goal is to have a total of three microservices working together, each with its own specific roles:
The preceding diagram demonstrates how our services will integrate with each other. Take note of how the Message Service and User Service are totally unaware of each other. A change to the User Service should not require a change to the Message Service and vice versa. By splitting these services, we also gain the advantage of being able to deploy new code to a single service without affecting the others. A bonus from Nameko using RabbitMQ is that, if a service does go down for a short period of time, any work will simply be queued until the service comes back online. We will now begin to reap some of the benefits of a microservice architecture...