Kafka Broker 级存储目录迁移

此场景用于在不停机或最小化影响的情况下,为单个 Broker 增加或更换存储目录。

核心原理

Kafka 支持在 log.dirs 配置项中指定多个数据目录。从 Kafka 2.4.0 版本开始,通过 KIP-113 引入了动态日志目录迁移功能,允许在线将分区的日志从一个目录迁移到另一个,而无需重启 Broker。

实施步骤

准备新目录

在 Broker 服务器上创建新的数据目录,例如 /data/kafka-logs-2。
确保新目录的权限和所有者与 Kafka 进程匹配(例如 chown -R kafka:kafka /data/kafka-logs-2)。

更新 Broker 配置

编辑 Broker 的 server.properties 文件,在 log.dirs 配置项中添加新目录的路径,与旧目录用逗号分隔。

log.dirs=/data/kafka-logs-1,/data/kafka-logs-2

使用frp配置web服务内网穿透代理

需求:使用frp实现对内网服务器上web服务的内网穿透。

将内网地址http://127.0.0.1:8080服务通过内网穿透实现外网可以访问。

环境准备:
一台有固定外网IP的阿里云服务器
frps服务端:阿里云服务器
frpc客户端:内网服务器

frp下载地址:
https://github.com/fatedier/frp/releases

分别下载Windows和Linux版本:
frp_0.63.0_windows_amd64.zip
frp_0.63.0_linux_amd64.tar.gz

frps服务端

frps.toml配置:

[common]
bindPort = 7000
vhost_http_port=6001

启动命令:
./frps -c frps.toml

平台系统私有化部署-详细步骤

平台系统私有化部署是指将原本可能运行在公有云上的软件系统,部署到客户本地或客户指定的私有服务器环境中,以满足数据安全、合规性、定制化等需求。整个过程通常包含以下几个关键步骤:

一、前期准备阶段

需求调研与确认

  • 与客户沟通,明确部署环境(物理服务器、虚拟机、容器化等)。
  • 确认系统功能模块、用户规模、并发量、性能要求。
  • 明确数据隔离、权限管理、审计日志等安全需求。

环境评估与规划

  • 评估客户现有IT基础设施(网络、存储、计算资源、操作系统、数据库等)。
  • 提供硬件配置建议(CPU、内存、磁盘、带宽等)。
  • 规划网络拓扑结构(内外网访问、防火墙策略、负载均衡等)。

Spring Boot 项目中循环依赖的解决方法

循环依赖是指两个或多个 Bean 相互依赖,形成一个闭环。在 Spring Boot 项目中,循环依赖可能导致应用启动失败或运行时问题。以下是几种常见的解决方法:

1. 重构代码设计(推荐)

最佳解决方案是重新设计代码结构,从根本上消除循环依赖:

  • 提取公共逻辑到第三个类中
  • 使用接口分离关注点
  • 应用单一职责原则

influx CLI修改数据保存策略时间

第一步:下载influx CLI

Download the influx CLI package.
https://docs.influxdata.com/influxdb/v2/tools/influx-cli/?t=Windows

第二步:设置influx CLI

F:\tools\influxdb2-client-2.7.5-windows-amd64> influx config create --config-name config --host-url http://localhost:8086 --org myorg --token 34j18h5hZFVE27FinsZ9rQVBka62EnnmEHL_6Lp0rzQ_IHgZavMthFAKgVrA05RsHXNQO0Ozlr3lF3ubDoCT4Q== --active
 

第三步:修改保留策略时间

-- 列出所有的buckets
influx bucket list

F:\tools\influxdb2-client-2.7.5-windows-amd64>influx bucket list
ID                      Name            Retention       Shard group duration    Organization ID         Schema Type
069af8ca95cb6687        smaple          infinite        168h0m0s                a17eb7759879d6e0        implicit

-- 修改保留策略为最近两年(730d)
influx bucket update --id <bucket-id> --retention 730d

例如:更新此bucket过期时间为365天
influx bucket update \
--id 4c9a0159cfb9186d \
--retention 365d \
--token your-auth-token

说明:

  1. 配置变更立即生效(对新数据)
    一旦您运行了 influx bucket update -r ,这个新的保留策略会立即应用到后续写入的数据
    所有新写入的数据将遵循新的过期规则。
    🔹 例如:你把保留时间从 30d 改为 7d,那么从修改之后写入的所有数据,将在 7 天后过期。
  2. 旧数据的清理是异步进行的(延迟生效)
    已存在的、超出新保留期限的数据不会马上被删除
    InfluxDB 有一个后台任务(Retention Enforcement Service),它会周期性地检查并删除过期的数据
    默认检查间隔
    每 30 分钟检查一次(由配置项 retention-check-interval = "30m" 控制)。
    因此,最坏情况下,超出保留时间的数据可能最多再保留 30 分钟才会被清理。