快速开始
提前准备
首先确保目前的环境有 docker 和 docker compose。
其次是安装 namekoplus 代码库,这个代码库除了包含 Nameko 微服务的依赖项,还提供了一个快速启动的命令行工具。
python3 -m pip install namekoplus
启动一个 RabbitMQ
安装好 namekoplus 后,我们就可以启动一个 RabbitMQ 容器了。这个容器会暴露 5672 ,15672 等端口。(其中 15672 是管理界面端口)
namekoplus start -m rabbitmq
当运行如上命令后,很快我们就可以看到 RabbitMQ 启动成功的输出了。
RabbitMQ 管理端的用户名和密码默认为
admin
和admin
。如果你想自定义,只需要在 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_service
和 rpc_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 微服务!