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

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

uvicorn源码分析

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

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

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

保障Python项目质量的工具

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

使用Redis做消息队列

前记Redis拥有很多数据结构, 是一个非常灵活的内存数据库, 基本上很多后端业务都会用到Redis, 在网络社区中, 经常听到可以使用Redis来当做XXX的问题, 在第一次接触消息队列时, ...

2021plan

前记rm 2020plan.mdvi 2021plan.md 害, 今年很快, 一下子就过去了, 有很多的意外, 也有很多不甘, 但还是得向前看

MySQL分区,分表,分库

在使用MySQL且数据库数据越来越大后就需要进行优化, 常见的方案有分区, 分表, 分库, 这三种听起来很类似, 也都起到了性能优化, 加快查询的作用, 但是他们的区别很大, 应用情况也不一样

Celery同一时刻只执行一个相同任务

前记最近由于业务原因在接触Celery,Celery的理念挺不错的,但是只从文档很难去知道改去怎么订制Celery,希望我过段时间会有一篇Celery的源码分析文章. 最近在用Celery调用...

Celery调用不同项目的任务

前记PS: 水文笔记… Celery的示例或者常用使用方式中, Celery的Woker以及任务调用经常都是在同一个项目里面.但是随着项目的拓展,很多时候Celery任务调用端与Woker的代码...

基于Python探针完成调用库的数据提取

前记最近在完善公司的监控系统, 发现在项目运行时经常会出现一些运行时的问题, 这些问题往往不是一个子服务引发的问题, 而可能是某个环节出现了问题, 这时候就需要引入APM系统。在收集APM数据时...

分布式ID的几种方案

前记在业务中, 我们经常需要有一个唯一id, 来区分每个数据, 如每个订单都有一个自己的id, 如果是一个单体应用, 实现起来会非常容易, 但很多时候是有多个应用同时索要id, 这时候就要确保任...

基于InnoDB的API分页设计

前记分页设计是一个常见的需求, 对于后端来说, 分页设计通常是跟数据库强绑定的需求. 一个后端API经常会返回成千上百条记录, 如果一下子返回所有结果对服务器, 客户端来说都是一个不小的挑战, ...

123458