写点什么

源码分析

12 人感兴趣 · 126 次引用

  • 最新
  • 推荐

GO database/sql 连接池源码分析

用户头像
Jack Zheng3 小时前

本文档主要针对Go 1.14.12版本的database/sql/sql.go的连接池做源码分析,通过这个篇文档能够了解Go在数据库连接池的一个设计逻辑,重要的流程以及在代码中一些值得借鉴模仿的逻辑及风格。

https://static001.geekbang.org/infoq/6b/6b5ade3673289f7449d2441c812b5758.jpeg?x-oss-process=image/resize,w_416,h_234

源码解析:一文读懂 Kubelet

用户头像
张晓辉6 月 15 日

本文主要介绍 kubelet 功能、核心组件,以及启动流程的源码分析,总结了 kubelet 的工作原理。

Java Shutdown Hook 场景使用和源码分析

用户头像
Java架构师6 月 12 日

如果想在 Java 进程退出时,包括正常和异常退出,做一些额外处理工作,例如资源清理,对象销毁,内存数据持久化到磁盘,等待线程池处理完所有任务等等。特别是进程异常挂掉的情况,如果一些重要状态没及时保留下来,或线程池的任务没被处理完,

https://static001.geekbang.org/infoq/ca/ca154c7667899f5f643c5d363ef57615.jpeg?x-oss-process=image/resize,w_416,h_234

kubelet 之存储扩容源码分析

用户头像
良凯尔6 月 12 日

存储的扩容分为controller端操作与node端操作两大步骤,controller端操作由external-resizer来调用ceph完成,而node端操作由kubelet来完成,下面来分析下kubelet中有关存储扩容的相关代码。

https://static001.geekbang.org/infoq/79/79a826dd5f5514ae85fccf1c73b01a7a.jpeg?x-oss-process=image/resize,w_416,h_234

kubelet 之 volume manager 源码分析

用户头像
良凯尔6 月 6 日

volume manager存在于kubelet中,主要是管理存储卷的attach/detach(与AD controller作用相同,通过kubelet启动参数控制哪个组件来做该操作)、mount/umount等操作。

https://static001.geekbang.org/infoq/cd/cd7f2cdccfff2f765ea94d3ce6364c9b.png?x-oss-process=image/resize,w_416,h_234

权限与认证:JWT 实践

上一篇权限与认证:JWT中,我们详细介绍了JWT,以及基于Token认证的机制,并描述了使用JWT的实现,即JWT的获取和使用JWT访问接口等资源的过程。本篇将通过一个实例,来了解JWT如何在实战中应用。

HashMap 源码分析 (一)

用户头像
泽睿5 月 30 日

如果要选择一个在java开发者心目中使用最多的工具,我想HashMap必定榜上有名. 我们在日常开发、面试中,hashMap已经成为一个常客。同时作为Doug Lea的神作,我想我们很有必要仔仔细细钻研它的具体实现,因为hashMap的具体实现有很多值得我们学习的东西。在面试

https://static001.geekbang.org/infoq/73/738834753983827ce7a4612b827eb699.jpeg?x-oss-process=image/resize,w_416,h_234

kube-controller-manager 之 AD Cotroller 源码分析

用户头像
良凯尔5 月 29 日

AD Cotroller全称Attachment/Detachment 控制器,主要负责创建、删除VolumeAttachment对象,并调用volume plugin来做存储设备的Attach/Detach操作(将数据卷挂载到特定node节点上/从特定node节点上解除挂载),以及更新node.Status.VolumesAttached等。

Mybatis-Plus 的应用场景及注入 SQL 原理分析

本文简要介绍了传统mybatis开发中的一些弊端,通过mybatis-plus的内置通用 Mapper和强大的条件构造器,可以感受到mybatis-plus对于单表CRUD的便捷性,并且针对mybatis-plus的sql自动注入原理进行了详细的源码分析。

https://static001.geekbang.org/infoq/de/de9cf8541c4080fa64313d11501e9ecb.jpeg?x-oss-process=image/resize,w_416,h_234

kube-controller-manager 之 PV Cotroller 源码分析

用户头像
良凯尔5 月 22 日

kube-controller-manager组件中,有两个controller与存储相关,分别是PV controller与AD controller。 PV Cotroller全称PersistentVolume controller,主要负责pv、pvc的绑定和生命周期管理(如创建/删除底层存储,创建/删除pv,pv与pvc的状态变更)。

https://static001.geekbang.org/infoq/70/700beb40606062e483760da7f6f35090.jpeg?x-oss-process=image/resize,w_416,h_234

ceph-csi 源码分析(8)-cephfs driver 分析

用户头像
良凯尔5 月 15 日

cephfs driver,与rbd driver类似,同样包括了controllerserver、nodeserver与IdentityServer,且大部分方法逻辑一致,只是最后调用的cli命令稍有不同,所以大部分方法的分析可以参考rbd driver部分。

https://static001.geekbang.org/infoq/26/267af14efd4f04eb5116be2263084475.jpeg?x-oss-process=image/resize,w_416,h_234

ceph-csi 源码分析(7)-rbd driver-IdentityServer 分析

用户头像
良凯尔5 月 15 日

这节进行IdentityServer分析,IdentityServer主要包括了GetPluginInfo(获取driver信息)、Probe(探测接口)、GetPluginCapabilities(获取driver能力)三个方法,将一一进行分析。

https://static001.geekbang.org/infoq/01/01589a5ecc2df00514330a812adabec8.jpeg?x-oss-process=image/resize,w_416,h_234

ceph-csi 源码分析(6)-rbd driver-nodeserver 分析(下)

用户头像
良凯尔5 月 9 日

这节进行NodeStageVolume(map rbd与mount stagingPath)、NodePublishVolume(mount targetPath)、NodeUnpublishVolume(umount targetPath)、NodeUnstageVolume(umount stagingPath与unmap rbd)的分析。

https://static001.geekbang.org/infoq/2f/2fd48fdb922ee8e3e7c4cb7190b2dc60.jpeg?x-oss-process=image/resize,w_416,h_234

ceph-csi 源码分析(5)-rbd driver-nodeserver 分析(上)

用户头像
良凯尔5 月 9 日

nodeserver主要包括了NodeGetCapabilities(获取driver能力)、NodeGetVolumeStats(存储探测及metrics获取)、NodeStageVolume、NodePublishVolume、NodeUnpublishVolume、NodeUnstageVolume、NodeExpandVolume操作

https://static001.geekbang.org/infoq/b0/b0465fbdc95a845a3204e22553205589.jpeg?x-oss-process=image/resize,w_416,h_234

ceph-csi 源码分析(4)-rbd driver-controllerserver 分析

用户头像
良凯尔4 月 30 日

这节进行controllerserver分析,controllerserver主要包括了CreateVolume(创建存储)、DeleteVolume(删除存储)、ControllerExpandVolume(存储扩容)、CreateSnapshot(创建存储快照)、DeleteSnapshot(删除存储快照)操作。

https://static001.geekbang.org/infoq/dd/dd89f014bcc9239363b7b4de8422424c.jpeg?x-oss-process=image/resize,w_416,h_234

ceph-csi 源码分析(3)-rbd driver- 服务入口分析

用户头像
良凯尔4 月 30 日

当ceph-csi组件启动时指定的driver type为rbd时,会启动rbd driver相关的服务。然后再根据controllerserver、nodeserver的参数配置,决定启动ControllerServer与IdentityServer,或NodeServer与IdentityServer。

https://static001.geekbang.org/infoq/81/81188968e64ea39af1fd35b37e901eb9.jpeg?x-oss-process=image/resize,w_416,h_234

ceph-csi 源码分析(2)- 组件启动参数分析

用户头像
良凯尔4 月 24 日

ceph-csi扩展各种存储类型的卷的管理能力,实现第三方存储ceph的各种操作能力与k8s存储系统的结合。调用第三方存储ceph的接口或命令,从而提供ceph数据卷的创建/删除、挂载/解除挂载的具体操作实现。本文将对ceph-csi组件的启动参数进行分析。

https://static001.geekbang.org/infoq/af/afa8d5b8386b6f72cbb7f3b10bea60af.jpeg?x-oss-process=image/resize,w_416,h_234

ceph-csi 源码分析(1)- 组件介绍与部署 yaml 分析

用户头像
良凯尔4 月 24 日

ceph-csi扩展各种存储类型的卷的管理能力,实现第三方存储ceph的各种操作能力与k8s存储系统的结合。调用第三方存储ceph的接口或命令,从而提供ceph数据卷的创建/删除、挂载/解除挂载的具体操作实现。这里将对ceph-csi组件进行展开分析。

https://static001.geekbang.org/infoq/7b/7bf1f2347493308ae50c1cd459f3db8f.jpeg?x-oss-process=image/resize,w_416,h_234

关于 Spring 中 getBean 的全流程源码解析

用户头像
小傅哥4 月 19 日

总感觉 Spring 也没啥看的,怎么面试官一问就能问出花?pring 的 getBean 中,transformedBeanName 的作用是什么?那这么说,你的 Bean 如果有 alias 别名,Spring 在获取 Bean 时候要怎么处理?

https://static001.geekbang.org/infoq/2c/2c47c49729e6e3fddf9978874a070ae0.jpeg?x-oss-process=image/resize,w_416,h_234

微服务网关:Nacos 源码实践(二)

Nacos 实践中,简单介绍了Nacos源码的基本结构和nacos-example的三个示例。事实上,单单在引入nacos的git源码这里,就存在一个问题,我们将在本文中详细描述。而后,将以源码方式启动nacos控制台并访问主页面,作为对Nacos探究的第一步。

https://static001.geekbang.org/infoq/2c/2c47c49729e6e3fddf9978874a070ae0.jpeg?x-oss-process=image/resize,w_416,h_234

Nacos 实践

前面介绍了网关的相关方案,对Zuul、Spring Cloud Config配置中心进行了部分源码分析;并在上一篇介绍了Kong和Nacos的架构。本篇将基于nacos的git源码,拉取到本地后通过example来了解基本的使用方式。

https://static001.geekbang.org/infoq/82/8252c02260a57b7a53feb8631e6f40b2.jpeg?x-oss-process=image/resize,w_416,h_234

kubernetes ceph-csi 分析 - 目录导航

用户头像
良凯尔4 月 17 日

最近在做分布式存储ceph接入kubernetes,用的是csi这一套,在开发的过程中,自己也用有道云笔记做过一些ceph-csi相关的源码分析、知识总结之类的记录,刚好自己又萌生了发博的想法,后续准备加以完善,然后发出来大家互相学习,有什么错误的地方希望大家指出

https://static001.geekbang.org/infoq/ee/ee19e4ed56c2df79bd072c36fb7498ce.jpeg?x-oss-process=image/resize,w_416,h_234

external-provisioner 源码分析(3)- 组件启动参数分析

用户头像
良凯尔4 月 17 日

external-privisioner组件属于ceph-csi套件中的一个,主要负责调用ceph-csi组件的CreateVolume方法来创建存储,创建存储成功后,创建pv对象;调用ceph-csi的DeleteVolume方法来删除存储,并删除pv对象。接下来将对external-provisioner组件启动参数进行分析。

https://static001.geekbang.org/infoq/2d/2d2baaba6b845ca2365144b67e46a773.jpeg?x-oss-process=image/resize,w_416,h_234

external-provisioner 源码分析(2)-main 方法与 Leader 选举分析

用户头像
良凯尔4 月 17 日

external-privisioner组件属于ceph-csi套件中的一个,负责调用ceph-csi组件CreateVolume方法来创建存储,创建存储成功后创建pv对象;调用ceph-csiDeleteVolume方法来删除存储,并删除pv对象。接下来对external-provisioner进行main 方法与 Leader 选举分析。

https://static001.geekbang.org/infoq/35/35b55f6b75b79a4f376dde9c544ed312.jpeg?x-oss-process=image/resize,w_416,h_234

external-provisioner 源码分析(1)- 主体处理逻辑分析

用户头像
良凯尔4 月 17 日

external-privisioner组件属于ceph-csi套件中的一个,主要负责调用ceph-csi组件的CreateVolume方法来创建存储,创建存储成功后,创建pv对象;调用ceph-csi的DeleteVolume方法来删除存储,并删除pv对象。接下来将对external-provisioner进行主体处理逻辑分析。

https://static001.geekbang.org/infoq/73/738834753983827ce7a4612b827eb699.jpeg?x-oss-process=image/resize,w_416,h_234

k8s 通过 ceph-csi 接入存储的概要分析

用户头像
良凯尔4 月 17 日

通过ceph-csi让k8s接入ceph存储,对所涉及的k8s对象与组件进行了简单的介绍,以及对存储进行操作的流程分析,存储相关操作包括了存储创建、存储扩容、存储挂载、解除存储挂载以及存储删除操作。

https://static001.geekbang.org/infoq/bc/bc1c7606373299ca73c5a0461e467bdb.jpeg?x-oss-process=image/resize,w_416,h_234

VueRouter 源码解读:三大核心模块构成

用户头像
梁龙先森4 月 15 日

以数据模型的角度理解VueRouter框架解决问题思路。

源码分析_源码分析资料文章-InfoQ写作平台