自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 使用 kubeadm 安装 kubernetes v1.32

本文档讲解如何使用 Kubeadm 工具搭建 Kubernetes 集群,kubeadm 是官方推荐的部署工具,可以快速搭建一个生产级别的集群。

2025-08-27 15:11:09 592

原创 Linux系统的yum包管理详解

Linux 系统基本上分两大类:RedHat系列:Redhat、Centos、Fedora 等;Debian系列:Debian、Ubuntu 等。目前国产操作系统基本都是基于这两大派系进行二次开发,整体上是换汤不换药,大多数命令是相通的。而yum是一个RedHat系列的包管理器,基于RPM,使用rpm命令处理包。在CentOS 8及更高版本中被dnf(Dandified Yum)取代,dnf提供了一些性能改进和新的特性,使用上和yum基本相同。

2025-08-21 16:49:57 723

原创 Linux常用快捷键汇总,效率飙升!

在日常运维工作中,熟练Linux快捷键是必备技能,可以提高工作效率,下面我将汇总一下常用的快捷键。

2025-08-21 08:47:35 142

原创 vim编辑器的常用操作汇总

vim 是 vi 的扩展,是一个功能丰富的文本编辑器,对于一个运维人员的必备基础技能之一,就是熟练使用 vim/vi 编辑器。在最小化安装环境一般只有 vi,没有 vim,需要手动安装一下。

2025-08-21 08:43:11 254

原创 生产级 Kubernetes 集群部署:Master 节点高可用最佳实践

主机名ip配置4c4g4c4g4c4glb014c4glb024c4gVIP。

2025-08-09 16:59:50 776

原创 高效配置 Kubernetes 资源限制的实战技巧

Kubernetes 允许你为每个容器(Pod 中的每个容器)设置资源的 请求(Requests) 和 限制(Limits),用于指定单个容器的资源使用范围,防止容器过度消耗节点资源。容器启动时 调度器 将根据请求的资源量来决定将容器调度到哪个节点。请求的资源量是容器运行时所需的最小资源,所调度到的节点上确保容器至少可以获得这些资源。Limits:限制是容器可以使用的最大资源量。如果容器超出了这个限制,Kubernetes 会采取一定措施,如限制 CPU 或杀死容器(内存溢出时会杀死容器)。

2025-08-08 18:05:35 591

原创 网络故障场景排查技巧,作为运维一定要遇事不慌!

今天分享一下Linux网络排查的常见故障场景及使用的命令工具。当你的服务器连不上、接口报错、页面加载慢、端口打不开……别慌!看看下面6 大常见网络故障场景,告诉你如何用 Linux 命令!本文只讲服务器网络排查思路,不讲网络设备排查,那是网工的活1 服务器访问不了公网了。

2025-08-08 18:01:13 339

原创 Kubernetes的Pod调度策略详解及实战操作

调度器通过 Kubernetes 的监测(Watch)机制来发现集群中新创建且尚未被调度到节点上的 Pod。调度的主要任务是将Pod分配到集群中的合适的节点上。调度器根据Pod的需求(如CPU、内存、存储等)和节点的资源状况(如可用CPU、内存、节点标签等)来决定Pod部署在哪个节点上。调度已经在前面文章讲解过了,就不详细展开了。下面就详细介绍一下具体的调度策略:简单的节点标签匹配调度。亲和性与反亲和性:更灵活的调度控制,基于节点和 Pod 之间的关系进行调度。nodeName:直接指定节点进行调度。

2025-08-08 17:54:08 813

原创 实战:在已有K8S集群如何新增和删除Node节点

本篇文章将分享一下如何在已有集群添加新节点和删除现有节点。

2025-08-08 17:39:56 340

原创 安装部署K8S集群环境(实测有效版本)

Calico 在每一个计算节点利用 Linux Kernel 实现了一个高效的虚拟路由器( vRouter) 来负责数据转发,而每个 vRouter 通过 BGP 协议负责把自己上运行的 workload 的路由信息向整个 Calico 网络内传播。因此需要安装containerd(在docker的基础下安装),上面安装docker的时候就自动安装了containerd了。在kubernetes中Service有两种代理模型,一种是基于iptables的,一种是基于ipvs,两者对比ipvs的性能要高。

2025-08-08 17:35:21 846

原创 深入解析Go设计模式:工厂模式实战

工厂模式是一种创建型设计模式,通过封装对象创建逻辑,解耦调用者与具体实现类的依赖关系‌。Go工厂模式具体可以细分为简单工厂模式、工厂方法模式和抽象工厂模式。(一)简单工厂模式简单工厂模式是最常用且实现简洁的模式,通过提供统一入口函数来创建不同对象实例。定义一个Decoder接口,并定义Decode。

2025-08-08 15:19:20 337

原创 云计算运维工程师面试题整理

Bind Mount:-v /host/path:/container/path,直接映射宿主机目录。答:Volume:docker volume create my-vol,独立于容器生命周期。原理:轮询(Round-Robin)模式,数据包依次通过每个网卡发送。原理:主备模式,只有一个网卡活跃,其余作为备份(故障时切换)。缺点:需要对端设备支持(如交换机需配置聚合),否则可能乱序。原理:发送流量基于当前负载分配(自适应),接收仅通过主网卡。答:bridge(默认,容器通过虚拟网桥通信)。

2025-08-08 14:45:00 417

原创 领导想要提拔你,从来看的不是努力,而是希望你有这6点!

而小林呢,他不仅工作认真负责,而且善于沟通,乐于助人,是团队中的“开心果”。更重要的是,小林在工作中展现出了解决问题的能力,能够独立思考,提出有效的解决方案。王经理笑呵呵地听完老张的“委屈”,拍了拍他的肩膀说:“小张啊,你工作努力,领导们都看在眼里。领导都喜欢靠谱的人,交代的事情能按时保质保量完成,遇到问题能及时沟通,不推诿、不扯皮。你有没有发现,公司里那些被领导看重、提拔的人,往往不是最努力的,也不是最“卷”的?高情商的人,懂得换位思考,能够体察他人的情绪,更容易获得他人的信任和支持。

2024-07-17 16:11:40 347

原创 在单位,领导不说,但自己得懂的7个道理

朋友打着如意算盘,心想被裁掉也好,正好拿着赔偿金找下家,可那些天天喊着工作没意思的同事,态度突然来了个180度大转变,说自己跟公司已经有感情了,还整天拍领导马屁。看看现在的AI技术,前有强大无比的Chat GPT,后有让人大呼震惊的Sora,如果不具备学习力,恐怕用不了几年,就被层出不穷的新技术、新人踢出局了。把“不是自己”的那部分舍弃掉,你就能看见“自己是谁”了。不是老板或上司苛刻、难伺候,更不是故意跟你过不去,而是你做错事,造成损失,说再多也无济于事,那就把你调走,免得再出什么纰漏和差错。

2024-07-10 08:57:37 2035

原创 真正的向上管理,不是“跪舔”或“拍马屁”,而是做好这5件事!

领导会议上,演讲平平无奇,你非要故作热情,当众拍马屁、吹牛,说领导演讲精彩绝伦,只会让领导更丢脸。聪明人,往往会整理好答案,放上自己的见解,准备好选项,ABCD,让领导去做选择题,而不是问答题。承诺就是预期,领导在你身上能够感受惊喜,发现你是一个潜力无限的人,自然会越发的看重你。主动创造让领导指点你的机会,不仅可以拉近距离,还能借机求教和示好,让领导对你印象更深。多了解领导,和领导沟通,出现在领导的视野里,能够大大增加你上位的概率。另外,你积极求教,频繁露脸,也是在加深印象,表明你积极工作的态度。

2024-06-05 09:16:05 604

原创 35道必懂的 Linux 运维面试题

能当替用户去访问公网,并且能把访问到的数据缓存到服务器本地,等用户下次再访问相同的资源的时候,代理服务器直接从本地回应给用户,当本地没有的时候,我代替你去访问公网,我接收你的请求,我先在我自已的本地缓存找,如果我本地缓存有,我直接从我本地的缓存里回复你;队列的主要目的是提供路由并保证消息的传递;,会先找本机的 host 文件,再找本地设置的 DNS 服务器,如果也没有的话,就去网络中找根服务器,根服务器反馈结果,说只能提供一级域名服务器.cn,就去找一级域名服务器,一级域名服务器说只能提供二级域名服务器.

2024-05-08 09:35:23 1625

原创 Spingboot人工智能工程应用框架,你要干的活全部交给它

尽管人工智能有着悠久的历史,但 Java 在该领域的作用相对较小。这主要是由于历史上依赖于用 C/C++ 等语言开发的高效算法,而 Python 则充当访问这些库的桥梁。大多数 ML/AI 工具都是围绕 Python 生态系统构建的。然而,在 OpenAI 的 ChatGPT 等创新的推动下,生成式 AI 的最新进展已经普及了通过 HTTP 与预训练模型的交互。这消除了对 C/C++/Python 库的大部分依赖,并为使用 Java 等编程语言打开了大门。

2024-04-23 09:02:40 1450 1

原创 2024放下手机,用阅读来提升自己,好书推荐

阅读是一种非常有益的学习和提升自我的方式。:《纳瓦尔宝典》、《穷爸爸富爸爸》、《有钱人和你想的不一样》、《智慧投资者》;:《饮食的迷思》、《感恩的奇迹》、《不生气的活法》、《求医不如求己》;:《毛泽东传》、《曾国藩传》、《林徽因传》、《史蒂夫乔布斯传》、;:《影响力》、《少有人走的路》、《刻意练习》、《沉默的大多数》;:《自控力》、《番茄工作法图解》、《暗时间》、《奇特的一生》;:《65种微习惯》、《掌控习惯》、《习惯的力量》、《自律力》;:《复盘》、《只管去做》、《规划最好的一年》、《远见》。

2024-03-26 08:36:28 391

原创 Nginx的反向代理:实现灵活的请求转发和内容缓存

http {server {显得有些复杂和固化。http {server {如果conf的内容过长,还可以进行模块化配置,使用include引用:events {http {server {server {server {server {events {http {server {server {server {server {把下面把一个拆分为多个,每个server可以独立。

2024-02-25 14:11:15 1513

原创 mysql 运行参数优化

4.binlog_format=ROW —— 修改为基于行的复制. 我最近写的另一篇 基于行的复制 ,里面叙述了我真的很喜欢它的原因,因为它可以通过减少资源锁定提高性能. 此外还需要启用两个附加设置: transaction-isolation=READ-COMMITTED and innodb_autoinc_lock_mode = 2.topology )中的所有服务器都必须设置唯一的 server-id.试图设定back_log高于你的操作系统的限制将是无效的。#指定MySQL查询缓冲区的大小。

2024-02-25 14:04:36 2420

原创 Spring Boot+ShardingSphere+MySQL实现分库分表:高效数据库扩展

分库分表是一种数据库水平分割技术,它将一个大型数据库分为多个小型数据库(分库),每个小型数据库包含多个数据表(分表)。这有助于减轻单一数据库的负载压力,提高性能和可伸缩性。ShardingSphere是一款强大的开源数据库中间件,它提供了分库分表、数据分片和负载均衡等功能。通过ShardingSphere,我们可以轻松实现分库分表,使数据库扩展变得更加容易。Spring Boot与ShardingSphere是一个强大的组合,可以帮助您实现分库分表,提高数据库性能和可扩展性。

2024-02-25 14:03:19 1789

原创 微服务架构设计 | 如何设计高性能系统

互联网时代,业务系统的主要特点是用户多、请求量大。尤其在中国这样拥有庞大用户基数的环境下,不用说阿里巴巴、京东这类需要满足双十一大促时每秒几万甚至几十万订单的系统,即使是一些垂直领域的业务系统(如三甲医院的挂号系统)每天也有不小的访问量。在这样的背景下,设计能够承受高并发负载的高性能系统显得尤为重要。本文将从系统性能评估、影响系统性能的主要因素,以及一些具体的设计模式等方面介绍如何设计高性能系统。

2024-02-25 14:01:28 1099

原创 MyBatis批量插入数据从80s到1s优化

以上就是这次批量插入场景问题下如何通过 JDBC 和 MyBatis / MyBatis Plus 框架实现批量插入的整个优化过程了。通过上面的讲解,相信大家应该也可以看出来哪些实现方式是有着良好的效率和性能的。使用 JDBC 推荐使用自己实现批处理方式。使用 MyBatis / MyBaits Plus 推荐使用自己实现的批处理方式或 MP 自带的批处理方法。记得使用批处理方式进行批量插入一定要带上 rewriteBatchedStatements=true,这点很重要。

2024-02-02 13:43:59 1148

原创 Nginx限流配置详解

限流(Rate Limitting)是服务降级的一种方式,通过限制系统的输入和输出流量以达到保护系统的目的。比如我们的网站暴露在公网环境中,除了用户的正常访问,网络爬虫、恶意攻击或者大促等突发流量都可能都会对系统造成压力,如果这种压力超出了服务器的处理能力,会造成响应过慢甚至系统崩溃的问题。因此,当并发请求数过大时,我们通过限制一部分请求(比如限制同一IP的频繁请求)来保证服务器可以正确响应另一部分的请求。nginx 提供了两种限流方式,一种是限制请求速率,一种是限制连接数量。

2024-02-02 13:43:15 1832

原创 Linux运维工程师面试题汇总

①PV - 物理卷:物理卷在逻辑卷管理中处于最底层,它可以是实际物理硬盘上的分区,也可以是整个物理硬盘,也可以是raid设备。②VG - 卷组:卷组建立在物理卷之上,一个卷组中至少要包括一个物理卷,在卷组建立之后可动态添加物理卷到卷组中。一个逻辑卷管理系统工程中可以只有一个卷组,也可以拥有多个卷组。③LV - 逻辑卷:逻辑卷建立在卷组之上,卷组中的未分配空间可以用于建立新的逻辑卷,逻辑卷建立后可以动态地扩展和缩小空间。系统中的多个逻辑卷可以属于同一个卷组,也可以属于不同的多个卷组。①添加磁盘。

2023-12-20 13:18:43 1863

原创 <优化接口设计的思路>:接口的权限控制

我们在做系统的时候,只要这个系统里面存在角色和权限相关的业务需求,那么接口的权限控制肯定必不可少。但是大家一搜接口权限相关的资料,出来的就是整合Shrio、Spring Security等各种框架,然后下面一顿贴配置和代码,看得人云里雾里。实际上接口的权限控制是整个系统权限控制里面很小的一环,没有设计好底层数据结构,是无法做好接口的权限控制的。那么怎么做一个系统的权限控制呢?我认为有以下几步:那么接下来我就按这个流程一一给大家说明权限是怎么做出来的。

2023-12-19 09:00:13 1929

原创 <优化接口设计的思路>:接口安全

某家电商平台上,用户可以通过客户端发起购物请求,并对所选商品进行下单、支付等操作。为了保障系统的安全性和用户隐私,该电商平台采取了一系列安全措施,包括身份认证、请求过程鉴权和访问控制等三个阶段的验证。第一阶段是身份认证,鉴别客户端的身份。这一阶段可以采用多种方式进行身份验证,如HTTP基本认证、Token认证,和OAuth2认证等。在具体实践中,我们可以在客户端请求接口的时候,一并提交用于身份认证的Token信息,接口服务器可以通过相关的算法验证Token合法性并拒绝非法请求。

2023-12-18 08:58:15 1438

原创 <优化接口设计的思路>系列:留下用户调用接口的痕迹

接口设计是整个系统设计中非常重要的一环,其中包括限流、权限、入参出参、切面等方面。设计一个好的接口可以帮助我们省去很多不必要的麻烦,从而提升整个系统的稳定性和可扩展性。作为接口设计经验分享的第三篇,我想分享一下如何在用户使用过程中留下操作痕迹。在实际开发中,我会采取一些手段来记录用户操作,例如使用日志记录用户行为,或者在数据库中保存用户操作记录。这些痕迹可以帮助我们快速定位和解决问题,同时也可以为后续数据分析和优化提供有价值的参考。

2023-12-13 09:06:29 1029

原创 docker-compose.yml文件配置详解

我们可以通过设置一级配置network自定义网络,创建更复杂的网络选项,也可以用来连接已经存在的网络(不是通过compose创建的)每个service 配置下也可以指定networks配置,来指定一级配置的网络。

2023-12-12 08:52:59 4891 1

原创 如果K8s出现问题,你可以从这9个方面排查

在本例中,它在本地 Namespace(default.svc.cluster.local)、所有 Namespace 中的 Service(svc.cluster.local)以及集群(cluster.local)中查找服务。本文档中,我们假定它是 “cluster.local”,但是您的可能不同,这种情况下,您应该在上面的所有命令中更改它。如果成功,那么需要调整您的应用,使用跨命名空间的名称去访问服务,或者,在相同的 Namespace 中运行应用和 Service。

2023-11-20 17:41:40 208

原创 如果K8s出现问题,你可以从这9个方面排查

在本例中,它在本地 Namespace(default.svc.cluster.local)、所有 Namespace 中的 Service(svc.cluster.local)以及集群(cluster.local)中查找服务。本文档中,我们假定它是 “cluster.local”,但是您的可能不同,这种情况下,您应该在上面的所有命令中更改它。如果成功,那么需要调整您的应用,使用跨命名空间的名称去访问服务,或者,在相同的 Namespace 中运行应用和 Service。

2023-11-17 13:47:23 236

原创 三种跨域解决方案:HttpClient、注解、网关

Spring cloud gateway中的filter分为两种类型的 Filter,分别是Gateway Filter和Global Filter。Spring Cloud Gateway作为Spring Cloud生态系统中的网关,目标是替代Netflix Zuul,其 不仅提供统一的路由方式,并且还基于Filer链的方式提供了网关基本的功能,例如:安全、监 控/埋点、限流等。比如说发送的异步请求是不同的两个源,就比如是不同的的两个端口或者不同的两个协议或者不同的域名。saveHospital方法。

2023-11-16 09:13:29 519

原创 JVM GC 调优命令看这一篇就够了

然而,代码中存在一个问题是异步打印业务Kafka topic数据,由于数据量较大,大量对象在内存中积压等待打印,最终导致了OOM。因此,在每次Young GC后,Survivor区域无法容纳所有的存活对象,导致它们提前进入老年代。通过调整,我们使得对象在Survivor区经历多次Young GC后,达到一定的年龄阈值,才会被转移到老年代。死锁是指两个或两个以上的线程在执行过程中,因争夺资源而造成的一种互相等待的现象,若无外力作用,它们都将无法进行下去。其实,前3个步骤,堆栈信息已经出来啦。

2023-11-16 09:12:12 1086

原创 浅析SpringBoot加载配置的6种方式

的路径,将指定路径下的配置文件内容加载到 Environment 中,这样可以通过 @Value 注解或 Environment.getProperty() 方法来获取其中定义的属性值了。默认只限读取properties文件内容,想加载yaml文件内容,可以自定义factory适配器,指定factory具体的使用YamlPropertiesFactoryBean对象只限读取yaml文件,通过 @Value 注解或 Environment.getProperty() 方法来配合着获取其中定义的属性值。

2023-11-16 09:09:38 501

原创 postman导入请求到jmeter进行简单压测,开发同学一学就会

这个事情也是最近做的,因为线上nginx被我换成了openresty,然后接入层服务也做了较大改动,虽然我们这个app(内部办公类)并发不算高,但好歹还是压测一下,上线时心里也稳一点。于是用jmeter简单压测下看看,这里记录一下。这次也就找了几个接口来压:登录接口、登录后获取用户信息接口、登录后写数据的一个接口。

2023-11-16 09:08:39 1438 3

原创 服务器常见问题排查(一)—cpu占用高、上下文频繁切换、频繁GC

一般而言cpu异常往往还是比较好定位的。原因包括业务逻辑问题(死循环)、频繁gc以及上下文切换过多。而最常见的往往是业务逻辑(或者框架逻辑)导致的,可以使用jstack来分析对应的堆栈情况。

2023-11-13 14:31:30 871

原创 docker服务CPU飙高排查

Docker是一个开源的容器化平台,它允许开发者将应用程序及其依赖项打包成一个独立的容器,以保证应用程序在不同的环境中都能够运行。然而,有时我们可能会遇到Docker服务CPU飙高的问题,即Docker服务占用了过多的CPU资源。当Docker服务CPU飙高时,可能会导致其他应用程序无法正常运行,甚至服务器负载过高,导致系统响应变慢。因此,我们需要及时排查和解决这个问题。

2023-10-25 09:01:29 4044

原创 提升代码重用性:模板设计模式在实际项目中的应用

模板模式是一种通过封装算法框架和提供可变的实现细节,来实现代码重用的设计模式。它能够简化代码的编写和维护,并且使得系统更易于扩展和修改。通过合理地使用模板模式,我们可以将通用的解决方法抽象出来,提高开发效率,减少重复代码的出现。

2023-10-18 08:50:16 379

原创 shell中实用eval命令和安全问题

eval命令非常强大,但也非常容易被滥用。它会导致代码被解析两次而不是一次。这意味着,如果你的代码中包含变量引用,shell解析器将评估该变量的内容。如果变量包含一个shell命令,shell可能会运行该命令,无论你是否希望运行它。这可能会导致意外的结果,特别是当变量可以从不受信任的来源(如用户或用户创建的文件)读取时。请注意,eval命令在编程中被广泛认为是危险的。它可以执行任意的Shell代码,包括恶意代码,因此应该谨慎使用。

2023-10-12 09:22:22 982

原创 实现SHELL中的列表和字典效果

很多情况下我们需要有种类型来存储数据,在python中有列表和字典,golang中有切片slice和map,那么在shell中,我们能否实现列表和字典呢,答案是肯定的,下面跟着博哥的示例来一步步掌握在shell中实现列表和字典的方法吧。

2023-10-12 09:13:07 1204

空空如也

空空如也

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

TA关注的人

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