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