Odin Blog

我是谁???我在哪???干了什么???

浅谈python GLI锁

对于GLI的一些分析

关于本文内容,我们需要达成以下共识: 1.cpu是用于计算的,而不是用于I/O 2.多个cpu意味着可以同时进行多个核的并行计算处理,所以多核意味着计算性能的提升 3.每个cpu一旦遇到I/O阻塞是需要等待的,所以多核对于I/O并没有提升 1.什么是GLI 官方文档对于GLI的解释如下: In CPython, the global interpreter l...

kubernetes架构分析

kubernetes架构分析

1. 架构原理 Kubernetes 最初源于谷歌内部的 Borg,提供了面向应用的容器集群部署和管理系统。Kubernetes 的目标旨在消除编排物理 / 虚拟计算,网络和存储基础设施的负担,并使应用程序运营商和开发人员完全将重点放在以容器为中心的原语上进行自助运营。Kubernetes 也提供稳定、兼容的基础(平台),用于构建定制化的 workflows 和更高级的自动化任务。 K...

kong插件

kong插件开发指南

记录docker下快速部署kong的步骤。 1.kong部署 1.1)创建kong容器网络 首先创建kong-net容器网络。默认设置为bridge 1 docker network create kong-net 部署postgresql,kong默认使用postgres做持久化。 1 2 3 4 5 6 7 8 docker run -d --name kong-databas...

后端架构师图谱

后端架构师能力图

摘抄收藏,便于自己能力拓展 后端架构师技术图谱

kong插件

kong插件开发指南

kong插件各阶段执行方法 kong插件使用了一个叫做Classic的class机制,所有的插件都是从base_plugin.lua基类上继承而来。base_plugin.lua定义了插件在各个阶段被执行的方法名,如下: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 function Bas...

有赞-对比引擎

有赞服务回归验证平台思路

搜刮记录,提供新的思路:有赞服务回归验证平台 - 对比引擎

goroutine泄漏分析

总结一下可能造成goroutine泄漏的原因和场景

语言级别的并发支持是go的一大优势,golang中提供goroutine使得我们可以很方便的解决并发问题,看起来十分简单。但是在使用的时候也存在很多需要我们注意的地方,稍不谨慎往往就会造成goroutine泄漏,而这些造成goroutine泄漏的原因大部分是容易让人忽略的代码细节。也就意味着我们不能滥用goroutine。 这里总结一下常见的一些引起goroutine泄漏的使用场景。 go...

golang 调度模型

golang 调度模型分析

进程、线程、协程 在聊调度器一定绕不开进程、线程、协程这些内容 1.关于进程和线程: 多个线程可以属于同一个进程并共享内存空间。因为多线程不需要创建新的虚拟内存空间,所以它们也不需要内存管理单元处理上下文的切换,线程之间的通信也正是基于共享的内存进行的,与重量级的进程相比,线程显得比较轻量。但是线程在调度时也有比较大的开销,每个线程大致占用2M左右内存空间,在对线程进行切换时不光会消耗较多的...

redis集群模式

redis的主流的集群模式分析

redis的常见搭建模式,按照发展模式排序(从客户端分区方面讨论,代理分区方案Twemproxy等先不列举): 单点搭建 主从模式 哨兵模式 cluster模式 单点搭建模式不做过多分析,现在互联网的应用场景下,为了解决单点模式存在的弊端,如单击吞吐,并发,流量等问题,需要构建高可用的模式。 1.主从模式 有一主一从,一主多从,多主多从等等,即一个或者多个实例,一个或者...

argo workflow笔记(四)

argo python adls支持库分析

写在前面 如果您不熟悉Argo,建议您以纯YAML格式查看示例. 该语言是描述性的,Argo 示例提供了详尽的解释. 对于经验丰富的受众,此DSL授予您使用Python编程定义Argo工作流的能力,然后将其转换为Argo YAML规范. DSL使用在Argo Python客户端存储库中定义的Argo模型. 结合这两种方法,我们得到了对Argo Workflows的整个底层控制. 1 2 ...