结构型模式 适配器模式适配器是一种结构型设计模式,它能使接口不兼容的对象能够,相互合作。 举个例子国内是电源插座是220V,现在呢,我出国了,比如说印度,印度的电源是230的,国内的用的220v的充电头用不了,那怎么办,一种是去他们国家买个新的,另一种是搞个万能转接头,比如说230转220的,这样就可以使用了,这种转接头也就是 适配器 1234567891011121314151617181920212223 2023-05-01 #设计模式
创建型模式 23种模式中可以划分为三大类,分别是 创建型模式,结构型模式,行为模式,这三部分我分三篇来写,本文主要介绍创建型模式 什么事创建型模式?创建型模式提供了创建对象的机制,能够提升已有代码的灵活性和可复用性。 创建模式分为几种? 工厂方法 抽象方法 生成器 原型 单例 工厂方法 假如说有个工厂,这个工厂专门生产球类,每次客户都发订单给这个工厂,工厂根据不同订单做好球并发给客户,客户只需知道他需要 2023-05-01 #设计模式
rgw_请求处理流程 前言本文主题: 当我们用 s3cmd(s3,Swift等)上传文件时候,rgw是如何处理的(这次先单独讨论 整体上传) 从一个s3请求 到如何转换成 rgwRequest 再到 数据如何切割存储到rados中 整体架构 接受请求的 前端– beast 在N版中默认 是用 beast (可以异步处理http服务器 )前端来解析HTTP请求,rgw 默认是使用beast,并用 RGW 2023-03-20 #ceph
rgwput流程-execute分析 前言本文主题: 当我们用 s3cmd 上传文件是,rgw是如何处理的 对于s3cmd(s3 api) 的每个请求操作,再rgw 中都有对应的 handle op 来处理如 put 请求, 对于这类请求操作有专门的类做处理 RGWPutObj::execute() 在处理之前的流程基本都是通用的,即 解析请求 -> 验证请求 -> 生成对应hanle (流程多,单独一篇文章介 2023-03-11 #ceph
关于指针的一些问题 看到一个改错题(很常见的一道题),一个关于申请内存的函数,即传入一个指针 p,然后分配内存,首地址保存到p,然后返回,由于malloc 是分配到栈的,即使函数消亡了,内存也不会回收,逻辑上没毛病,但实际上这个传入的参数是有问题的,刚好借这个题目复习下指针的一些操作 12345678910111213void * memory(int num,void *p){ p = malloc(s 2022-12-11 #指针
osd 心跳(深入理解) 使用场景 在分布式系统中有很多节点,节点数量多了,各种异常就会经常发生,如:宕机、磁盘损坏、网络故障等;如果集群的某个节点出现什么故障是难以知道的;还有就是监测各个节点的健康状况,快速定位集群中的异常节点。 心跳机制是什么 通俗解释: 客户端每隔 N秒发送心跳数据包给服务端,正常来说在M秒内,服务端会回复客户端消息,若是 服务端大于M秒内没回复,则客户端会认为是出现心跳超时的异常,客户端会进一 2022-10-11 #ceph
osd 心跳 osd 心跳是什么,有什么功能作用心跳是什么? 心跳是一种用于故障检测的手段(简单的说就是发个数据包给你,通过有没有回复来判断你的状态)。在分布式系统中有很多节点,节点数量多了,各种异常就会经常发生,如:宕机、磁盘损坏、网络故障等,通过心跳这种机制可以快速有效的定位集群中的错误节点,并做及时的处理保证集群正常服务。 osd 心跳 osd是什么? 通俗理解为 主要负责管理ceph集群中磁盘 2022-10-01 #ceph
ceph-模块初始化中 prefork源码解析 在 osd启动流程的代码中有一个 global_init_prefork() 的 函数,发现在很多 模块启动流程都有 这个函数,这和模块对应的进程有关系,所以对这个函数剖析下 具体实现函数都在 Preforker 类中 在先执行是 global_init_prefork(g_ceph_context) 函数 global_init_prefork(g_ceph_context)p 2022-08-25 #ceph
ceph admin socket 源码分析 test 预备知识Unix domain socket 和 网络 socket的区别 对于网络socket,大家应该比较熟悉,两个不同主机上的进程通信,就可以网络 socket来通信;对于同一台主机上的两个进程通信也可以使用socket,地址使用 127.0.0.1就可以实现,但是对于同一主机的两个进程通信而言,其数据还是需要通过网络协议栈(数据需要打包又要拆包…),这样效率并不高,后来 2022-08-19 #ceph
一致性哈希的简单理解 什么是一致性哈希 一致性hash算法,是麻省理工学院1997年提出的一种算法,目前主要应用于分布式缓存当中。 一致性hash算法可以有效地解决分布式存储结构下动态增加和删除节点所带来的问题。 传统hash假如现在有三台服务器用作图片缓存,如何使用大量的图片均衡的分布在服务器上呢,如果有30万张图片,最理想的是每个服务器都负载10万张图片;使用传统hash可以对文件名进行hash(假设文件 2022-08-04 #分布式基础