加载中
Django源码分析系列之Wsgi协议介绍

Web请求在服务端的最简流程 客户端服务端解析request业务逻辑响应response响应客户端 通过这个流程我们可以发现, 在服务端,不管后端是什么Web服务器都要经历解析request(从socket数据包中解...

DJango的WSGIHandler和Request的实现

Django里面的WSGI Application 当创建项目的时候, 通常会在我们的项目路径下生成一个wsgi.py文件, 当我们使用gunicorn等工具指定application的时候都会指向这个文件 # wsgi.py import os fr...

2018/07/03 00:00
0
基于环状队列和迭代器实现分布式任务RR分配策略

# 背景 ## 分布式任务分配 在很多运维场景下,我们都会执行一些长时间的任务,比如装机、部署环境、打包镜像等长时间任务, 而通常我们的任务节点数量通常是有限的(排除基于k8s的hpa、或者k...

2019/05/10 09:12
0
微服务的断路器实现图解Golang通用版

断路器背景 微服务连锁故障场景 在分布式环境中,各个微服务相互调用,当某些情况下,比如后端中间件服务故障、第三方服务中断导致某个服务无限期不可用,短时间无法恢复,则可能会导致连锁故...

基于2PC和延迟更新完成分布式消息队列多条事务Golang版本

背景 分布式多消息事务问题 在消息队列使用场景中,有时需要同时下发多条消息,但现在的消息队列比如kafka只支持单条消息的事务保证,不能保证多条消息,今天说的这个方案就时kafka内部的一个...

2019/05/17 10:58
0
基于Kafka协调器实现分布式主节点选举及任务分配

背景 基于Kafka消息队列的两级协调调度架构 Kafka内部为了协调内部的consumer和kafka connector的工作实现了一个复制协议, 主要工作分为两个步骤: 通过worker(consumer或connect)获取自身的...

2019/05/21 00:49
0
微服务注册中心注册表与hashcode实现golang版

背景 基于负载均衡的服务调用 基于负载均衡的服务相互调用指的是通过基于Lvs、Haproxy、Nginx等负载均衡软件来构建一个负载均衡服务,所有的服务调用都通过负载均衡器 从负载均衡的这种模式下...

图解golang里面的读写锁实现与核心原理分析了解编程语言背后设计

1. 基础筑基 1.1 读写锁的特点 读写锁区别与互斥锁的主要区别就是读锁之间是共享的,多个goroutine可以同时加读锁,但是写锁与写锁、写锁与读锁之间则是互斥的 1.2 写锁饥饿问题 因为读锁是共...

2019/12/20 12:44
0
图解Go里面的互斥锁mutex了解编程语言核心实现源码

1. 锁的基础概念 1.1 CAS与轮询 1.1.1 cas实现锁 在锁的实现中现在越来越多的采用CAS来进行,通过利用处理器的CAS指令来实现对给定变量的值交换来进行锁的获取 1.1.2 轮询锁 在多线程并发的情...

2019/12/23 09:50
0
图解Go里面的WaitGroup了解编程语言核心实现源码

1. 基础筑基 sync.WaitGroup里面的实现逻辑其实蛮简单的,在看过之前的sync.Mutex和synx.RWMutex之后,阅读起来应该非常简单,而唯一有差异的其实就是sync.WaitGroup里面的state1 1.1 等待机...

2019/12/26 09:09
0
图解Go里面的sync.Map了解编程语言核心实现源码

1.基础筑基 在大多数语言中原始map都不是一个线程安全的数据结构,那如果要在多个线程或者goroutine中对线程进行更改就需要加锁,除了加1个大锁,不同的语言还有不同的优化方式, 像在java和g...

2019/12/30 08:00
0
图解Go语言的context了解编程语言核心实现源码

1.基础筑基 1.1 基于线程的编程语言中的一些设计 1.1.1 ThreadGroup ThreadGroup是基于线程并发的编程语言中常用的一个概念,当一个线程派生出一个子线程后通常会加入父线程的线程组(未指定线...

mu
01/06 10:40
0
图解 kubernetes scheduler 源码设计系列-初步了解

1. 资源调度基础 scheudler是kubernetes中的核心组件,负责为用户声明的pod资源选择合适的node,同时保证集群资源的最大化利用,这里先介绍下资源调度系统设计里面的一些基础概念 1.1 基础任务...

图解kubernetes调度器SchedulingQueue核心源码实现

SchedulingQueue是kubernetes scheduler中负责进行等待调度pod存储的对,Scheduler通过SchedulingQueue来获取当前系统中等待调度的Pod,本文主要讨论SchedulingQueue的设计与实现的各种实现,...

图解kubernetes调度器SchedulerCache核心源码实现

SchedulerCache是kubernetes scheduler中负责本地数据缓存的核心数据结构, 其实现了Cache接口,负责存储从apiserver获取的数据,提供给Scheduler调度器获取Node的信息,然后由调度算法的决策p...

图解kubernetes调度器ScheduleAlgorithm核心实现学习框架设计

03.kubernetes scheduler algorithm ScheduleAlgorithm是一个接口负责为pod选择一个合适的node节点,本节主要解析如何实现一个可扩展、可配置的通用算法框架来实现通用调度,如何进行算法的统一...

01/15 10:56
0
图解kubernetes调度器预选设计实现学习

004.预选设计 Scheduler中在进行node选举的时候会首先进行一轮预选流程,即从当前集群中选择一批node节点,本文主要分析k8s在预选流程上一些优秀的筛选设计思想,欢迎大佬们指正 1. 基础设计...

图解kubernetes基于map/reduce模式实现优选计算

优选阶段通过map/reduce模式来实现多个node和多种算法的并行计算,并且通过基于二级索引来设计最终的存储结果,从而达到整个计算过程中的无锁设计,同时为了保证分配的随机性,针对同等优先级...

图解kubernetes服务打散算法的实现源码

在分布式调度中为了保证服务的高可用和容灾需求,通常都会讲服务在多个区域、机架、节点上平均分布,从而避免单点故障引起的服务不可用,在k8s中自然也实现了该算法即SelectorSpread, 本文就...

01/18 13:48
0
图解kubernetes调度器抢占流程与算法设计

抢占调度是分布式调度中一种常见的设计,其核心目标是当不能为高优先级的任务分配资源的时候,会通过抢占低优先级的任务来进行高优先级的调度,本文主要学习k8s的抢占调度以及里面的一些有趣...

没有更多内容

加载失败,请刷新页面

返回顶部
顶部