- 博客(115)
- 收藏
- 关注
原创 Python 垃圾回收机制
垃圾回收机制(简称GC garbage collection)是Python解释器自带一种机制,用来回收不可用的变量值所占用的内存空间。
2025-02-21 16:01:36
621
原创 Prometheus — 告警功能源码分析
在Prometheus中,告警的评估和推送是解耦的。告警产生后,告警会被放入队列,然后利用channel通知告警发送模块,使得告警模块从队列中获取新产生的告警,然后向AlertManager发送告警。g.evalIterationFunc 默认实现。下面是prometheus提供的告警配置样例。根据最新的配置文件,更新规则管理模块任务。这个函数主要做一些执行时间状态的更新。顺序执行单个规则组中所有的规则。在这一节中,我们应该重点关注。周期性的运行规则组的任务。
2024-10-29 09:19:10
340
原创 Tekton — 通过tekton-operator部署tekton组件
Tektoncd Operator 作为一个 Kubernetes 的扩展,可以方便快捷地在 Kubernetes 集群上安装、升级和管理 Tekton Pipelines、Dashboard、Triggers 等组件。
2023-11-21 10:17:04
650
转载 Raft 算法详解
在分布式系统中,一致性算法至关重要。在所有一致性算法中,Paxos 最负盛名,它由莱斯利·兰伯特(Leslie Lamport)于 1990 年提出,是一种基于消息传递的一致性算法,被认为是类似算法中最有效的。Paxos 算法虽然很有效,但复杂的原理使它实现起来非常困难,截止目前,实现 Paxos 算法的开源软件很少,比较出名的有 Chubby、LibPaxos。
2023-08-23 17:03:38
1180
原创 MySQL — 索引
索引是对数据库表中一列或多列的值进行排序的一种结构。MySQL索引的建立对于MySQL的高效运行是很重要的,索引可以大大提高MySQL的检索速度。
2023-08-15 17:41:35
632
原创 MySQL — MVCC
每次更新后,都会将旧值放到一条 undo log 中,就算是该记录的一个旧版本,随着更新次数的增多,所有的版本都会被roll_ptr 属性连接成一个链表,我们把这个链表称之为版本链,版本链的头节点就是当前记录最新的值。当我们的隔离级别为 RR 或 RC 时:每开启一个事务,系统会给该事务会分配一个事务 Id,在该事务执行第一个 select 语句的时候,会生成一个当前时间点的事务快照 ReadView。undo log 主要用于记录数据被修改之前的日志,在表信息修改之前先会把数据拷贝到undo log里。
2023-08-09 16:53:20
728
原创 MySQL — InnoDB 锁
间隙锁是在索引记录之间的间隙上的锁,或者在第一个索引记录之前或最后一个索引记录之后的间隙上的锁。最简单的情况,如果一个事务正在往表中插入记录,所有其他事务的插入必须等待,以便第一个事务插入的行,是连续的主键值。分别尝试插入值为5和6的事务,在获得插入行上的排他锁之前,每个事务都用插入意图锁锁住4和7之间的间隙,但不会相互阻塞,因为行不冲突。:允许获得排他锁的事务更新数据,阻止其他事务取得相同数据集的共享读锁和排他写锁。next-key锁是索引记录上的记录锁和索引记录之前的间隙上的间隙锁的组合。
2023-08-07 13:04:34
644
原创 MySQL — InnoDB事务
数据库中的事务是指对数据库执行一批操作,在同一个事务当中,这些操作最终要么全部执行成功,要么全部失败,不会存在部分成功的情况。事务是一个原子操作。是一个最小执行单元。可以甶一个或多个SQL语句组成在同一个事务当中,所有的SQL语句都成功执行时,整 个事务成功,有一个SQL语句执行失败,整个事务都执行失败。
2023-08-06 22:02:32
791
原创 MySQL — 存储引擎
存储引擎是数据库的核心,对于mysql来说,存储引擎是以插件的形式运行的。虽然mysql支持种类繁多的存储引擎,但是常用的就那么几种。这篇文章主要是对其进行简单的介绍。
2023-08-05 12:23:34
591
转载 Ceph集群中的逻辑结构 — Object、Pool、PG
Ceph中的逻辑对象有Object、Pool、PG,本文简单介绍相关的概念以及之间的关系,PG状态变化过程等。
2022-11-16 21:11:03
3492
原创 Ceph — 架构
Ceph存储集群从Ceph客户端接收数据——无论是通过Ceph块设备、Ceph对象存储、Ceph文件系统还是使用librados创建的自定义实现——这些数据被存储为RADOS对象。对于较旧的Filestore后端,每个RADOS对象都作为一个单独的文件存储在传统的文件系统(通常是XFS)上。使用新的和默认的BlueStore后端,对象以一种类似于单片数据库的方式存储。Ceph Monitors维护集群映射的主副本,包括集群成员、状态、更改和Ceph存储集群的整体运行状况。所有故障的检测和自动恢复。
2022-11-10 00:12:29
2662
原创 Ceph — 简介
Ceph是一个统一的分布式存储系统,最早起源于Sage就读博士期间的工作(最早的成果于2004年发表),随后贡献给开源社区。其设计初衷是提供较好的性能、可靠性和可扩展性。在经过多年的发展之后,目前已得到众多云计算厂商的支持并被广泛应用。RedHat 及 OpenStack 都可与Ceph整合以支持虚拟机镜像的后端存储。
2022-11-08 23:51:41
1396
原创 Go WebAssembly 入门
WebAssembly 可以将其他语言C/Go/Rust等语言编译成wasm可执行二进制文件,然后通过浏览器来执行wasm。
2022-11-07 23:30:28
1902
原创 WebAssembly — 概览
WebAssembly 是现代浏览器所能执行的一种新类型的代码,目标是为了在网络上获得更好的性能。同时,它还是一种低层的二进制格式代码,体积小,因此加载和执行速度快。你不需要直接编写 WebAssembly 代码,而是从其他高级语言编译而来。WASM 被设计为其他语言的编译目标,允许服务器端代码(如C或C++代码)被编译成WASM并在浏览器中执行。
2022-10-27 20:07:15
1326
原创 区块链 — 默克尔树
默克尔树(又叫哈希树)是一种典型的二叉树结构,有一个根节点、一组中间节点和一组叶节点组成。默克尔树最早由 Merkle Ralf 在 1980 年提出,曾广泛用于文件系统和P2P系统中。比如 git、区块链、IPFS 等。
2022-10-22 07:45:29
3443
原创 DNS 记录类型
DNS是互联网中一项重要的基础服务,它将简单易记的域名转换成可由计算机识别的IP地址,以便客户端对服务器的正常访问。而由DNS构建起的域名与IP地址之间的对应关系,称之为“DNS记录”(record)。
2022-10-11 23:25:58
1667
原创 Cinder — back-end storage pools
Cinder 自身不提供存储技术,而是作为一个抽象的中间管理层,北向提供稳定而统一的 Block Storage 资源模型、南向通过 Plug-in 和 Drivers 模型对接多样化的后端存储设备(e.g. LVM、CEPH、NetApp、Datastore etc.)。
2022-10-11 22:45:22
1892
转载 面向未来的 IT 基础设施管理架构——融合云(Unified IaaS)
云计算技术自2006年AWS推出第一个公有云服务S3开始,发展到2019年的今天,一些格局和趋势开始逐步清晰:首先,私有云依然是大中型企业以及一些细分行业,例如政务、金融、医疗、教育、能源和制造等的首选IT基础设施。随着各大公有云厂商陆续推出其公有云在政企客户私有化部署的扩展方案,例如AWS Outposts、Azure Stack,Google Anthos,以及国内阿里云、腾讯云等的私有云/专有云部署方案,“私有云是否会随着公有云的发展逐步消亡”的命题已被公有云厂商自己否定。事实证明,私有云将长期持续存
2022-08-09 22:35:57
2081
2
原创 PostgreSQL 介绍
PostgreSQL是一个强大的开源对象关系数据库系统,它使用并扩展了SQL语言,并结合了许多特性来安全存储和扩展最复杂的数据工作负载。
2022-08-08 20:38:47
1778
转载 如何高效掌控K8s资源变化?K8s Informer实现机制浅析
进入K8s的世界,会发现有很多的Controller,它们都是为了完成某类资源(如pod是通过DeploymentController,ReplicaSetController进行管理)的调谐,目标是保持用户期望的状态。K8s中有几十种类型的资源,如何能让K8s内部以及外部用户方便、高效的获取某类资源的变化,就是本文Informer要实现的。...
2022-07-20 16:12:39
1238
原创 Helm — Chart介绍
Charts描述的是一组k8s资源相关的文件集合,用户可以通过简单地修改一些参数使得helm部署的应用符合我们的要求。 目录包括了模板文件。安装应用时,helm会将用户设置的参数值通过模板引擎渲染到模板文件里,然后再将渲染后的结果发送给kubernetes。 这个文件包含了chart的 默认值 。这些值会在用户执行 或 时被相应的命令行参数覆盖。 文件包含了该chart的描述。你可以从模板中访问它。目录 可以 包含其他的chart。Hook 机制Helm 提供了一个 hook 机制允许ch
2022-07-06 21:33:18
3464
原创 Golang — RESTful框架 go-restful
go-restful 是一个 Golang 第三方库,是一个轻量的 RESTful API 框架,基于 Golang Build-in 的 http/net 库。适用于构建灵活多变的 Web Application,Kubernetes 的 ApiServer 也使用了 go-restful。
2022-07-03 21:15:58
3129
原创 Golang — 命令行工具cobra
Cobra是一个用于Go语言的CLI框架。它包含一个用于创建强大的现代CLI应用程序的库,以及一个用于快速生成基于Cobra的应用程序和命令文件的工具。
2022-07-02 16:58:54
1292
转载 BGP协议
文章目录BGPBGP概述BGP基本概念自治系统AS(Autonomous System )EBGP和IBGP(External BGP /Internal BGP)BGP报文交互中的角色BGP工作原理BGP报文状态机BGP对等体之间交互原则BGP与IGP同步BGP与IGP交互network命令import命令BGP属性特点BGP选路规则与负载分担BGP扩展特性BGP安全特性:路由衰减(EBGP)BGPBorder Gateway Protocol(当前使用的版本是 BGP-4)动态路由协议可以按照工作
2022-05-28 14:51:29
5720
原创 带外与带内管理
文章目录带外管理带内管理从专业的角度,网络管理可分为带外管理和带内管理两种管理模式。在网络的日常管理中,其中最常见的设备管理方式有SNMP、RMON、Web、TELNET、SSH以及通过CONSOLE、AUX接口管理,有些高端设备还具备100BASE-TX或者1G的带外管理端口。带:可以理解为带宽、用户使用的网络流量资源带外管理通过专门的网管通道实现对网络的管理,将网管数据与业务数据分开,为网管数据建立独立通道。在这个通道中,只传输管理数据、统计信息、计费信息等,网管数据与业务数据分离,可以提高网
2022-05-27 15:01:27
3520
原创 Calico — 架构
文章目录calico/nodeFelix接口管理路由配置ACL配置状态报告BIRD路由分发BGP路由反射器配置confdDikastesCNI 插件Datastore pluginKubernetes API datastore (kdd)etcdIPAM 插件TyphaCalico 是一种容器之间互通的网络方案。支持广泛的平台,包括Kubernetes、OpenShift、Docker EE、OpenStack和bare metal服务。它可以不使用隧道或 NAT 来实现转发,而是巧妙的把所有二三层流
2022-05-27 00:09:30
854
原创 KubeVirt — 架构
文章目录什么是KubeVirtKubeVirt架构virt-apivirt-controllervirt-handlervirt-launcherlibvirtd什么是KubeVirtkubevirt是Red Hat开源的以容器方式运行虚拟机的项目,是基于kubernetes运行,利用k8s CRD为增加资源类型VirtualMachineInstance(VMI),使用CRD的方式是由于kubevirt对虚拟机的管理不局限于pod管理接口。通过CRD机制,kubevirt可以自定义额外的操作,来调整常
2022-05-19 22:44:23
1459
原创 Pecan — 文件下载
以下载excel文件为例,仅摘取下载的主要代码:import osimport pecanfrom io import BytesIOfrom openpyxl import Workbookfrom mimetypes import guess_typefrom urllib.parse import quotefrom webob.static import FileIterdef download_file(): file_name = 'tmp.xlsx' work
2022-05-18 22:50:43
410
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人