在很长一段时间里,Ingress 是 Kubernetes 集群的标准北向流量入口。但随着业务复杂度增加、微服务体系兴起、多协议需求增长,Ingress 的先天缺陷越来越明显。

2024–2025 年,Kubernetes 官方与 CNCF 明确:

Gateway API 是下一代流量管理标准,将逐步取代 Ingress 成为默认推荐方式。

而随着 ingress-nginx 宣布在 2026 年 3 月停止维护,Gateway API 的迁移意义愈发明确。

本文将从原理、对比、设计理念、CRD、部署与使用示例多个方面全面介绍 Gateway API。


1. 什么是 Gateway API?

Gateway API 是 Kubernetes SIG-Network 推出的新一代流量治理标准。

核心目标:

  • 统一 L4/L7 流量管理
  • 取代 Ingress 的简陋模型
  • 提供可扩展、可观察、可分权协作的网关体系
  • 能适配云厂商、服务网格、Ingress 控制器等各种实现

image.png

- 阅读剩余部分 -

在软件开发与数据库管理的日常中,程序bug或误执行SQL语句导致的数据错误更新是一个不容忽视的问题。这类问题不仅可能导致业务数据的混乱,还可能对企业造成严重的经济损失。幸运的是,数据库系统为我们提供了一种强大的数据恢复机制——binlog(Binary Log),它能够记录所有修改数据的SQL语句,为我们在数据遭遇不测时提供了一线生机。本文将详细介绍如何通过解析binlog来恢复因程序bug或误执行SQL导致的数据错误更新或删除。

binlog基础

什么是binlog?

binlog是MySQL数据库中的一种二进制日志文件,它记录了数据库中所有修改数据的SQL语句,包括增删改操作。binlog的主要作用是用于数据库的主从复制和数据恢复。

binlog的类型

MySQL的binlog有三种格式:STATEMENT、ROW和MIXED。

  • STATEMENT:记录每一条会修改数据的SQL语句本身。
  • ROW:记录每一行数据的变化,不记录SQL语句本身。
  • MIXED:默认情况下使用STATEMENT格式,但在某些特殊情况下会自动切换为ROW格式。

- 阅读剩余部分 -

为什么要优雅上下线?

在微服务架构中,应用实例的频繁部署、扩缩容、重启都是常态。
如果不进行优雅上下线(Graceful Startup & Shutdown),就可能导致:

  • 正在处理的请求被强制中断,造成接口异常或数据异常;
  • 服务注册中心(如 Nacos)仍然认为节点可用,导致请求被路由到已关闭的实例;
  • 新实例还没充分启动完成,请求就进来了,导致接口异常。

为了解决这些问题,我们需要让服务在启动和关闭阶段都更有序、更“温柔”、更可控。

Spring Boot 内置的优雅关闭机制

从 Spring Boot 2.3+ 开始,官方就支持优雅关闭(Graceful Shutdown):

server:
  shutdown: graceful

或通过启动参数启用:

-Dserver.shutdown=graceful

这表示当 Spring Boot 接收到关闭信号(如 SIGTERM)时,不会立刻中断请求,而是:

  1. 停止接收新请求;
  2. 等待当前正在处理的请求完成;
  3. 超过等待时间后强制关闭。

- 阅读剩余部分 -

我们有一个 docker compose 部署的 harbor,随着时间的推移,存储的镜像越来越多,磁盘空间已经捉襟见肘。急需迁移到更大的存储空间去。harbor 支持众多的后端存储,所支持的后端存储类型和配置方法点击 Configuring a registry | CNCF DistributionHarbor docs | Configure the Harbor YML File 查看。

我这里使用的是minio(兼容s3)作为后端存储。

假设我的 harbor 的访问地址是:https://hub.kops.cc

配置方法

修改 harbor.yml 文件:

storage_service:
  s3:
    accesskey: minioadmin
    secretkey: minioadmin
    regionendpoint: http://127.0.0.1:9000
    bucket: harbor
    multipartcopythresholdsize: "5368709120"

执行 ./prepare 脚本使配置生效

./prepare

docker-compose down

docker-compose up -d

- 阅读剩余部分 -