### chili_chicken是什么

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

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

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

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

![微服务](http://agl.wiki/upload/2020/3/%E5%BE%AE%E6%9C%8D%E5%8A%A1-e4dfad69350d4b3c9a23033f298a2d64.png)

### 各组件技术选型

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、对象存储、队列等等等。

### 项目地址

AGL/chili_chicken

ps: 目前放在码云上,github后续会同步过去。

标签:微服务 · AGL​www.agl.wiki

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

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

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

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

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

  3. 微服务框架 SpringCloud微服务架构 27 自动补全 27.2 自定义分词器

    微服务框架 [SpringCloud+RabbitMQ+Docker+Redis+搜索+分布式,系统详解springcloud微服务技术栈课程|黑马程序员Java微服务] SpringCloud微服务 ...

  4. 微服务框架 SpringCloud微服务架构 25 黑马旅游案例 25.5 排序和搜索关键字高亮

    微服务框架 [SpringCloud+RabbitMQ+Docker+Redis+搜索+分布式,系统详解springcloud微服务技术栈课程|黑马程序员Java微服务] SpringCloud微服务 ...

  5. 微服务框架 SpringCloud微服务架构 25 黑马旅游案例 25.4 广告置顶

    微服务框架 [SpringCloud+RabbitMQ+Docker+Redis+搜索+分布式,系统详解springcloud微服务技术栈课程|黑马程序员Java微服务] SpringCloud微服务 ...

  6. 微服务框架 SpringCloud微服务架构 26 数据聚合 26.5 多条件聚合

    微服务框架 [SpringCloud+RabbitMQ+Docker+Redis+搜索+分布式,系统详解springcloud微服务技术栈课程|黑马程序员Java微服务] SpringCloud微服务 ...

  7. 华为18级大牛倾情奉送:分布式服务框架和微服务设计原理实战文档,啃完发现涨薪如此简单

    前言 分布式服务框架不仅仅包含核心的运行时类库,还包括服务划分原则.服务化最佳实践.服务治理.服务监控.服务开发框架等,它是一套完整的解决方案,用来协助应用做服务化改造,以及指导用户如何构建适合自己业 ...

  8. python微服务框架_微服务架构框架有哪些?常用微服务架构介绍

    小伙伴们知道常用的微服务架构框架有哪些吗?上回我们介绍了一些常用的微服务架构设计模式,这次我们就来了解一下一些常用的微服务架构框架吧. 一.Dubbo Dubbo框架是由阿里巴巴开发的开源式的分布式服 ...

  9. java 微服务框架对比_多云架构下,JAVA微服务技术选型实例解析

    [摘要] 本文介绍了基于开源自建和适配云厂商开发框架两种构建多云架构的思路,以及这些思路的优缺点. 微服务生态 微服务生态本质上是一种微服务架构模式的实现,包括微服务开发SDK,以及微服务基础设施. ...

最新文章

  1. 改变DIV的背景颜色透明度,但其中的文字不受影响?
  2. 移动端 c++ 开发_这 10 点值得移动端开发重点学习
  3. Gson转换导致int转换成double的问题解决
  4. 登录注册实现(服务器数据)
  5. 【转】5.2高性能IO模型浅析
  6. XPath和lxml类库
  7. css固定定位与绝对定位的区别
  8. 用Python统计瓦尔登湖的词频
  9. 蓝桥杯 BASIC-19 基础练习 完美的代价 Java版
  10. iOS8新建一个新的空白工程
  11. DSP CCS12.00 芯片:TMS320F28335 外部中断 XINT1, 和映射区域的 k1 -- k4 按键的功能实现
  12. 胡昊—第8次作业--继承
  13. 将文件打成压缩包下载(OSS或FASTDFS)
  14. Aurora核使用中tx_dst_rdy信号拉低问题
  15. verilog并行数据转换为串行输出
  16. HTML5中的data-id与id
  17. MapReduce分布式计算和编程原理总结
  18. Google天气和股票API
  19. Compact set,紧集,闭集,开集
  20. 服务器系统具备自检能力,服务器内存自检自动重启

热门文章

  1. 直播+抽奖丨eygle等4位大咖讲述DBA职业发展必备软实力
  2. 嘉年华回顾丨 杨长老带你解密 Oracle 19c 和 20c 的新特性
  3. 被面试官问懵:TCP 四次挥手收到乱序的 FIN 包会如何处理?
  4. 教你如何将二进制文件导入到数据库
  5. 快上车,带你了解HiLens Studio六大优势
  6. 【华为云技术分享】云小课 | 容灾切换:业务一键切换到容灾站点
  7. 【华为云技术分享】云小课 | WAF反爬虫“三板斧”:轻松应对网站恶意爬虫
  8. pve安装黑群晖直通硬盘_蜗牛星际装机教程篇三:手把手教你安装黑群晖NAS
  9. 设计模式笔记十八:中介者模式
  10. python有什么好玩的程序_Python小程序,够你玩一整天~