考虑到 Python 性能及效率性,Python Web 端一直不温不火, JAVA 和 Golang 的微服务生态一直很繁荣,也被广泛用于企业级应用开发当中
本篇文章将介绍一款 Python 微服务框架:「 Nameko 」
2. Nameko 介绍
Nameko 是一款小巧、简洁的、异步通信方式的微服务架构
它采用 RabbitMQ 消息队列作为消息中间件,基于发布者、订阅者模式
其中,消费者与生产者基于 RPC 进行通讯
项目地址: https://github.com/nameko/nameko
3. 实战一下
下面以 Flask 为例聊聊搭建 Python 微服务的步骤
3-1 安装 RabbitMQ 及启动
这里推荐利用 Docker 安装 RabbitMQ,以 Centos 为例
1、下载某个版本的RabbitMQ的镜像
MQ版本号:3.9.5
docker pull rabbitmq:3.9.5-management
2、查看镜像
docker images
3、启动MQ容器
p:指定应用端口及Web控制台端口
hostname:主机名
e:环境变量
RABBITMQ_DEFAULT_VHOST:虚拟机名称
RABBITMQ_DEFAULT_USER:用户名
RABBITMQ_DEFAULT_PASS:密码
3e83da0dc938:MQ镜像ID
docker run -d --name rabbitmq3.9.5 -p 5672:5672 -p 15672:15672 -v pwd
/data:/var/lib/rabbitmq --hostname myRabbit -e RABBITMQ_DEFAULT_VHOST=my_vhost -e RABBITMQ_DEFAULT_USER=admin -e RABBITMQ_DEFAULT_PASS=admin 3e83da0dc938
需要注意的是,启动 MQ 容器时,利用 -p 指定了两个端口
- 5672
应用访问端口
- 15672
控制台 Web 访问端口号
然后,开放防火墙的 5672、15672 端口号
PS: 如果是云服务器,需要另外配置安全组
最后,在浏览器中通过下面的连接进入到 MQ 后台 Web 管理页面
地址: http://ip地址:15672
3-2 安装依赖包
使用 pip 命令在虚拟环境下安装 nameko、flask 依赖包
安装依赖包
nameko
pip3 install nameko
flask
pip3 install flask
3-3 创建服务生产者 Producer
自定一个类,使用 name 属性定义服务的名称为「 generate_service 」
然后使用装饰器「 rpc 」注册服务中具体的方法
producer_service.py
from nameko.rpc import rpc
class GenerateService(object):
定义微服务名称
name = “generate_service”
@rpc
def hello_world(self, msg):
print(‘hello,i am been called by customer(消费者),返回消息:{}’.format(msg))
返回结果
return “Hello World!I Am a msg from producer!”
3-4 发布 注册服 务
使用 nameko 命令在终端将目标文件中的服务注册到 MQ 中
注册服务
producer_service:目标文件
自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。
深知大多数Python工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!
因此收集整理了一份《2024年Python开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上前端开发知识点,真正体系化!
由于文件比较大,这里只是将部分目录大纲截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且后续会持续更新
如果你觉得这些内容对你有帮助,可以扫码获取!!!(备注:Python)
rt/9f49b566129f47b8a67243c1008edf79.png)
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上前端开发知识点,真正体系化!
由于文件比较大,这里只是将部分目录大纲截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且后续会持续更新
如果你觉得这些内容对你有帮助,可以扫码获取!!!(备注:Python)