微服务运维需构建“可观察、可伸缩、可恢复”支撑体系,核心是容器化(Dockerfile封装镜像)、Kubernetes编排(Deployment/Service/ConfigMap/Secret)、API网关统一管控(路由/认证/限流)及可观测性三件套(日志/指标/链路)。

微服务运维搭建不是简单部署几个服务,而是围绕“可观察、可伸缩、可恢复”构建一整套支撑体系。核心不在于堆砌工具,而在于让每个服务能独立运行、协同工作、出问题时快速定位。
容器化是基础,别跳过Dockerfile这一步
每个微服务必须封装成独立镜像,而不是直接在服务器上装Java、跑jar包。
关键动作包括:
- 为每个服务写专属Dockerfile:指定轻量基础镜像(如
openjdk:17-jre-slim),复制编译好的jar或二进制,暴露正确端口(如EXPOSE 8081),用非root用户启动 - 镜像命名带版本和环境标识,例如
user-service:v2.3.0-prod,避免用latest - 构建后本地测试:
docker run -p 8081:8081 user-service:v2.3.0-prod,确认健康检查接口(如/actuator/health)返回UP
Kubernetes不是可选,是微服务的“操作系统”
不用K8s管理5个以上微服务,迟早会陷入手动启停、查日志、配网络的泥潭。
最小可行部署需包含:
宝塔面板11.3.0是一款针对Linux服务器设计的可视化管理工具,通过重构核心模块实现资源占用显著降低,尤其适合低配置服务器环境。它将复杂的命令行操作转化为直观的图形界面,帮助开发者快速完成网站部署、环境配置及日常运维工作,无需专业技术背景即可高效管理服务器。
- Deployment:定义副本数、滚动更新策略(maxSurge=1, maxUnavailable=0)、就绪探针(readinessProbe)和存活探针(livenessProbe)
- Service:为每个服务创建ClusterIP,供内部调用;对外暴露用Ingress或LoadBalancer类型
- ConfigMap & Secret:把配置(数据库地址、超时时间)和敏感信息(密码、密钥)分离出来,禁止硬编码在镜像里
API网关是流量入口,必须统一管控
所有外部请求先过网关,它不只是反向代理,更是安全与治理中枢。
典型能力要落地:
- 路由转发:按路径(
/api/users/** → user-service)或Header(X-Env: staging)分发请求 - 认证鉴权:集成JWT校验,拒绝非法token;对敏感接口(如
/admin/**)做角色白名单 - 限流熔断:单IP每秒最多100次调用,下游服务响应超时2秒即降级返回默认值
日志、指标、链路——三件套缺一不可
没有可观测性,等于在黑盒里修发动机。
必须做到:
- 日志统一采集:各服务输出结构化JSON日志(如Logback + logstash encoder),用Fluent Bit收集到Loki或ELK
-
指标实时监控:Prometheus定时拉取各服务的
/actuator/metrics,重点关注HTTP 5xx率、JVM内存使用、数据库连接池等待数 - 分布式追踪:集成OpenTelemetry SDK,给每次请求打唯一traceId,通过Jaeger/Grafana Tempo查看跨服务调用耗时瓶颈
不复杂但容易忽略。

















