作者:手机用户2502896021 | 来源:互联网 | 2024-11-06 11:21
本文探讨了使用Python进行微服务架构设计的合理性和适用性。首先,介绍了微服务的基本概念及其在现代软件开发中的重要性。接着,通过具体的业务场景,详细分析了Python在微服务架构设计中的优势和挑战。文章还讨论了在实际应用中可能遇到的问题,并提出了相应的解决方案。希望本文能够为从事Python微服务开发的技术人员提供有价值的参考和指导。
文章目录
- 前言
- 一、微服务是什么?
- 二、业务场景
- 希望有大神可以指导下
前言
使用Python做微服务的不多,限于团队主要都是Python开发,所以来聊一聊Python微服务。
一、微服务是什么?
一种软件开发技术- 面向服务的体系结构(SOA)架构样式的一种变体,将应用程序构造为一组松散耦合的服务。在微服务体系结构中,服务是细粒度的,协议是轻量级的。
微服务(或微服务架构)是一种云原生架构方法,其中单个应用程序由许多松散耦合且可独立部署的较小组件或服务组成。
二、业务场景
原有支撑平台通过Rest接口对业务系统提供服务,服务建设前后不一没有整体规划,服务入口不统一,授权机制也不太完善,部分服务与管理系统提供,接口在稳定性、性能、管理都存在着问题,需要对支撑平台进行升级改造。
1、架构设计
主要开发语言还是Python;
部署环境公有云+私有云;
- 最外层是阿里云负载均衡,负载API网关;
- API网关Kong做服务注册、鉴权、日志、限流、转发、熔断、降级、健康检查;
- 鉴权使用oauth2 client credentials模式;
- zookeeper做微服务注册和发现;
- FastAPI做Web服务从zk获取活跃的微服务,web服务也做了多节点部署;
- gRPC+Python开发微服务;
- 业务系统通过Rest API访问服务,支撑平台内部通过 gRPC 直接调用其它微服务;
- docker容器部署;
2、实践中存在的问题
- zookeeper 在架构中的必要性不明显,kong是可以直接代理proto协议,由kong做微服务的注册、发现、健康检查等功能是不更好?
- 公用程度高的服务使用grpc服务+web服务对外提供,公用程度不高的就直接使用 web服务,可以省去grpc服务的开发?
- 业务系统前端使用支撑平台可以直接调用Rest接口呢,还是必须限制后台服务调用,有没有安全问题?
希望有大神可以指导下