Skip to content

微服务

微服务首先是一种系统边界与协作方式:围绕业务能力拆分可独立开发、部署和演进的服务。容器、Kubernetes、Service Mesh 和 Java Framework 都是实现手段,不是微服务成立的必要条件。

微服务建设层次图

同一种治理能力可以落在不同层。层次越靠近 Application,越理解业务语义;越靠近 Infrastructure,覆盖范围越广、对业务代码侵入越低。

这里的 Runtime 主要指 Dapr 这类 Distributed Application Runtime。JVM 是 Language Runtime,SkyWalking Java Agent 运行在 JVM 内;LVM 是 Linux Logical Volume Manager,只负责底层存储。三者不是同一层概念。

各层可以建设什么

层次可建设的能力常见实现优点边界
Application / FrameworkAPI、业务拆分、幂等、事务、超时、重试、熔断Spring Cloud Alibaba、HTTP/gRPC SDK、Outbox最理解业务语义代码侵入,多语言要分别实现
Distributed Application Runtime调用、消息、状态、工作流、Binding、SecretDapr通过统一 HTTP/gRPC API 解耦语言与基础组件不能替代业务边界、幂等和一致性设计
Process / Sidecar承载 Runtime、流量代理、mTLS、遥测、日志采集daprd、Envoy、Filebeat与应用语言解耦增加进程、资源与网络路径复杂度
Kubernetes调度、服务发现、声明式部署、弹性、配置与隔离Deployment、Service、HPA、Ingress、NetworkPolicy平台统一管理不理解业务事务和幂等语义
VM / Infrastructure计算、网络、负载均衡、存储和故障域VM、LB、DNS、Firewall、LVM提供稳定资源底座不能代替应用治理与业务拆分

这些层次不是互斥选项。典型系统会同时使用:应用层保证业务正确性,Dapr Runtime 提供分布式 Building Blocks,SkyWalking Agent 采集 Trace,Sidecar 管理通用能力,Kubernetes 负责部署与弹性,VM 和网络设备提供基础资源。

同一能力在不同层的实现

能力Application / Dapr RuntimeProcess / SidecarKubernetes / Infrastructure
服务发现Nacos Client、Dapr Service InvocationSidecar Cluster DiscoveryKubernetes Service、CoreDNS、Cloud DNS
负载均衡Client-side Load BalancerEnvoy Upstream SelectionService、Ingress、Cloud Load Balancer
超时与重试SDK 按业务操作配置Proxy Route PolicyLB Connection Policy,通常不理解业务幂等性
熔断与限流Sentinel、Resilience4jEnvoy Circuit Breaker、Rate LimitGateway、Ingress Controller
身份与加密OAuth2、JWT、Application TLSMesh mTLS、Workload IdentitySecret、Certificate Controller、Firewall
可观测性Manual Instrumentation、Dapr Telemetry、Java AgentSidecar Telemetry、Log AgentCluster Metric、Event、Audit Log

重试、幂等和分布式事务必须保留应用层判断。平台可以执行通用策略,但无法仅凭网络请求判断一次扣款或创建订单是否可以安全重放。

主题入口

主题内容
微服务建设层次Application、Dapr Runtime、Process/Sidecar、Kubernetes 与 VM/Infrastructure
SkyWalkingAPM、分布式追踪、服务拓扑与 Runtime Agent
日志平台ELK、Filebeat、Kafka 与集中式日志链路
Spring Cloud AlibabaNacos、Sentinel、Seata 与应用层微服务治理

学习地图