概述
简介:nameko 是python中一款小巧、简洁的、异步通信方式的微服务架构,通过rabbitmq消息组件来实现RPC服务。
Sanic教程相关:
sanic框架:简介
sanic:安装
sanic:启动和访问
sanic:增删改查 - get、post、put、patch、delete
sanic:request属性(部分)
sanic:response响应(部分)
python:sanic + aiomysql
python:sanic - websocket
sanic:view - restful普通和异步的写法
sanic:sanic_openapi - swagger
sanic:调试模式
sanic:读、写、删除cookies
nameko官方文档:
https://nameko.readthedocs.io/en/stable
nameko - github地址:
https://github.com/nameko/nameko
由于需要用到rabbitmq,所以我们首先安装:
centos7:4步搞定docker安装rabbitmq
这里我们重新安装和使用:
DockerHub拉取rabbitmq镜像:
docker pull rabbitmq:management
运行RabbitMQ容器: 不设置则账户密码为:guest/guest
docker run -d --hostname my-rabbit --name rabbit -p 15672:15672 -p 5672:5672 rabbitmq:management
前端登录核实安装rabbitmq的情况:
设置则按:RABBITMQ_DEFAULT_USER=admin -e RABBITMQ_DEFAULT_PASS=admin
不设置则账户密码为:guest/guest
通过miniconda单独创建一个Python环境,并激活这个环境:
centos7.6:安装python、miniconda
conda create -n py392namekoEnv python=3.9.2 -y
conda activate py392namekoEnv
创建项目目录,文件hello_service.py、service.py、app.py、:
mkdir namekotest
cd namekotest
touch hello_service.py
touch service.py
touch app.py
vim hello_service.py
from nameko.rpc import rpc
import datetime
class HelloService:
name = "hello_service"
@rpc
def hello(self, name):
return "hello.{}.{}".format(name, str(datetime.datetime.now())[:-7])
vim service.py
from nameko.standalone.rpc import ClusterRpcProxy
# 172.17.0.2 是服务的内网 IP
CONFIG = {'AMQP_URI': "amqp://guest:guest@172.17.0.2"}
def send_message():
with ClusterRpcProxy(CONFIG) as rpc:
rpc.hello_service.hello(name="tom")
if __name__ == '__main__':
send_message()
vim app.py
from sanic import Sanic
from nameko.standalone.rpc import ClusterRpcProxy
from sanic.response import json
app = Sanic(__name__)
# MQ配置
172.17.0.2 是服务的内网 IP
config_mq = {'AMQP_URI': "amqp://guest:guest@172.17.0.2"}
@app.get('/hello')
async def hello_world(request):
with ClusterRpcProxy(config_mq) as rpc:
data = request.args
result = rpc.hello_service.hello(name=data["name"][0])
return json({"code": 200, "result": result})
if __name__ == '__main__':
app.run(host="172.17.0.2", port=3033, auto_reload=True)
安装nameko、sanic库:
pip install nameko
pip install sanic
启动nameko微服务:
nameko run hello_service --broker amqp://guest:guest@172.17.0.2
客户端测试访问:
新增一个窗口进入同级目录并且激活conda环境
cd namekotest
conda activate py392namekoEnv
进入nameko交互模式
nameko shell
发起客户端请求。 服务端响应回 hello {name} + time
>>> n.rpc.hello_service.hello(name="test")
启动app应用并访问:
新增一个窗口进入同级目录并且激活conda环境
cd namekotest
conda activate py392namekoEnv
python app.py
客户端访问和得到的响应:http://外网IP:端口/hello?name=lily
服务端接收到的请求:
这样,我们就简单的实现了一个nameko微服务项目,并且可以通过客户端浏览器访问的微服务接口。
微信公众号:玩转测试开发
欢迎关注,共同进步,谢谢!
最后
以上就是文艺饼干为你收集整理的微服务框架nameko + sanic简单使用的全部内容,希望文章能够帮你解决微服务框架nameko + sanic简单使用所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复