用 Python、 RabbitMQ 和 Nameko 实现微服务
在最近的几年里,“微服务架构”如雨后春笋般涌现。它用于描述一种特定的软件应用设计方式,这种方式使得应用可以由多个独立部署的服务以服务套件的形式组成。 - M. Fowler 简单来说,微服务架构可以将你的系统拆分成多个负责不同任务的小的(单一上下文内)功能块,它们彼此互无感知,各自只提供用于通讯的通用指向(。这个指向通常是已经将通讯协议和接口定义好的消息队列。 想象一下,你有一个 REST API ,这个 API 有一个端点(REST 风格的 API 可以有多个端点用于处理对同一资源的不同类型的请求)用来接受数据,并且你需要将接收到的数据进行一些运算工作。那么相比阻塞接口调用者的请求来说,异步实现此接口是一个更好的选择。你可以先给用户返回一个 "OK - 你的请求稍后会处理" 的状态,然后在后台任务中完成运算。 同样,如果你想要在不阻塞主进程的前提下,在计算完成后发送一封提醒邮件,那么将“邮件发送”委托给其他服务去做会更好一些。 场景描述 让我们将系统创建起来,在实践中理解它。 环境 我们需要的环境: 运行良好的 RabbitMQ(LCTT 译注:RabbitMQ 是一个流行的消息队列...