Python的可等待对象在Asyncio的作用

前记上一遍文章《初识Python协程的实现》介绍了Python是如何以生成器来实现协程的以及Python Asyncio通过Future和Task的封装来实现协程的调度,而在Python Asy...

Python-gRPC实践(3)--使用Python实现gRPC服务

前言通过前面的文章了解到了gRPC是什么,以及清楚使用它的优缺点,现在终于可以开始实现一个gRPC服务了。

在Python运行时修改业务代码的SQL

前记在项目的演变过程中,有时可能会诞生一些需要奇怪的临时需求,这些需求会涉及到所有的SQL,但开发时间上却不允许整个项目的所有SQL进行重写,比如控制不同的人访问表的权限,或者是我面对的SASS...

Pre-Worker服务模型问题的思考

前记目前TCP服务的工作模型有三种,但是开源的服务器基本上都是使用Pre-Worker模型,比如Nginx和Gunicorn。在阅读Gunicorn源码后我对Gunicorn为啥要采用这个模型感...

gunicorn源码分析

前记Gunicorn是一个基于Python实现的动态Web服务器,它通过Pre-Worker模型来实现并发,本身带有多种工作模式,基本上可以与所有基于Python的Web框架集成,并为他们带来一...

Python-gRPC实践(2)--Protocol Buffer

前言在上一文Python-gRPC实践(1)–gRPC简介简单的介绍了gRPC采用了HTTP2作为它的传输协议,以及gRPC是如何通过HTTP2传输数据的,而本文则着重介绍gRPC所采用的序列化...

Python-gRPC实践(1)--gRPC简介

前言接触gRPC比较早, 但我不怎么喜欢在Python中使用gRPC, 因为Python中的官方gRPC框架易用性太烂了, 只提供基本功能, 附带的其他功能要不就不完善, 要不文档就只有简单几句...

RPC框架编写实践--简介注册与发现的

前记微服务比正常的单体服务的主要差别是小而多, 同时每个小服务的上下线频率也比较高, 经常会根据服务的使用量来增减服务, 使得整体服务能在不同的并发量情况下时刻保持着稳定, 同时也不会造成服务空...

RPC框架编写实践-RPC常见限流方法的实现

前记在微服务中, 虽然服务间的调用都是可信的, 但是服务端也需要堤防一些流量, 防止被意外的流量击垮, 而通过限流可以防止问题的发生。此外, 使用不同的限流规则还能根据系统间不同服务的请求进行限...

starlette源码分析

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

初识Python协程的实现

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

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

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

1234510