Python Asyncio 库之asyncio.task常用函数详解

前记Asyncio在经过一段时间的发展以及获取Curio等第三方库的经验来提供更多的功能,目前高级功能也基本完善,但是相对于其他语言,Python的Asyncio高级功能还是不够的,但好在Asy...

Python-gRPC实践(9)--gRPC在gevent与asyncio的简单使用对比.md

前言之前在Python-gRPC实践系列文章中都是在多线程模式中介绍如何使用gRPC,但是在Python生态中更偏好通过协程的方式来运行服务,而Python的协程运行方式却有多种,虽然他们的原理...

如何使用Poetry(1.2+)管理Python虚拟环境

前记一个项目最重要的就是跑起来, 大家基本会同时在本地开发多个项目, 而每个项目用到的环境都是不一样的, 如果这些项目都共用一份依赖那么会导致多个项目的依赖发生冲突以及导致线上服务不稳定,所以就...

Python-gRPC实践(8)--Protobuf插件

前言最近在完善一个Protobuf中的Message转为pydantic.BaseModel对象的库–protobuf_to_pydantic,想为它增加一个从原生Protobuf文件直接生成对...

使用Pait快速构建gRPC Json网关

前记gRPC已经是一个大多数开发者使用微服务时选择的通信协议,大多数公司的内部服务都会通过gRPC来通信,但是服务端和客户端使用的通信协议还是HTTP,这就意味着需要在客户端和内部服务之间架起一...

为何在Python生态很少听说到依赖注入

前记由于使用的主要编程语言是Python,所以对于依赖注入这个概念并不是很清楚或者不知道自己已经在代码中运用了依赖注入的用法,在接触了DDD后才开始真正的了解什么是依赖注入以及依赖注入的重要性,...

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中,可以通过拦截器实现一些服务治理的功能。

123410