自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 k8s informer 是如何保证事件不丢失的?

我们常说的Controller他最核心的能力就是能监控到资源的任何变化,也就是声明式概念中保证状态的关键技术 – _Informer,_流程是:Reflector 将对象加入到Delta FIFO queue中。然后 informer 将其 pop 出,加入到 Indexer中,以及 resourceEventHandler。最后就是我们自己的业务逻辑, 即:我们自己先到workqueue中,拿到 key,然后用 key 去Indexer 中换取对象,最后处理对象。然后我们又通过 一个错误的*

2024-01-09 14:43:35 964

原创 浅谈yarn的任务管理与资源管理

YARN(Yet Another Resource Negotiator)是Hadoop 2.x的一个计算框架,旨在解决Hadoop 1.x中的资源管理和任务调度问题。它的主要目的是将MR1 JobTracker 的两个主要功能(资源管理和作业调度/监控)分离,以便更好地支持多种应用程序,而不是仅支持MapReduce。YARN采用了全新的架构,包括ResourceManager、NodeManager和ApplicationMaster等组件。

2024-01-09 14:38:31 973

原创 Ceph RBD和QEMU块设备qos测试

微信公众号:运维开发故事作者:wanger。

2024-01-09 13:53:09 1014

原创 应用获取客户端真实IP

!大家好,我是乔克,一个爱折腾的运维工程,一个睡觉都被自己丑醒的云原生爱好者。作者:乔克公众号:运维开发故事博客:www.jokerbai.com。

2024-01-09 13:45:17 441

原创 Java Steam 常用 API

微信公众号:运维开发故事作者:wanger现在 Java 17 和 Java 11 基本上可以和 Java8 平分 JDK 装机比例。下面是我常用的一些 Strem API 操作。除了分组、转换、排序,如果大家还有更多常用的 API 可以一起留言交流。

2024-01-07 22:50:10 413

原创 GLIBC修复笔记

微信公众号:运维开发故事作者:wanger。

2024-01-07 22:20:10 365

原创 夜莺自定义告警模板

以上就是整体的实现了,这只是领导根据领导的需要做的,每个团队的需求不一样,实现方式肯定也不通,这里只是抛砖引玉。个人建议使用webhook比较好一点,因为可以比较灵活的增加其他的功能,比如告警认领,比如告警抑制,比如告警转发等。另外,最近刚换工作没多久,写的文章少了,但是对技术的热爱并没有减少。最后,求关注。如果你还想看更多优质原创文章,欢迎关注我们的公众号「运维开发故事。

2024-01-07 21:53:57 1073

原创 高并发下 MySQL Statement Cancellation Timer 的线程数暴涨

微信公众号:运维开发故事作者:老郑。

2024-01-06 10:52:34 987

原创 关于Dockerfile的最佳实践技巧

编写.dockerignore文件容器只运行单个应用将多个RUN指令合并为一个基础镜像的标签不要用latest每个RUN指令后删除多余文件选择合适的基础镜像(alpine版本最好)设置WORKDIR和CMD使用ENTRYPOINT (可选)在entrypoint脚本中使用execCOPY与ADD优先使用前者合理调整COPY与RUN的顺序设置默认的环境变量,映射端口和数据卷使用LABEL设置镜像元数据添加HEALTHCHECK多阶段构建。

2023-07-26 11:14:41 324

原创 nginx反向代理https域名时,请求报错502问题排查

微信公众号:运维开发故事,作者:冬子先生。

2023-07-26 11:01:48 8334

原创 Redis 浮点数累计实现

Redis 浮点数累计操作 INCRBYFLOAT 不适合精度要求比较高的金额计算。Redis 浮点数累计操作 INCRBYFLOAT 也不能平替 BigDecimal 计算,如果一定需要存储可以考虑通过 lua 脚本实现 CAS 进行修改,最终存储为 String 类型的一个结果。Redis 的浮点数虽然做了比较好的优化,但是没有从根本解决计算精度问题。

2023-07-26 10:34:32 299

原创 面了一些运维,发现3个共同点

就我而言,我也是上面3点中的一份子。有的同学可能会说:那你为啥在这里大放厥词?这就是我和别人不同的地方,我喜欢总结,也喜欢根据这些总结来尝试改变,也许结果会不尽人意,但是我很享受这个过程。同时,我也希望和我有相同处境或者感受的人能从中得到一点启发,比如好好优化优化简历,让自己获得更多的面试机会。比如好好钻研一下个别技术,让自己在这方面吊打面试官。不论是哪一种,都要让自己保持向上生长的趋势。时代会淘汰一部分人,不要包括你。最后,求关注。如果你还想看更多优质原创文章,欢迎关注我们的公众号「

2023-07-26 10:26:22 100

原创 流水的运维,铁打的锅

在很多公司,运维的话语权很低,低到离谱,这就导致运维在做事或者推进事情的时候寸步难行。但是,一旦出现问题,运维却是被第一个推出来的,所以“背锅侠”一直被扣在运维头上。那作为运维应该怎么做呢?走出去——不要局限于运维团队内部,要走出去,让业务部门知道运维的价值。走进去——运维知识体系复杂多变,要走进知识内部,深度理解背后的原理,用你的专业来为团队服务。走上去——要提升运维影响力,通过专业的能力和积极的态度争取更多的信任和支持,改变现状,提升地位。最后,说归说,闹归闹,别拿生产开玩笑。

2023-07-26 10:25:46 88

原创 Ceph RADOS Gateway安装

对象存储以独立的对象的形式管理数据,而不是传统的文件层次结构或块存储的形式。每个对象包括数据、元数据和唯一标识符。元数据是描述数据的信息,比如创建日期、类型和其他相关信息。主要用于非结构化数据,例如多媒体内容、备份数据、分析数据等,以及任何需要大规模、易于访问和经济有效的数据存储的应用。Amazon S3、Google Cloud Storage 和 OpenStack Swift 是一些常见的公有云对象存储服务。在私有云或本地环境中,Ceph 和 MinIO 是两个常见的对象存储系统。

2023-07-26 10:16:11 121

原创 如何在Mac、Windows和Docker上本地电脑上搭建AI人工智能绘画工具Stable Diffusion

目前,有诸如Midjourney等人工智能绘画网站可供大家来免费使用,但是由于是免费资源肯定会在机器性能和使用次数方面有所限制,因此如果能将人工智能绘画工具部署在本地运行就会突破机器性能和使用次数等方面的限制。可能所有人类画师都得发出一句“既生瑜,何生亮”的感叹,因为AI 绘画通用算法Stable Diffusion已然超神,无需美术基础,也不用经年累月的刻苦练习,只需要一台电脑。

2023-05-31 11:18:49 3741 1

原创 KeyAffinityExecutor 线程池

微信公众号:运维开发故事,作者:老郑线上案例有一批量的数据,可以按照一个固定的 key 分组并发,但是要保证组内并行的处理。比如:商城中,不同的用户可以并发下单,但是一个用户只能进行顺序的下单。在全局并发的场景下保证局部有序,保证最小事务单元操作的原子性。针对上面的场景我们可以通过 KeyAffinityExecutor (KeyAffinityExecutor 是一个可以按照指定的Key亲和顺序消费的执行器) 来解决这个问题,我们下面一起来了解下 KeyAffinityExecutor。

2023-05-31 11:14:48 182

原创 中兴新支点系统离线安装ceph 16.2.10

微信公众号:运维开发故事,作者:wanger。

2023-05-30 19:25:08 225

原创 【夜莺监控】管理Kubernetes组件指标

以下指标来自阿里云 ACK 官方文档,我觉得整理的比较全,比较细,就贴了一部分。想要了解更多的可以到官方网站去查看。指标类型说明CounterWorkqueue 处理的 Adds 事件的数量。GaugeWorkqueue 当前队列深度。Histogram任务在 Workqueue 中存在的时长。Gauge内存使用量,单位:字节(Byte)。Gauge内存使用率=内存使用量/内存资源上限,百分比形式。GaugeCPU 使用量,单位:核(Core)。Gauge。

2023-05-30 18:24:33 239

原创 三方仓库如何实现Zadig流水线自动触发

!大家好,我是乔克,一个爱折腾的运维工程,一个睡觉都被自己丑醒的云原生爱好者。作者:乔克公众号:运维开发故事博客:www.jokerbai.com最近因为公司的产研调整,决定将代码仓库从本地的 Gitlab 迁移到云效的 Codeup,不是 Gitlab 不够好,而是 Codeup 在度量、安全等方面比原生的 Gitlab 要好,再则公司的产研管理也迁移到了云效,也为了统一化管理。有同学可能会问,都用云效了,为什么不直接用它的 AppStack,还要用 Zadig?

2023-05-30 18:08:58 163

原创 【夜莺监控】从日志中提取指标的瑞士军刀

对于在一个脚本中需要重复使用的表达式,可以将其定义为一个变量,后续可以直接使用变量。这是开发中常用的手段。相比于谷歌的mtailcategraf对mtail做了一些优化,可以更好的处理多日志的问题。而且 categraf 本身集成了很多插件,都可以统一使用它实现。另外,还是相同的问题,假设插件开启比较多,categraf 的具体性能如何以及会不会影响主机的整体性能,这还有待研究。最后,求关注。如果你还想看更多优质原创文章,欢迎关注我们的公众号「运维开发故事。

2023-05-30 18:03:32 190

原创 【夜莺监控】海王——Categraf

Categraf 是一个监控采集 Agent,类似 Telegraf、Grafana-Agent、Datadog-Agent,希望对所有常见监控对象提供监控数据采集能力,采用 All-in-one 的设计,不但支持指标采集,也希望支持日志和调用链路的数据采集。相比于其他采集器,Categraf 的优势在于:支持 remote_write 写入协议,支持将数据写入 promethues、M3DB、VictoriaMetrics、InfluxDB指标数据只采集数值,不采集字符串,标签维持稳态结构。

2023-05-30 17:42:33 556

原创 【夜莺监控】告警管理,香!

目前夜莺能够比较齐全的实现告警规则的管理,告警渠道分发以及告警消息抑制以及升级,而且 FlashDuty 可以接入不同的集群告警,在大部分企业中以及够用了。只是在测试告警自愈的时候,我没有测试成功。应该是跟我的环境有关系:N9e 整体模块是使用的 Helm 部署到 K8s 中的ibex-server 端却是以二进制的形式直接部署在主机上的不过具体的原因没有排查出来,可用的排查信息太少了。最后,求关注。如果你还想看更多优质原创文章,欢迎关注我们的公众号「运维开发故事。

2023-05-30 15:24:44 273 1

原创 【夜莺监控】初识夜莺,还是强!

可观测性是大部分中小公司比较头疼的问题,主要表现以下几个方面:需要不同的开源软件来组装以实现不同的功能,比如使用 Skywalking 实现链路监控,使用 ELK 实现日志收集监控,使用 Grafana+Prometheus 来实现指标监控。每个开源软件背后都是独立的一套体系,它们之前是相互独立的(Grafana 全家桶已经实现组合)。数据孤岛,链路、日志、指标各玩各的,没有建立联系。目前市面上的解决方案要么是商业化产品,要么是自研。本文的主角其实也没有做大一统。

2023-05-30 15:11:25 319

原创 系统性能指标:洞察系统运行的关键脉搏

在当今数字时代,软件系统在我们的生活和工作中发挥着越来越重要的作用。我们需要确保这些系统能够在高负载、高并发的情况下稳定运行,为用户提供良好的体验。为了实现这一目标,我们需要关注系统性能监控指标,洞察系统运行的关键脉搏。本文将从指标分类、指标详细说明等方面介绍系统性能监控指标的相关知识,帮助你更好地理解和应用这些关键数据。本篇文章主要是从广义上来定义系统的性能指标,主要包括:基础设施指标应用程序指标用户体验指标业务指标其他指标image.png。

2023-05-30 14:54:06 104

原创 凤凰项目--团队合作与沟通

微信公众号:运维开发故事,作者:夏老师《凤凰项目》一书中的团队合作和沟通部分提供了许多实用的方法和技巧,这些方法和技巧可以帮助团队更好地协作和管理任务,提高整个团队的工作效率和质量。本文将对其中一些重要的方法进行总结,并阐述如何在工作中使用这些方法。

2023-05-30 00:27:52 239

原创 在Kubernetes中从0打造可观测性

我们实现了指标、日志和跟踪之间的可观察性关联。这可以帮助我们在微服务的故障排除过程中,识别瓶颈,看到我们的应用指标的行为,并能够获得特定的跟踪和日志。最后,求关注。如果你还想看更多优质原创文章,欢迎关注我们的公众号「运维开发故事我是 乔克,《运维开发故事》公众号团队中的一员,一线运维农民工,云原生实践者,这里不仅有硬核的技术干货,还有我们对技术的思考和感悟,欢迎关注我们的公众号,期待和你一起成长!

2023-03-14 13:38:14 355

原创 SQL自动化

Bytebase团队把它定位成面向开发者可靠的数据库CICD,它不仅仅是数据库管理工具,更是连接开发和DBA的桥梁。它到底具有什么样的能力呢?SQL审核SQL纠错SQL编辑器GitOps备份恢复多租户管理上面仅仅是简单的部署和使用,了解基本的功能。但是目前仅仅停留在数据库管理上,如何打通Gitlab和Bytebase,本篇文章还没有实践,下篇文章补上。

2023-03-14 12:00:22 270 1

原创 HashMap 计算 Hash 值的扰动函数

微信公众号:运维开发故事,作者:老郑。

2023-03-14 11:52:10 529

原创 使用SigNoz搭建可观测系统

SigNoz是一个开源的应用程序性能监控工具,可以帮助你监控你的应用程序并排除故障,它可以进行链路追踪、基础设施监控以及日志管理,可以说是Datalog的开源版本。具体的能力如下:监控应用程序指标,如延迟、每秒请求、错误率等监测基础设施指标,如CPU利用率或内存使用情况追踪跨服务的用户请求对指标设置警报通过查找导致问题的确切痕迹,找到问题的根本原因查看单个请求追踪的详细火焰图。

2023-03-14 11:43:27 361

原创 JVM 三色标记法

微信公众号:运维开发故事,作者:老郑三色标记(Tri-Color-Marking)垃圾收集器在并发标记的过程中,执行标记期间应用线程还在并行运行,对象间的引用关系时刻发生变化,垃圾收集器在标记过程中就容易发生。针对这一问题我们通过 “三色标记 (Tri-Color-Marking)” 作为理论工具来辅助推导,将垃圾收集器遍历对象引用的过程中,“按照是否访问过” 这个条件标记成三种颜色。黑色:表示对象已经被垃圾收集器访问过,并且这个对象的所有引用都被扫描过。

2023-03-14 11:25:06 126

原创 Spring 核心概念

BeanDefinition 表示 Bean 的定义, BeanDefinition 中存在很多属性来描述 Bean 的特征。比如:class, 表示 bean 的类型scope, 表示 bean 的作用域,单例(_singleton_)或者原型(_prototype_)lazyInit, 表示 bean 是否懒加载initMethodName, 表示 bean 的初始化需要执行的方法destoryMethodName, 表示 bean 销毁时需要执行 bean 的方法and more …

2023-03-14 11:02:55 131

原创 【无标题】

本文转载自《Ceph分布式存储实战》公众号:运维开发故事。

2023-03-14 10:49:26 68

原创 我差点重做整个K8S集群

这几百G的数据全是由大量的小文件组成,在拷贝的时候既要频繁的占用本地磁盘IO,也要占用网络IO,然后事情就发生了——服务器的负载直接干爆(原本8核的CPU,负载高达500多),而且服务器是老年机,配置很Low。这就导致该服务器直接处于死亡状态,更可气的是该服务器是K8S集群的master,Master宕机,其他节点失联,集群处于崩溃中。我是 乔克,《运维开发故事》公众号团队中的一员,一线运维农民工,云原生实践者,这里不仅有硬核的技术干货,还有我们对技术的思考和感悟,欢迎关注我们的公众号,期待和你一起成长!

2023-03-14 10:39:20 115

原创 聊聊可观测性

可观测性平台是一个很大很复杂的平台,大部门公司都是用一些开源手段来堆叠,虽然能解决一些问题,但是它们各自是相互独立的,没办法很友好的进行关联。这也导致在排查问题的时候需要各个平台来回切换,而且每个平台都需要一定的学习成本,这也导致许多公司安装部署了,但是实际很少去用,没有发挥其要实现的效果。

2023-03-14 10:31:35 142

原创 Spring 框架介绍和使用

Spring 作为一个基础的框架,是在 Java EE 开发历史中,是成千上万公司选择。单独使用 Spring 的非常少了,很多都是用 Spring-Boot/Spring-Cloud 来开发,但是 Spring 基础依然是我们使用的基石。我们将一起来聊一聊 Spring 的基本使用。首先我们一起来了解一下 Spring 框架整体架构图如下:数据访问/集成,包括 JDBC 、ORM、OXM、JMS 和 Transaction 模块;WEB 模块,包括 WebSocket、Servlet、Web、Porlet

2022-12-05 10:15:04 976

原创 [Ansible专栏]Ansible Playbook介绍和使用

很多时候,某些场景下playbook的结果依赖于变量、fact或者是前一个任务的执行结果,或者有的时候,我们会基于上一个task执行返回的结果而决定如何执行后续的task。这个时候就需要用到条件判断。条件语句在Ansible中的使用场景:在目标主机上定义了一个硬限制,比如:目标主机的发行版本必须是RedHat,才能执行该task;捕获一个命令的输出,根据命令输出结果的不同以触发不同的task;根据不同目标主机的facts,以定义不同的task;

2022-11-29 17:41:32 969

原创 [Ansible专栏]Ansible条件判断的介绍和使用

很多时候,某些场景下playbook的结果依赖于变量、fact或者是前一个任务的执行结果,或者有的时候,我们会基于上一个task执行返回的结果而决定如何执行后续的task。这个时候就需要用到条件判断。条件语句在Ansible中的使用场景:在目标主机上定义了一个硬限制,比如:目标主机的发行版本必须是RedHat,才能执行该task;捕获一个命令的输出,根据命令输出结果的不同以触发不同的task;根据不同目标主机的facts,以定义不同的task;

2022-11-29 17:25:22 1486

原创 [Ansible专栏]Ansible常用模块介绍和使用

前面我们介绍了,ansible能作为自动化配置管理,其实是由ansible的多种多样的模块来实现的。截止目前,ansible的模块已经高达3000+之多。但是个人在日常工作中,比较常见的大约20多个。下面我就大概介绍一些常见常用的模块。

2022-11-29 16:54:52 485

原创 [Ansible专栏]Ansible安装和基本使用

defaults]#inventory = /etc/ansible/hosts # 主机列表配置文件#library =/usr/share/my_modules/ # 库文件存放目录#remote_tmp = $HOME/.ansible/tmp # 临时py命令文件存放在远程主机目录#local_tmp = $HOME/.ansible/tmp # 本机的临时命令执行目录#forks = 5 # 默认并发数#sudo_user = root # 默认sudo用户。

2022-11-29 16:22:57 1180

原创 【K8S专栏】Kubernetes有状态应用管理

实例之间的不等关系以及实例对外数据有依赖关系的应用,就被称为"有状态应用"。所谓实例之间的不等关系即对分布式应用来说,各实例,各应用之间往往有比较大的依赖关系,比如某个应用必须先于其他应用启动,否则其他应用将不能启动等。对外数据有依赖关系的应用,最显著的就是数据库应用,对于数据库应用,我们是需要持久化保存其数据的,如果是无状态应用,在数据库重启数据和应用就失去了联系,这显然是违背我们的初衷,不能投入生产的。

2022-11-23 22:56:38 384

空空如也

空空如也

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

TA关注的人

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