云原生与运维

浏览该分类下的所有文章

网络、资源、安全、存储一次说清

Kubernetes 1.37 的重点并非新增大量业务功能,而是推动 IPVS、cgroup v1 等旧基础设施路径退场,并加强 SELinux 卷挂载、Metrics API、Rootless kubelet 和存储健康监测。本文从 Java 服务视角分析这些变化对 Service 网络、JVM 资源识别、Static Pod、共享 PVC、HPA 和节点安全的影响,同时提供可直接执行的集群、节点与 Java 工作负载审计命令,以及分阶段升级和回滚思路。

Java项目软件供应链安全实战

传统 Java 项目往往只关注依赖漏洞,却忽略了依赖解析、CI 构建、制品存储和部署替换等供应链风险。本文从工程实践出发,讲解如何使用 CycloneDX Maven Plugin 生成 SBOM,利用 Trivy 扫描漏洞与许可证,通过 Cosign 为镜像签名并绑定 SBOM Attestation,再结合 SLSA Provenance、VEX 和策略门禁建立可验证的发布链路。同时分析 SBOM 与最终镜像差异、签名密钥隔离、例外审批、历史清单归档和持续重扫等生产落地问题,帮助 Java 团队将发布流程从“默认信任”升级为“基于证据验证”。

GitHub可用性改造背后的故障隔离真相

本文指出,系统出现性能问题或故障后,团队常倾向于拆微服务、上 Kubernetes、增加机器,但这些手段不会自动带来高可用。GitHub 2026 年可用性改造的真正主线不是增加服务数量,而是持续移除共享故障点,把故障限制在更小范围。微服务数量不等于故障隔离,真正隔离包含代码边界、资源边界和故障边界。GitHub 通过迁出认证权限、让仓库与 Pull Request 使用独立基础设施、降低单机房依赖,逐步建立隔离。文章提出可靠性改造五原则:识别核心用户路径、优先隔离资源、主动丢弃负载、逐步放量快速回退、高可用不等于所有功能正常。中小团队可先画依赖关系、识别共享资源、建立软隔离,再拆分高风险域。真正架构升级是控制故障传播,拆服务前应问:模块失控后,能否只让自己失败?

使用Java写简单的网络DDos攻击(仅用于学习)

本文解析一段使用Java线程池和URLConnection实现的简易“DDoS”示例代码,指出其无限循环创建线程池、线程爆炸、资源泄漏、无超时等设计缺陷,强调运行会耗尽本机及目标服务器资源。文中重点警示未经授权的攻击违背《刑法》《网络安全法》并可能承担刑事责任,倡导在合法授权下进行压力测试。最后提供正确的并发请求写法、超时设置、连接复用及使用专业工具等改进建议,呼吁技术向建设性方向发展。

Swagger使用教程

Swagger是基于OpenAPI的完整生态,包含规范(YAML/JSON)、交互文档(Swagger UI)、编辑器(Editor)和代码生成(Codegen)。教程分别演示了Node.js + Express和Spring Boot的集成方式,使用JSDoc或注解生成OpenAPI文档并通过/api‑docs查看。随后说明编写OpenAPI YAML、利用UI手动或自动化测试、使用Codegen生成服务器骨架和客户端SDK,以及生产环境的安全和CI/CD最佳实践。最后建议“契约先行”,先设计规范再生成代码,提升前后端协作效率与质量。

docker实时查看容器日志(实用)

本文介绍了在 Docker 中实时查看容器日志的常用命令。使用 `docker logs -f --tail 10 <容器>` 可实时刷新最新 10 行;仅查看最新 10 行则用 `docker logs --tail 10 <容器>` 或 `docker logs <容器> | tail -n 10`。若需查看日志开头的前 10 行,可使用 `docker logs <容器> | head -n 10`。通过管道结合 `grep` 可以在日志中搜索关键字,如 `docker logs <容器> | grep 'ERROR'`,进一步配合 `tail -n 2` 只获取最新的两条错误记录。上述命令简洁高效,适用于快速定位和监控容器日志。

groovy安装教程

本文介绍了 Groovy 的快速入门步骤:从官方或网盘下载 groovy‑sdk(4.0.4),解压至指定目录后配置环境变量并验证安装;随后在 IntelliJ IDEA 中新建 Groovy 项目,选择已安装的 Groovy 版本或对应文件夹;项目创建完成后即可在 src 目录编写 Groovy 脚本,示例代码演示了字符串、GString 的使用及输出。

Git代码提交规范

Git提交遵循“type(scope): message”格式,其中type指提交类别,如feat(新功能)、fix(修复)、docs(文档)、style(格式)、refactor(重构)、perf(性能)、test(测试)、build(构建工具)、revert(撤销)和chore(辅助),scope说明影响范围(如权限模块、首页),message为简短说明,避免过长。示例:fix(系统菜单图标):添加缺少的图标。

Java实现给PDF文件加水印、图片、签名(含测试类)

本文示例使用 iText5 在 Java 中为 PDF 添加文字水印、坐标文字、关键字定位文字、图片和签名。首先在 pom 中引入 `itextpdf` 与 `itext-asian` 依赖,随后提供 `PdfUtil` 工具类,实现:① `addWaterMark` 根据页面尺寸和透明度循环绘制倾斜文字水印;② `addText` 按坐标矩形在指定页插入文本;③ `addTextByKeyword` 解析页面文本,定位关键字坐标后写入新内容;④ `addImage` 与 `addSign` 在给定坐标或关键字位置嵌入图片/签章;⑤ `addImageAndText` 同时添加图片和文字。文末附带完整的 JUnit 测试示例,演示上述方法的调用方式与效果。

给PDF添加水印并保存(Java实现)

本文示例了使用 iText 5 为 PDF 添加文字水印的完整实现。首先在 Maven 中引入 `itextpdf` 与 `itext-asian` 依赖;随后编写 `PDFUtils` 工具类的 `addWaterMark` 方法,读取原 PDF、创建 `PdfStamper`、加载自定义字体并设置透明度、字体大小、倾斜角度及水平垂直间隔,在每页循环绘制水印文本;最后提供 `AddWaterMarkTest` 测试类演示调用。代码演示了如何通过 Java 程序批量为 PDF 添加可配置的水印并保存为新文件。

从 SVN 到 Git 开发实用命令总结

本文对比了分布式的 Git 与集中式的 SVN,指出 Git 支持离线操作、分支廉价、功能丰富,而 SVN 简单易上手。阐述了 Git 的工作区、暂存区、仓库三大概念及常用工作流,重点介绍了在 SVN 环境下使用 Git‑SVN 的关键命令(clone、fetch、rebase、dcommit 等)以及从 SVN 迁移到 Git 的基本步骤。随后系统整理了 Git 的初始化、配置、增删文件、分支管理、提交、拉取、撤销和查询等日常操作命令,并提供了进一步学习的参考资料,帮助开发者快速掌握 Git 基础并在团队中推广使用。

IDEA 2022.2版本新特性

IDEA 2022.2 引入远程开发模式,后端部署在服务器,前端 thin client 本地使用,通过 SSH 分担重任务提升流畅度;全面支持 Spring 6 与 Spring Boot 3,包括 @AutoConfiguration、@ConfigurationProperties 等新特性;新增 ⌃⇧. /⌃⇧, 快捷键全局调节编辑器字体大小;JSON、YAML、properties 中的 http/https 链接可直接点击打开或生成 HTTP 请求;实验性 GraalVM 原生调试器支持调试本地镜像;Bean Validation 注解的消息属性支持引用与折叠;其他改进包括 Groovy 集成查询、升级内置 Kubernetes/Docker、运行当前文件无需配置、导入受信任 SSL 证书、HTTP 客户端优化、JBR11→JBR17、代码检查与补全增强等。