女王控的博客

后端

23 篇文章

深入理解 Python 虚拟机

提供的源代码链接如无特殊说明均来自于 CPython repo 中的 Python3.7 分支。 背景 这本书旨在深入 Python 解释器之中,提供 python 程序运行机制的概念上的概述。本书描述的对象是 CPython 的解释器实现,它是目前最主流或者说官方的 Python 实现。 根据对解释器调用方式的不同,一个 Python 程序的执行可以分为两个或三个阶段,这些内容将会被涵盖在本书的不同章节中: 初始化(Initialization):这个阶段涉及到对于 python… »

Python 后端 oom 处理过程

背景 python 的 django 后端在刚启动时内存占用上升很快,导致对应的 pod 内存溢出,很多接口响应慢 方案 需要找到哪行代码导致的内存泄漏,有以下方案 pympler scalene (python3.8 以上,不符合) memray (python3.7 以上,不符合) 使用 python 内置的 tracemalloc 库 由于项目用的是 python 3.6 的版本,所以采用方案 1 和… »

Go 入门学习

入门 Hello, World 我们以现已成为传统的 案例来开始吧 Go 是一门编译型语言,Go 语言的工具链将源代码及其依赖转换成计算机的机器指令(译注:静态编译)。Go 语言提供的工具都通过一个单独的命令 go 调用,go 命令有一系列子命令。最简单的一个子命令就是 run。这个命令编译一个或多个以 .go 结尾的源文件,链接库文件,并运行最终生成的可执行文件(本书使用 表示命令行提示符。) 毫无意外,这个命令会输出: Go 语言原生支持 Unicode… »

系统设计深入学习

高并发架构 消息队列 为什么使用消息队列? 优点 解耦:通过一个 MQ,Pub/Sub 发布订阅消息这么一个模型,A 系统就跟其它系统彻底解耦了。 异步:任务发到消息队列,由消费者异步消费 削峰:任务发到消息队列,由消费者决定消费速度 缺点 系统可用性降低:MQ 挂了如何处理?即如何保证消息队列的高可用? 系统复杂度提高:怎么保证消息没有重复消费?怎么处理消息丢失的情况?怎么保证消息传递的顺序性? 一致性问题:A 系统处理完直接返回成功,发到消息队列后供 B、C、D 消费,如果 B、D 成功、C… »

分布式服务入门学习

分布式系统、单体系统区别 分布式系统是对单体系统的一种改进,但这种改进同样也带来了复杂度和实现难度。 背景 单体系统存在以下情况不能应对: 业务复杂度和产品迭代速度 处理高并发、大数据量的用户请求 代码维护和团队协作 但是分布式系统引入了新问题 网络传输的三态性 数据的一致性 可用性 // TODO https://juejin.cn/book/7106442254533066787/section/7106701956340514857 »

0%