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

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

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

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

starlette源码分析

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

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

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

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

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

初识Python协程的实现

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

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

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

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

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

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

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

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

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

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

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

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

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

12348