跳转至

快速开始

提前准备

首先确保目前的环境有 docker 和 docker compose。

其次是安装 namekoplus 代码库,这个代码库除了包含 Nameko 微服务的依赖项,还提供了一个快速启动的命令行工具。

python3 -m pip install namekoplus

启动一个 RabbitMQ

安装好 namekoplus 后,我们就可以启动一个 RabbitMQ 容器了。这个容器会暴露 5672 ,15672 等端口。(其中 15672 是管理界面端口)

namekoplus start -m rabbitmq 

当运行如上命令后,很快我们就可以看到 RabbitMQ 启动成功的输出了。

RabbitMQ 管理端的用户名和密码默认为 adminadmin

如果你想自定义,只需要在 RabbitMQ 管理界面修改即可

如果之后你想停止 RabbitMQ 容器,则可以使用命令:

namekoplus stop -m rabbitmq

启动 Nameko 微服务

接下来我们会使用 namekoplus 命令初始化 Nameko 微服务的模板代码。

namekoplus init -d example -t demo

参数 -d 指定了存放 Nameko 代码文件的目录名称,-t 指定了 Nameko 模板代码的类型,在上面这条命令里我们使用了 demo 类型。

除了 demo 类型,还有 all|rpc|event|http|timer 等。

rpc 类型会生成服务间 rpc 通信模式的示例;

event 类型会生成发布订阅模式的示例;

http 类型会生成一个 HTTP 服务的示例;

timer 类型会生成一个定时任务的示例;

all 类型会生成包含 rpc|event|http|timer 这四个类型的示例。

命令运行后,我们会在当前根目录看到被新创建出来的 example 目录。这个目录里包含了启动 Nameko 微服务所需的代码文件。

现在我们来启动 nameko 微服务,在根目录使用命令:

nameko run --config ./example/config.yml example.rpc_demo

如果服务成功运行,我们会看到类似如下的输出:

starting services: rpc_caller_demo_service, rpc_responder_demo_service

调用 nameko 微服务

在上一步中,我们已经启动了两个 nameko 服务 rpc_caller_demo_servicerpc_responder_demo_service

现在我们可以使用 nameko 微服务框架提供的 shell 工具来调用这个 demo 服务。

新开一个命令行窗口(同时开启 nameko 服务的那个窗口当然也得保持着)

使用下面的命令来启动 nameko shell 工具:

nameko shell --config ./example/config.yml

此时我们会进入 nameko shell ,在这个 shell 里我们可以调用 nameko 微服务提供的 rpc 接口:

n.rpc.rpc_responder_demo_service.hello("Bryant")

或者

n.rpc.rpc_caller_demo_service.remote_hello("Bryant")

如果这两条命令都输出了 'Hello, Bryant!',那么恭喜你🎉,你已经成功启动并调用了一个 Nameko 微服务!