_
置顶

重换新生

杂记终于,2020年的3月22日,在某块硬盘上面找到了博客的备份了. 这个博客从我实习后就开始没有更新了,在找回博客后看到以前自己写的内容颇有感慨,发现自己以前以为自己很厉害的写下一些文章,其实...

Python-gRPC实践(7)--gRPC的错误传递

前言之前在文章《Python-gRPC实践(3)–使用Python实现gRPC服务》介绍的实现gRPC服务中使用了一套自定义的协议来传递错误,但这并不是一个优雅的解决方案,因为这种方案的兼容性很...

Python 3.11 Asyncio新增的两个高级类

前记Python Asyncio提供了很多基础的API以及对应的对象,如果只用于编写简单的HTTP API处理函数,那么这些Python Asyncio是足够的,但在面对一些复杂点多的需求或者编...

Python Asyncio调度原理

前记在文章《Python的可等待对象在Asyncio的作用》中介绍了Python的可等待对象作用,特别是Task对象在启动的时候可以自我驱动,但是一个Task对象只能驱动一条执行链,如果要多条链...

Python-gRPC实践(6)--编写gRPC网关

前言就目前而言,在大多数场景中,用户侧的客户端和服务端还是通过HTTP进行交互,然后服务端内部各种服务再通过过各种协议进行交互,所以在采用了gRPC做内部服务的交互协议后,就需要一个网关来把gR...

Python-gRPC实践(5)--简述gRPC的高级用法

前言Python-gRPC实践(3)–使用Python实现gRPC服务讲述了如何编写和使用gRPC服务,而本文主要讲述一些业务之外的gRPC用法。 1.优雅的重启服务线上运行的服务永远都不会一尘...

Python-gRPC实践(4)--简述gRPC拦截器

前言世界上没有百分之百不会挂的服务,只能人为的去增加服务的可用性,为了能让服务的可用性增加,需要为服务添加服务治理的功能,而在gRPC中,可以通过拦截器实现一些服务治理的功能。

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框架集成,并为他们带来一...

1238