avatar
文章
218
标签
10
分类
10
首页
归档
标签
分类
关于
Logo技术博客
搜索
首页
归档
标签
分类
关于

技术博客

Linux系统压力测试实战指南
发表于2025-07-07|运维手册|运维手册
在系统调优、应用部署或硬件评估时,了解一个系统在极限负载下的表现至关重要。压力测试(Stress Testing)正是为此而生,它可以帮助我们发现性能瓶颈、验证系统稳定性、评估散热效率,并为容量规划提供数据支持。 本文将详细介绍如何在 Rocky Linux 8.x 系统上,使用功能强大的 stress-ng 工具对 CPU、内存和磁盘等核心组件进行压力测试。 核心警告:请勿在生产环境操作! 重要!重要!重要!压力测试会极大地消耗系统资源,可能导致服务中断或系统意外重启。请务必在专门的测试环境、虚拟机或非关键业务的机器上执行以下所有操作。 第一步:整装待发 —— 安装必备工具我们需要一个主力压测工具和几个得力的监控助手。stress-ng 是我们的不二之选,它能模拟几乎所有类型的系统负载。 打开您的终端,执行以下命令安装所有必要的软件包: 12345# 首先,启用 EPEL 仓库,因为 stress-ng 在其中sudo yum install -y epel-release# 接着,安装 stress-ng、sysstat 和 htopsudo yum install...
Linux禁用密码使用密钥登录指南
发表于2025-07-06|运维手册|运维手册
还在担心密码被暴力破解吗?本文提供了一份清晰、直接的操作指南,将带你一步步为Linux服务器禁用不安全的密码认证,并配置SSH密钥登录,从根本上加固你的服务器安全防线。 核心流程 本地:生成密钥对(公钥+私钥)。 本地 -> 服务器:上传公钥。 服务器:测试密钥登录。 服务器:禁用密码登录。 第一步:在本地计算机生成密钥对 操作位置:你的个人电脑(Windows/macOS/Linux)终端。 运行以下命令生成 ed25519 密钥。它比传统的RSA更安全、更高效。 1ssh-keygen -t ed25519 系统会询问你: 保存位置: 直接按回车,使用默认路径 (~/.ssh/id_ed25519)。 密钥密码 (Passphrase): 强烈建议设置! 这是私钥的最后一道防线。输入时不可见。 完成后,你将在 ~/.ssh/ 目录下得到两个文件: id_ed25519:私钥,绝对不能泄露。 id_ed25519.pub:公钥,将要上传到服务器。 第二步:将公钥上传至服务器 操作位置:你的个人电脑终端。 使用...
告别通用 Exception:为何你的项目需要一套自定义异常体系?
发表于2025-06-18|Java|Java
在我们的日常编码中,try-catch 块是再熟悉不过的老朋友了。但很多时候,我们的 catch 语句里捕获的是一个宽泛的 Exception,或者是在一个方法签名上罗列着一长串 throws IOException, SQLException, TimeoutException...。 这能工作,但不够优雅,也不够健壮。当项目规模变大、团队成员增多时,混乱的异常处理会成为滋生 Bug 和增加维护成本的温床。 那么,有没有更好的方式呢?答案是肯定的:为你的应用程序或框架设计一套自定义的异常体系。 这并非什么高深莫测的技术,而是像 Spring、Hadoop、Flink 等几乎所有成熟框架都在践行的最佳实践。本文将带你了解“为什么”以及“怎么做”。 一、为什么要自定义异常体系?目的与好处投入时间去设计看似“多余”的异常类,能为我们带来不可估量的好处。 1. 建立统一的异常“语言”想象一下,你的应用是一个国家,自定义异常体系就是这个国家的“官方语言”。 统一捕获入口:通过定义一个共同的基类(如 MyAppException),API 的调用者可以非常方便地通过 catch...
Windows 11 安装 WSL2 与 Ubuntu 24.04 LTS 终极指南(手动导入版)
发表于2025-06-17|运维手册|运维手册
对于在 Windows 系统上工作的开发者而言,能够在不离开熟悉环境的前提下,无缝使用强大的 Linux 工具链,无疑是一大福音。WSL (Windows Subsystem for Linux) 的出现,尤其是性能卓越的 WSL2,完美地解决了这一需求。 本指南将基于您提供的核心步骤,手把手带您在 Windows 11 上,通过手动导入的方式,安装最新版的 Ubuntu 24.04 LTS。相比于从 Microsoft Store 安装,手动导入方式能让您对安装位置有完全的控制权,更适合有特定磁盘管理需求的用户。 前期准备 一台运行 Windows 11 的电脑。 拥有管理员权限的账户。 第一步:开启 WSL 相关 Windows 功能要运行 WSL,首先需要确保 Windows 系统的相关功能已经启用。这包括 WSL 自身以及其所依赖的虚拟机平台。 打开 控制面板 -> 程序 -> 启动或关闭 Windows 功能。 在弹出的窗口中,找到并勾选以下三项: Hyper-V 适用于 Linux 的 Windows 子系统 (Windows...
一套系统的 Maven 项目版本演进指南
发表于2025-06-16|杂货小铺|杂货小铺
在软件开发的世界里,我们每天都在与代码打交道。但除了代码本身,还有一个东西默默地记录着项目的生命轨迹,它就是——版本号。 一个混乱的版本号体系,就像一本没有页码和章节的乱书,会让团队协作、问题追溯和项目发布变得一团糟。你是否也曾遇到过这些场景? “生产环境用的是 my-app-final-final-v2.jar,这到底是哪个版本的代码?” “我依赖了同事的 common-utils 模块,怎么他一更新,我的项目就编译失败了?” “这次发布要修复一个紧急 Bug,我们应该基于哪个版本的分支来改?” 如果这些问题让你感同身受,那么恭喜你,这篇文章就是为你准备的。今天,我们将一起学习一套系统的、专业的 Maven 项目版本演进方法,让你的项目管理从此变得清晰、可控、有条不紊。 第一章:两个世界,两种状态 —— SNAPSHOT 与 RELEASE在 Maven...
Kubernetes 应用部署的终极对决:Helm vs. Operator
发表于2025-06-14|容器化|容器化
在云原生的浪潮之巅,Kubernetes (K8s) 已然是容器化应用部署的“操作系统”。对于无状态应用(Stateless Applications),K8s 提供了优雅、可靠的部署、伸缩和自愈能力。然而,当我们踏入有状态应用(Stateful Applications)的深水区——例如数据库(PostgreSQL, MySQL, Redis)、消息队列(Kafka, RabbitMQ)或搜索引擎(Elasticsearch)——挑战便接踵而至。 这些复杂的系统不仅仅是运行几个 Pod 那么简单,它们拥有自己的集群逻辑、生命周期和运维需求。为了驯服这些“猛兽”,社区提供了两种主流的武器:Helm 和 Operator。 这两种工具代表了两种截然不同的应用管理哲学。本文将深入剖析 Helm 和 Operator 的核心差异,并以我们熟悉的 Redis 集群为例进行说明,帮助你为你的下一个 K8s 项目做出最明智的技术选型。 1. 核心哲学的碰撞:应用打包者 vs. 智能运维机器人理解两者的根本区别,是做出正确选择的第一步。 Helm:Kubernetes...
Kubernetes 上的 Redis:K8s 的自愈能力能否替代哨兵(Sentinel)?
发表于2025-06-14|容器化|容器化
当我们将应用迁移到 Kubernetes (K8s) 的怀抱时,常常会为其强大的自愈和故障恢复能力感到惊叹。K8s 能够自动重启崩溃的容器、迁移宕机节点上的应用,这似乎为我们解决了所有关于“高可用”的烦恼。于是,一个自然而然的问题浮现在许多开发者脑海中: “既然 K8s 如此强大,我还需要像以前在物理机上那样,为我的 Redis 部署一套复杂的哨兵(Sentinel)集群吗?” 这是一个极佳的问题,它触及了云原生时代应用高可用性设计的核心。简短的答案是:是的,你绝对仍然需要! K8s 的高可用和 Redis Sentinel 的高可用是两个不同层面的能力,它们非但不能互相替代,反而是构建真正健壮服务的完美搭档。 理解两个层面的高可用要弄清这个问题,我们必须先解构 K8s 和 Redis Sentinel 各自的职责。 Kubernetes 的职责:基础设施层的高可用K8s 是一个容器编排平台,它关注的是“容器”和“节点”的健康,提供的是基础设施层面的保障。其核心能力包括: Pod 存活探测与重启:通过 livenessProbe,K8s 可以检测到 Redis...
为什么 Flink on k8s 仍然需要自己的高可用配置?
发表于2025-06-14|容器化|容器化
当我们将有状态的流处理应用 Flink 部署到强大的容器编排平台 Kubernetes (K8s) 上时,一个常见的疑问便浮出水面:K8s 自身已经具备了强大的故障恢复和自愈能力,为什么我们还需要为 Flink 单独配置高可用(HA)呢?本文将深入剖析 K8s HA 与 Flink HA 的关系,阐明它们在保障应用稳定运行中各自扮演的角色,并解释为何两者是相辅相成、缺一不可的“双层保险”。 引言:一个普遍的困惑想象一下这个场景:你已经成功地将 Flink 作业打包成镜像,并使用 Flink Operator 或 Helm Charts 将其部署到了 K8s 集群中。你深知 K8s 的强大之处——当一个节点宕机,K8s 会自动将运行其上的 Pod 调度到其他健康节点上;当一个 Pod 因故崩溃,Deployment 会立即创建一个新的 Pod 来替代它。 这一切听起来都像是完美的高可用方案。于是,当你看到 Flink 的 FlinkDeployment YAML 中出现如下配置时,你可能会感到困惑: 123456789# ...spec: # ... ...
K8s采用Helm部署nginx
发表于2025-06-12|容器化|容器化
在云原生时代,Kubernetes (K8s) 已成为容器编排的事实标准,而Nginx作为高性能的反向代理和Web服务器,是K8s生态中最常部署的应用之一。直接编写和管理K8s的YAML清单文件可能变得复杂和繁琐,尤其是在涉及多环境配置、应用更新和依赖管理时。 Helm,作为Kubernetes的包管理器,极大地简化了这一过程。它允许我们将应用打包成可重用的“Chart”,通过版本控制和简单的配置覆盖,实现一键式部署、升级和回滚。 本文将详细介绍一种生产级的实践:如何利用Bitnami提供的优秀Nginx Helm Chart,结合外部化配置 (.env) 和自动化脚本 (.sh),在K8s集群中快速部署一个高度可定制、且集成了Prometheus监控的Nginx服务。 项目源码: github, gitee 项目结构概览为了实现自动化和可配置性,我们的项目由以下几个核心文件组成: .env: 环境变量文件,用于存放所有可自定义的配置,如命名空间、副本数、域名等。这使得我们的部署逻辑与配置彻底分离。 install.sh:...
K8s采用Helm部署kafka-cluster
发表于2025-06-12|容器化|容器化
在当今的云原生时代,将像 Kafka 这样的有状态数据系统部署到 Kubernetes (K8s) 上已成为主流实践。Kubernetes 提供了强大的弹性伸缩、故障自愈和资源管理能力,而 Helm 作为 K8s 的包管理器,则极大地简化了复杂应用的部署和生命周期管理。 本文将详细介绍如何利用 Helm 和 Bitnami 提供的优秀 Chart,在 Kubernetes 集群中部署一个高可用的 Kafka 集群。我们将采用 Zookeeper-less 的 KRaft 模式,并通过一个结构化的项目,实现配置与部署逻辑的分离,使其更易于维护和复用。 项目源码: github, gitee 一、项目结构概览为了实现标准化和可重复的部署,我们采用以下文件结构: .env: 环境变量文件,用于存放所有可配置的参数,如命名空间、存储类、副本数等。这实现了配置与执行逻辑的分离。 install.sh: 核心部署脚本,负责加载配置、更新 Helm 仓库并执行 helm upgrade --install 命令。 uninstall.sh: 卸载脚本,用于清理 Helm...
1…567…22
avatar
李博帅
文章
218
标签
10
分类
10
Follow Me
公告
记录自己的学习成长
最新文章
GNOME 桌面环境必备软件与插件推荐2026-01-15
Flink进阶-深入理解 Flink 运行时架构2025-12-16
Flink进阶-彻底搞懂 OperatorChaining 与 SlotSharing 的区别与联系2025-12-16
Flink进阶-10道实战题彻底搞懂 Operator Chaining 与 Slot Sharing2025-12-16
并发内功-代码线程安全分析四个步骤整合版2025-11-25
分类
  • Java46
  • 前端1
  • 大数据24
  • 容器化43
  • 杂货小铺18
  • 环境搭建14
  • 监控预警7
  • 算法8
标签
Java 算法 环境搭建 运维手册 前端 计科基础 容器化 监控预警 大数据 杂货小铺
归档
  • 一月 2026 1
  • 十二月 2025 3
  • 十一月 2025 10
  • 十月 2025 1
  • 八月 2025 18
  • 七月 2025 19
  • 六月 2025 23
  • 五月 2025 11
网站信息
文章数目 :
218
运行时间 :
本站总字数 :
383.9k
最后更新时间 :
©2022 - 2026 By 李博帅
框架 Hexo 7.3.0|主题 Butterfly 5.3.5

豫ICP备2025118913号

搜索
数据加载中