### chili_chicken是什么

现在微服务架构大火,企业项目纷纷向微服务转变。Python目前处于稳步发展的状态,用于多领域,比如人工智能、爬虫、运维、web等,我们此贴只讨论web方向。现在已知的Python web框架有Django、Flask、Tornado等,但是没有对于微服务的一套成熟的解决方案(类似Java中的SpringCloud,许多框架的集合),所以想开发出一套适用于Python的微服务框架。

chili_chicken初衷是用于学习交流,不建议用于实际项目,目前为个人开发,不会有太多的测试与优化,不确定是否能胜任商业项目,望谨慎选择。

### 架构示意图(暂定)

目前还给出一个大体的架构以及技术选型(后期实际开发会有调整)。开发过程中,我也会对技术选择做出相应的解释与说明。

### 各组件技术选型

PS:一个优秀的架构,不仅仅依赖的一种语言,我们这里主要使用Python,但是有些组件/框架还是会选用现有的,比如注册中心等。在技术选型时,会优先选择已有的技术,不管他是什么语言实现的(多为Java或在Go),只有某些解决方案在Python上没有现成的框架,才会考虑自己开发。

- 基础框架:使用Sanic作为基础架构,使用requests(同步)与aiohttp(异步)来实现接口调用。Sanic是一个轻量级的异步框架,相对于Django来说,它更轻量,Flask目前还没有支持异步(不知道什么时候支持)。后期也会尝试继承Django3.0+,但最开始使用Sanic作为基础架构。

- 服务注册与发现中心:初步选定阿里开源的Nacos,具体为什么选择,而不是eureka和zookeeper,后期博客将做一个说明。

- 远程调用:这个与基础组件密切相关,所以需要自研,可能会模仿openfeign的方式去调用。初步计划通讯协议实现HTTP/TCP,数据协议是心啊json/protocolbuffer,这是目前比较常用的两种方案(http+rest、tcp+protocolbuffer)。我尽量做到自由组合,具体还是在开发阶段来定。负载均衡可能会实现集中常用的算法,比如轮询、hash、权重等。

- 熔断与降级:正在调研,大概率会自研。

- 网关:后续会比较某些网关,大概率使用zuul。

- 配置中心:这个与基础框架紧密相关,会自研,使用方式会参考SpringCloudConfig。

- 调用链跟踪:调研中,后面会更新文档。

- Service Mesh:可能会加入。

- 服务治理/监控中心:比较综合、重要的部分,可能会自研究。

- 分布式事务:自研。

- 其他:后续会加入一些常用的解决方案(一般来说是现成的),比如分布式锁、分布式ID生成、分布式缓存、ES、对象存储、队列等等等。

### 项目地址

ps: 目前放在码云上,github后续会同步过去。标签:微服务 · AGL​www.agl.wiki

python 微服务架构_Python微服务架构chili_chicken相关推荐

  1. python 微服务框架_Python微服务架构chili_chicken

    ### chili_chicken是什么 现在微服务架构大火,企业项目纷纷向微服务转变.Python目前处于稳步发展的状态,用于多领域,比如人工智能.爬虫.运维.web等,我们此贴只讨论web方向.现 ...

  2. python 微服务框架_Python微服务框架NameKo 性能体验

    Nameko是Python下的一个微服务框架,小巧简洁,通过RabbitMq消息组件来实现RPC服务 Github:NameKo 一.准备工作 1.RabbitMq 使用docker安装 docker ...

  3. python求线段长度_python微元法计算函数曲线长度的方法

    计算曲线长度,根据线积分公式: ,令积分函数f(x,y,z) 为1,即计算曲线的长度,将其微元化: 其中 根据此时便可在python编程实现,给出4个例子,代码中已有详细注释,不再赘述 ''' 计算曲 ...

  4. python商品会员打折_Python微项目分享之双十一优惠计算器

    作者:JiawuZhang 出品:JiawuLab(ID:jiawulab)微项目系列是JiawuLab原创栏目,每期选取一个自创项目或发现有趣的项目,进行代码.逻辑分析,达到python学习目的. ...

  5. python 服务框架_Python Web服务高并发框架【1】(Tornado)

    本节学习目标: (1)了解Tornado的特点 (2)了解Tornado工作流程 (3)掌握Tornado在Window及Linux中的安装 (4)理解同步.异步 (5)协程基础编程 本节课程内容: ...

  6. 一文了解四种软件架构:Serverless架构、微服务架构、分布式架构、单体架构

    如果一个软件开发人员,不了解软件架构的演进,会制约技术的选型和开发人员的生存.晋升空间.这里我列举了目前主要的四种软件架构以及他们的优缺点,希望能够帮助软件开发人员拓展知识面. 一.单体架构 单体架构 ...

  7. 微服务架构实践之服务注册发现与调用

    2019独角兽企业重金招聘Python工程师标准>>> 引子 在上篇文章中我们简单回顾了我们服务器端架构的演变过程 从而引出了微服务,面向服务的架构体系 从而也带来了新的问题就是服务 ...

  8. 架构之:微服务架构漫谈

    文章目录 简介 微服务和单体服务 微服务的特征 组件服务化 组织的划分 服务之间的通信 去中心化治理 去中心化数据管理 自动化部署 对异常的响应 总结 简介 微服务的架构出现已经很久很久了,微服务架构 ...

  9. c语言进程间通信架构,构建微服务之:微服务架构中的进程间通信

    这是使用微服务架构构建应用系列的第三篇文章.第一篇文章介绍了微服务架构模式并讨论了使用微服务的优势和劣势 :第二篇文章介绍了应用的客户端如何通过API网关作为中介实现服务间的通信:在这篇文章中我们将看 ...

最新文章

  1. linux命令之添加系统搜索动态库目录-ldconfig
  2. 数据流图中flow不显示文字_利用Flow来进行旋转流体仿真
  3. 在linux系统JDK安装中文字体
  4. Apollo基础设置
  5. RabbitMQ快速入门--介绍和安装
  6. 有空研究这篇http://blog.csdn.net/studyvcmfc/article/details/7720258 研究后写篇记录
  7. android 开源图表动画,Android 图表开发开源库MPAndroidChart-Go语言中文社区
  8. OnePlus是什么
  9. 该学学数据结构了,不会数据结构真是寸步难行啊。。。。。
  10. 由购物论测试的重要性:桃子测试了,很好;糖没测试,竟然都有虫子
  11. 小确幸BBS论坛-2-首页
  12. 《概率论与数理统计》(浙大第四版)第二章总结笔记(纯手写)
  13. 如何将音频从视频分离到单独的音轨?
  14. 977计算机考研,中国海洋大学 977计算机技术与软件工程专业课经验分享
  15. java根据cookie统计uv,利用Cookie统计UV流量 | 学步园
  16. 大学生计算机自我鉴定500字,大学生计算机专业的自我鉴定范文
  17. 管家婆辉煌Ⅱ TOP 突破系统每年只能做11次12次月结存限制
  18. python菜单怎么做_Python 城市菜单详解(超详解)
  19. android fake camera,码市 - No.22987 - android fake camera - 其他
  20. 给所有的Control加两个属性,实现回车键自动跳转到下一个控件

热门文章

  1. win7系统备份还原软件_易数一键还原是一款免费的、功能强大的备份还原软件,支持EFI架构的操作系统和安全启动。...
  2. Centos 查看/搜素日志 查找文件、目录、内容等 常用命令
  3. 利用LDA和主题模型发现9种冠状病毒研究趋势
  4. squirrelmail 小松鼠的安装和配置
  5. kan-java, 一个能裁剪语法特性的java动态编译工具
  6. 《三国演义》中死不瞑目的十大风流人物
  7. 保存阿里云的邮件模板提示错误Template Text is too large.
  8. MybatisPlus 分页排序封装
  9. iPhone SE容量改版513G!iPhone X是否也会这样搭配?
  10. QT-磨砂玻璃效果实现