最近工作中需要写一个一致性哈希的代理,在网上找到了twemproxy,结合网上资料先学习一下源码. 一.Twemproxy简介 Twemproxy是memcache与redis的代理,由twitter公司开发并且目前已经开源.研究这个对于理解网络通信有很大的帮助. 亮点有以下: 1.twemproxy自己创建并维护和后端server(即reids实例)的长连接,保证长连接对于来自不同client但去向同一server的复用. 2.自动识别异常状态的server,保证之后的请求不会被转发到该异常s…
[源码分析] 消息队列 Kombu 之 启动过程 0x00 摘要 本系列我们介绍消息队列 Kombu.Kombu 的定位是一个兼容 AMQP 协议的消息队列抽象.通过本文,大家可以了解 Kombu 是如何启动,以及如何搭建一个基本的架子. 因为之前有一个综述,所以大家会发现,一些概念讲解文字会同时出现在后续文章和综述之中. 0x01 示例 下面使用如下代码来进行说明. 本示例来自https://liqiang.io/post/kombu-source-code-analysis-part-5系列…
原创文章,转载请注明: 转载自http://www.cnblogs.com/tovin/p/3858065.html 为了更深入的了解spark,现开始对spark源码进行分析,本系列文章以spark 1.0.0版本源码作为分析对象.今天主要分析下standalone部署方式的启动过程 1.Spark Standalone组件 Standalone部署方式是一种典型master-slave模式,在这种模式下主要包含三个组件:Master(Cluster Manager).Worker(slave…
前置:这里使用的linux版本是4.8,x86体系. 这篇是 http://home.ustc.edu.cn/~boj/courses/linux_kernel/1_boot.html 的学习笔记. linux的启动过程有点像是小鱼吃大鱼,最后吃成一个胖子. 计算机中的PC寄存器是用来指示下个执行程序.最开始的时候,pc寄存器都是指向0xfffffff0.这个程序是指向BIOS的POST程序的.POST全称是Power On Self Test,意思是加点自检.过程包括内存检查,系统总线检查等.…
在上一篇文章中,我们分析了tomcat的初始化过程,是由Bootstrap反射调用Catalina的load方法完成tomcat的初始化,包括server.xml的解析.实例化各大组件.初始化组件等逻辑.那么tomcat又是如何启动webapp应用,又是如何加载应用程序的ServletContextListener,以及Servlet呢?我们将在这篇文章进行分析 我们先来看下整体的启动逻辑,tomcat由上往下,挨个启动各个组件: 我们接着上一篇文章来分析,上一篇文章我们分析完了Catalina…
说到Tomcat的启动,我们都知道,我们每次需要运行tomcat/bin/startup.sh这个脚本,而这个脚本的内容到底是什么呢?我们来看看. 启动脚本 startup.sh 脚本 #!/bin/sh os400=false case "`uname`" in OS400*) os400=true;; esac # resolve links - $0 may be a softlink PRG="$0" while [ -h "$PRG"…
1. 简介 在上一篇文章中,我比较详细的分析了获取 bean 的方法,也就是getBean(String)的实现逻辑.对于已实例化好的单例 bean,getBean(String) 方法并不会再一次去创建,而是从缓存中获取.如果某个 bean 还未实例化,这个时候就无法命中缓存.此时,就要根据 bean 的配置信息去创建这个 bean 了.相较于getBean(String)方法的实现逻辑,创建 bean 的方法createBean(String, RootBeanDefinition, Obj…
1.简介 本篇文章是 AOP 源码分析系列文章的最后一篇文章,在前面的两篇文章中,我分别介绍了 Spring AOP 是如何为目标 bean 筛选合适的通知器,以及如何创建代理对象的过程.现在我们的得到了 bean 的代理对象,且通知也以合适的方式插在了目标方法的前后.接下来要做的事情,就是执行通知逻辑了.通知可能在目标方法前执行,也可能在目标方法后执行.具体的执行时机,取决于用户的配置.当目标方法被多个通知匹配到时,Spring 通过引入拦截器链来保证每个通知的正常执行.在本文中,我们将会通过…
更多ceph-csi其他源码分析,请查看下面这篇博文:kubernetes ceph-csi分析目录导航 external-provisioner源码分析(3)-组件启动参数分析 本文将对external-provisioner组件的启动参数进行分析. 基于tag v1.6.0 https://github.com/kubernetes-csi/external-provisioner/releases/tag/v1.6.0 关联链接 external-provisioner组件的源码分析分为三…
更多ceph-csi其他源码分析,请查看下面这篇博文:kubernetes ceph-csi分析目录导航 ceph-csi源码分析(2)-组件启动参数分析 ceph-csi组件的源码分析分为五部分: (1)组件介绍与部署yaml分析: (2)组件启动参数分析: (3)rbd driver分析: (4)cephfs driver分析: (5)liveness driver分析. 本文将对ceph-csi组件的启动参数进行分析. 基于tag v3.0.0 https://github.com/cep…