starlette源码分析

前记上一篇分析了uvicorn, 但是uvicorn只是一个ASGI容器, 真正处理请求的是ASGI应用程序,而starlette是最出名也是最标准的ASGI应用程序, 通过了解starlett...

初识Python协程的实现

前记上一遍文章简单的介绍了Python的通过Async语法实现协程的优劣性以及它的特点, 在io比较多的场景中, Async语法编写的程序会以更少的时间, 更少的资源来完成相同的任务, 这篇文章...

Python的Sync与Async执行速度的快慢

前记Python新的版本中支持了async/await语法, 很多文章都在说这种语法的实现代码会变得很快, 但是这种快是有场景限制的。这篇文章将尝试简单的解释为何Async的代码在某些场景比Sy...

RPC框架编写实践--优化框架性能流水日记

前记所有提供服务的框架都需要跑性能测试, 经过性能测试来发现了解服务的qps有多少, 是否有人为的因素导致性能不足以及是否有需要优化的代码。 一般来说,服务框架的性能测试都需要跟同类的框架一起做...

RPC框架编写实践--超时与超时传递

前记接触开发以来发现很多连锁故障的场景的一个常用问题都是多端调用时,服务端正在消耗处理的时间过长或者网络传输异常导致服务端无法及时响应, 造成客户端一直等待,无法释放当前请求响应导致的, 而这种...

RPC框架编写实践--自动负载均衡

前记在业务早期,业务比较简单, 流量也比较少,单台机器就可以抗下所有请求流量, 但随着业务的增长, 一些中间件会单独占有一台机器, 业务代码也会逐渐拆分, 整个架构会慢慢的从单机的单体架构变为多...

RPC框架编写实践--服务的优雅的重启

前记无论是微服务, 还是普通的API服务器, 他们都是进程, 服务在发布的时候, 必定会重启, 这时候会先杀掉旧进程, 再启用新的进程, 但旧的服务还在进行通信, 这时候强制杀掉这些旧进程, 会...

RPC框架编写实践--熔断器

前记当依赖的服务已经出现故障时,熔断器会主动阻止本服务对依赖服务的请求,从而保证自身服务的正常运行不受依赖服务影响, 也减少依赖服务异常期间的压力,防止服务雪崩效应。

RPC框架编写实践--服务治理的基石

前记由于服务的调用是通过网络间来调用了, 服务并不在同一个进程内, 程序可能崩溃、节点可能宕机、网络可能中断,这些意外情况其实全部都在意料之中, 微服务的一个思想就是, 所有假设会出错的东西一定...

RPC框架编写实践--最小RPC框架的依赖

前记在2019上半年时, 项目需要用到RPC来为不同服务间建立连接, 便开始调研RPC相关的内容, 由于项目本身是基于Asyncio生态的, 所以就开始找基于asyncio生态的RPC框架, 那...

uvicorn源码分析

前记Uvicorn是一个基于uvloop和httptools的ASGI服务器, 性能比较强劲, 通过它可以与使用ASGI规范的Python应用程序进行交互。ASGI与WSGI很像, 只不过ASG...

保障Python项目质量的工具

前记在编写项目时,都会对代码质量有一定的追求, 比如代码艺术, 设计模式, 重构设计等等。 但是一个良好Python项目除了程序员本身的代码质量能力之外, 还有系统设计和代码质量工具等等。不过由...

123459