自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(124)
  • 收藏
  • 关注

原创 K8s的CRI机制是什么?

K8s CRI(Container Runtime Interface) 是 K8s 定义的一组与容器运行时进行交互的接口,用于将 K8s 平台与特定的容器运行时实现解耦。CRI 在 Kubernetes 1.5 中引入,并充当 kubelet 和容器运行时之间的桥梁。目前实现了 CRI spec 的 Runtime 有 Docker Engine、containerd、CRI-O、Mirantis Container Runtime(Docker 企业版) 等。

2024-05-25 00:32:57 463

原创 K8s是如何Watch的?

进入 K8s 的世界,会发现几乎所有对象都被抽象为了资源(Resource),包括 K8s Core Resources(Pod, Service, Namespace 等)、CRD、APIService 扩展的资源类型。同时 K8s 底层将这些资源统一抽象为了 RESTful 的存储(Storage),一方面服务端按目录形式(/registry/xxx) 存放在 ETCD 中,另一方面也为客户端提供了 RESTful API 接口,便于对资源的操作(get/post/put/patch/delete 等)

2024-05-25 00:13:39 499

原创 K8s Pod IP是如何分配的?

Pod 作为 K8s 中一等公民,其承载了最核心的 Container(s) 的运行。同时,Pod 也是 K8s 中资源调度的最小单位,因此熟悉其初始化过程(包括网络、存储、运行时等)将会使我们更加深入理解 K8s 的容器编排原理,以期更好的服务各类业务。

2024-05-24 00:00:43 857

原创 k8s node NotReady后会发生什么?

K8s 是一种强大的容器编排和管理平台,能够高效地调度、管理和监控容器化应用程序;其本身使用声明式语义管理着集群内所有资源模型、应用程序、存储、网络等多种资源,Node 本身又属于 K8s 计算资源,上面承载运行着各种类型的应用程序,当Node NotReady 后运行在其上面各种 Workload 类型的 Pod 都会受到影响,脱离了 K8s 生命周期的管理后将会变的不可控无法提供服务,为保障该 Node 上 Pod 的可用性及可控性,K8s 会对这个 Node 上的 Pod 进行网络、存储、副本保持等控

2024-05-23 00:10:45 1142

原创 52条SQL语句性能优化策略(短小精悍)

本文会提到 52 条 SQL 语句性能优化策略。

2024-05-20 23:17:52 525

原创 为什么数据库不应该使用外键 ?

当我们想要持久化地存储数据时,使用关系型数据库往往都是最稳妥的选择,这不仅因为今天的关系型数据库种类非常丰富并且稳定,还因为不同社区对关系型数据库的支持都非常完备。我们在前面的文章中曾经分析过 为什么 MySQL 的自增主键不单调也不连续,这篇文章我们来分析关系型数据库中另一个重要的概念 — 外键(Foreign Key)。在关系型数据库中,外键也被称为关系键,它是关系型数据库中提供关系表之间连接的多个列[^1],这一组数据列是当前关系表中的外键,也必须是另一个关系表中的候选键(Candidate Ke

2024-05-17 23:53:08 619

原创 深度优化Hadoop NameNode读写性能

在整个公司范围内,我们都在积极推行“降本增效”的理念。从开发角度出发,这意味着我们需要在负责的项目中寻找合适的优化点,通过提升性能来实现降低成本的目标。因此,我们开始考虑是否可以在HDFS上进行进一步的优化。结合在使用HDFS过程中遇到的性能瓶颈问题,我们逐步明确了接下来要实施的性能优化方案。

2024-05-17 18:19:08 1228

原创 深度优化Hadoop DataNode读写性能

​需要深入研究Hadoop集群的存储节点并做相应的优化,减少新机型带来的性能压力。NameNode的优化可以参考(深度优化Hadoop NameNode读写性能)​

2024-05-17 18:08:49 1062

原创 Ceph集群扩容及数据再均衡原理分析

用户文件在Ceph RADOS中存储、定位过程大概包括:用户文件切割成对象、对象映射到PG、PG分组PGP、PG映射到OSD。这些过程中,可能涉及了大量概念和变量,而其实它们大部分是通过HASH、CRUSH等算法计算出来的,初始参数可能也就只有这么几个:用户文件inode、layout、crush_map等。Ceph所有组件和客户端通过计算就能得到所有对象的Location,而且只要输入的参数信息不变,Location就不会变,另外通过PG作为中间层将对象与OSD解绑,使得对象在Ceph RADOS分布更均

2024-05-14 19:40:07 647

原创 MongoDB事务的理解和思考

3.2版本开始引入Read Concern,解决了脏读,支持Read Commit3.6版本引入Session,支持多个请求共享上下文,为后续的事务支持做准备4.0支持多行事务,但4.0的事务只是个过渡的版本4.2开始支持多文档事务

2024-05-14 00:01:29 934

原创 如何更好地使用Kafka? - 故障时解决

要确保Kafka在使用过程中的稳定性,需要从kafka在业务中的使用周期进行依次保障。主要可以分为:事先预防(通过规范的使用、开发,预防问题产生)、运行时监控(保障集群稳定,出问题能及时发现)、故障时解决(有完整的应急预案)这三阶段。

2024-05-08 00:16:29 834

原创 如何更好地使用Kafka? - 运行监控篇

要确保Kafka在使用过程中的稳定性,需要从kafka在业务中的使用周期进行依次保障。主要可以分为:事先预防(通过规范的使用、开发,预防问题产生)、运行时监控(保障集群稳定,出问题能及时发现)、故障时解决(有完整的应急预案)这三阶段。

2024-05-08 00:03:20 908

原创 如何更好地使用Kafka? - 事先预防篇

要确保Kafka在使用过程中的稳定性,需要从kafka在业务中的使用周期进行依次保障。主要可以分为:事先预防(通过规范的使用、开发,预防问题产生)、运行时监控(保障集群稳定,出问题能及时发现)、故障时解决(有完整的应急预案)这三阶段。

2024-05-07 23:20:08 1215

原创 GPU通用计算介绍

谈到 GPU (Graphics Processing Unit,图形显示卡)大多数人想到的是游戏、图形渲染等这些词汇,图形处理确实是 GPU 的一大应用场景。然而人们也早已关注到它在通用计算上的巨大潜力,并提出了 GPGPU (General-purpose computing on graphics processing units, 图形处理器上的通用计算) 概念。到随着大数据处理、深度学习的流行,它也在开始在服务器上大行其道。这是因为“同等价格和功耗下,GPU 可以比 CPU 提供多的指令吞吐和内存

2024-05-05 15:51:35 1094

原创 k8s调度原理以及自定义调度器

kube-scheduler 是 kubernetes 的核心组件之一,主要负责整个集群资源的调度功能,根据特定的调度算法和策略,将 Pod 调度到最优的工作节点上面去,从而更加合理、更加充分的利用集群的资源,这也是我们选择使用 kubernetes 一个非常重要的理由。如果一门新的技术不能帮助企业节约成本、提供效率,我相信是很难推进的。

2024-05-04 21:48:50 1047

原创 SRE关于大促保障的经验沉淀和思考

对于SRE来说,大促、尤其是双十一,是一年一度的沉淀系统、防止腐烂、摸清水位、剔除风险的最佳时机,所以一定要加以利用。对于团队的其他开发,大促是一次活动而已,对于SRE来说,大促是系统稳定性提升的过程,与其说是保障大促稳定,不如说是“借大促,修系统”。所以,一定要转变思想,我们做大促保障,不仅是要“保持系统稳定性”的,更是要“提升系统稳定性”的。保持重在压测、摸排水位、限流、预案,而提升重在链路排查、风险治理、流量提升、兜底容灾。

2024-05-04 18:30:52 555

原创 SRE关于稳定治理的工作思考

SRE(Site Reliability Engineering,站点可靠性/稳定性工程师),与普通的开发工程师(Dev)不同,也与传统的运维工程师(Ops)不同,SRE更接近是两者的结合,也就是2008年末提出的一个概念:DevOps,这个概念最近也越来越流行起来。SRE模型是Google对Dev+Ops模型的一种实践和拓展(可以参考《Google运维解密》一书),SRE这个概念我比较喜欢,因为这个词不简单是两个概念的叠加,而是一种对系统稳定性、高可用、团队持续迭代和持续建设的体系化解决方案;

2024-05-04 17:53:26 817

原创 Hdfs小文件治理策略以及治理经验

小文件是 Hadoop 集群运维中的常见挑战,尤其对于大规模运行的集群来说可谓至关重要。如果处理不好,可能会导致许多并发症。Hadoop集群本质是为了TB,PB规模的数据存储和计算因运而生的。为啥大数据开发都说小文件的治理重要,说HDFS 存储小文件效率低下,比如增加namenode负载等,降低访问效率等?究竟本质上为什么重要?以及如何从本质上剖析小文件,治理小文件呢?今天就带你走进小文件的世界。

2024-05-03 22:20:35 1253

原创 GPU虚拟化和算力隔离探讨

2006这一年,GPU工业界发生了三件大事: ATI被AMD收购;nVidia黄仁勋提出了CUDA计算;Intel宣布要做独立显卡。如同经常发生的,这些事有成功有失败: Intel很快就放弃了它的独立显卡,直到2018才终于明白过来、自己放弃的到底是什么,开始决心生产独立显卡;AMD整合ATI不太成功,整个公司差点被拖死,危急时股票跌到1.8美元;而当时不被看好的CUDA,则在几年后取得了不可思议的成功。从2012年开始,人工智能领域的深度学习方法开始崛起,此时CUDA受到青睐,并很快统治了这个领域

2024-05-03 19:38:05 1316

原创 k8s环境部署gpu以及CUDA兼容性分析

CUDA本质上就是NVIDIA专为通用高性能并行计算设计的一套计算平台和编程模型,换句话使用GPU并行编程的规范方法,所以CUDA在软件层面包含了众多库, 那这里我们用一张图来简单阐述CUDA的各类运行时以及库的关系

2024-05-02 21:58:23 1447

原创 分布式事务思路和解决方案

分布式事务。这是个已经被无数次讨论的问题,网上文章多如牛毛。本文从业务底层视角出发,探讨分布式事务究竟难在何处,以及务实的解决之路走向何方,再加一根牛毛... 不过希望本文是比较不一样的视角,能给到读者不同的启发。在微服务架构流行的背景下,分布式事务的文章多如牛毛,虽然很多将事务一致性与副本一致性混为一谈,也仍不可否认其中相当一部分文章、开源代码,也还是不错的。然而当你跃跃欲试,期待将业界所谓成熟方案落地,可能很快就会发现现实的骨感 —— 对于大量互联网业务,尤其是在大并发、大量使用 nosql

2024-05-01 15:25:12 13

原创 秒杀系统的挑战和应对设计

秒杀系统是日常系统开发过程中经常遇到的场景,那么如何可以准备哪些措施来保证秒杀过程中系统的可用性以及一致性呢?秒杀活动,需要满足各方的需求作为用户,希望能够抢到自己中意的优惠作为商户,希望券不超发,系统运行稳定作为微信支付,希望能通过每周末活动提高业务口碑,同时保证资金安全

2024-05-01 13:35:23 20

原创 ClickHouse高原理与实践

ClickHouse是俄罗斯公司Yandex研发的一款开源的,用于OLAP( Online Analytical Processing,联机分析,即通过多种不同的维度审视数据。OLAP具有多维度、快速响应、聚合计算、数据切片等特点)的列式存储的数据库管理系统。ClickHouse名称的来源是Click Stream,Data WareHouse,即基于点击事件流的数据仓库。ClickHouse设计的初衷就是以最快的速度进行GROUP BY查询和过滤,它充分利用了列式存储,数据压缩,向量化执行,数据分

2024-05-01 00:09:18 1537

原创 MySQL和Redis的数据一致性问题和应对策略

“数据一致”一般指的是:缓存中有数据,缓存的数据值 = 数据库中的值。但根据缓存中是有数据为依据,则”一致“可以包含两种情况:- 缓存中有数据,缓存的数据值 = 数据库中的值(需均为最新值,本文将“旧值的一致”归类为“不一致状态”)- 缓存中本没有数据,数据库中的值 = 最新值(有请求查询数据库时,会将数据写入缓存,则变为上面的“一致”状态)”数据不一致“:缓存的数据值 ≠ 数据库中的值;缓存或者数据库中存在旧值,导致其他线程读到旧数据

2024-04-30 11:37:34 1755

原创 技术团队的管理方法和日常总结建议

管理学家德鲁克有言“管理是一种实践,其本质不在于知,而在于行,其验证不在于逻辑,而在于成果,其唯一的权威就是成就” ,因此管理重实践看效果,但如果管理实践有理论依凭,那么实践起来就会有章可循,管理经验也更容易被其他人所复制。

2024-04-29 00:08:48 501

原创 Linux网络抓包工具tcpdump是如何实现抓包的,在哪个位置抓包的?

随着G行架构从集中式体系向分布式式体系转型,行内系统服务快速增多,不同的服务短期内需要在集中式体系、分布式体系之间互相调用,调用链复杂,网络通讯相关问题时有发生。系统管理员在排查网络问题时就用到一款网络抓包工具tcpdump,该工具可以将网络中传送的数据包完全截获下来进行分析,能有效的排查复杂环境的网络问题。本文将从原理的角度分析tcpdump在Linux系统的实现。主要是希望能够分析实现原理,以协助判断tcpdump抓的是网卡的包,还是经过内核处理后的包?对于分析服务器处理网络包过程有很大帮助。

2024-04-29 00:01:48 2099 5

原创 关于DevOps理解和总结

DevOps是研发领域最近几年最热的一个概念。参加过一些讲座,也看过不少的书籍,经常听到以下说法:- DevOps是没有明确定义的,一千个研发心中就有一千个Devops;- DevOps是一种文化,每个团队的DevOps实践都不一样;- DevOps就是消除Dev与Ops之间的壁垒,让两者通力合作;- DevOps就是业内敏捷、精益等各种优秀实践的混合体;- DevOps就是工具和自动化相信很多人听完和我感觉一样,感觉自己就像是盲人摸象,管中窥豹,在似懂非懂的边缘徘徊,无法系统地了解到DevO

2024-04-25 14:12:37 1136 2

原创 混沌工程理论建设和项目实践

本文从业务角度介绍微信支付实践混沌工程落地的思考,通过多分区的架构来控制最小爆炸半径,在高价值的基础组件和微信支付核心业务场景上探索,并基于高可用原则、历史故障分析推导故障原子的开发,是一篇全面的混沌工程建设实践。

2024-04-24 10:45:33 709

原创 kafka部分partition的leader=-1修复方案整理

部分环境发现,支撑kafka部分topic的被设置成单副本。当出现单机故障时,部分topic-partition出现leader=-1,对应的partition无法正常读写数据。特别是kafka内置的topic __consumer_offsets,__consumer_offsets 是记录topic的消费组数据消费的相关信息,如果出现了该问题,就会导致部分topic的消费组无法正常进行数据消费。

2024-04-21 14:55:55 1286

原创 Kafka、RabbitMQ、Pulsar、RocketMQ基本原理和选型

消息队列中间件是分布式系统中重要的组件,主要解决应用耦合,异步消息,削峰填谷等问题。实现高性能、高可用、可伸缩和最终一致性架构。 针对常见的消息队列进行探讨,并比较kafka、rabbitmq、rocketmq、pulsar这几种消息队列的异同,以及相关使用场景

2024-04-16 19:36:29 1600

原创 SRE职能描述以及个人见解

SRE 到底是什么?这是一个最早由 Google 提出的概念,我的理解是,用软件解决运维问题。标准化,自动化,可扩展,高可用是主要的工作内容。这个岗位被提出的时候,想解决的问题是打破开发人员想要快速迭代,与运维人员想要保持稳定,拒绝频繁更新之间的矛盾。

2024-04-16 17:37:49 715

原创 贪心算法中常见的使用方法逻辑整理

贪心算法 常见的使用方法逻辑整理

2024-04-14 23:43:50 694

原创 回溯算法中常见的使用方法逻辑整理

回溯算法 常见的使用方法逻辑整理

2024-04-14 23:43:01 988

原创 二叉树中常见的使用方法逻辑整理

二叉树常见的使用方法逻辑整理

2024-04-13 21:33:39 722

原创 链表中常见的使用方法逻辑整理

链表常见的使用方法逻辑整理

2024-04-13 21:27:52 1041

原创 k8s的ca以及相关证书签发流程

对于网站类的应用,网站管理员需要向权威证书签发机构(CA)申请证书,这通常需要花费一定的费用,也有非营利的证书签发机构,比如”Let's Encrypt“可以为用户免费签发证书。但对于Kubernetes这类应用来讲,它通常部署在企业内部,其管理面组件不需要暴露到公网,所以就不需要向外部的证书签发机构申请证书,系统管理员就可以自已签发证书供内部使用。本文通过介绍部分内部组件的ca证书签发流程,引导相关的证书签发过程。

2024-04-08 16:07:33 1313

原创 MySQL常见锁探究

MySQL提供了几种锁机制来管理并发访问数据库时的数据一致性。本文探讨各种类型以及应用场景。

2024-04-05 23:53:01 822

原创 Flink运行机制相关概念介绍

大数据计算分为离线计算和实时计算,其中离线计算就是我们通常说的批计算,代表技术是Hadoop MapReduce、Hive等;实时计算也被称作流计算,代表技术是Storm、Spark Streaming、Flink等。本文系统地介绍了流式计算的相关知识,并着重介绍了Flink的实现原理细节,便于大家快速地理解和掌握流式计算,并基于Flink完成业务开发。

2024-04-04 22:20:45 1256

原创 Redis监控方案以及相关黄金指标提升稳定性和可靠性

Redis 是非常经典优秀的内存数据库,其拥有非常高的性能;其单机实例在数据结构设计良好,实例健康的情况下能达到**10w左**右的OPS 现代应用程序对实时性的需求和计算机体系结构的限制决定了:很多时候我们都需要将 in-memory data stores 放在现代应用程序的中心,因此在很多常见场景中我们也都能见到 Redis,如:- 数据库:可作为传统的基于磁盘的数据库的替代方案。Redis非常简单粗暴地以持久性换取运行速度,并且支持异步磁盘持久化;同时提供了一组丰富的数据原语和非常广泛的命令列表

2024-04-04 13:58:09 696

原创 Ceph分布式存储系统以及高可用原理

Ceph分布式存储系统具有优秀的策略层的设计,**无中心元数据节点,无单点问题,完善的错误恢复机制,良好的扩展性等特性是它的核心竞争力**。同时,良好的架构设计为其带来的多存储接口以及多存储引擎的支持也为其吸引了大量的用户和开发者。目前从社区以及我们自己的测试情况来看,Ceph已经具备非常高的可靠性。并且从社区来看,RadosGW和RBD接口已经在生产环境中得到了很好的检验,CephFS接口目前还有待得到生产环境的检验。当前,Ceph社区也非常活跃,并且背靠OpenStack这棵大树,相信Ceph的发展会越

2024-04-04 13:31:36 1206

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除