分布式基础理论
<p>本文介绍分布式的基础理论,从分布式使用场景与作用出发,对比单体应用、集群与分布式架构的差异。文章重点讲解CAP定理中的一致性、可用性与分区容错性,并结合网页与缓存、支付与交易场景说明AP与CP的取舍,帮助理解分布式系统的核心概念。</p>
<p>本文介绍分布式的基础理论,从分布式使用场景与作用出发,对比单体应用、集群与分布式架构的差异。文章重点讲解CAP定理中的一致性、可用性与分区容错性,并结合网页与缓存、支付与交易场景说明AP与CP的取舍,帮助理解分布式系统的核心概念。</p>
<p>介绍Eureka服务注册与发现组件的原理与实战,对比Eureka与Zookeeper的CAP差异,讲解eureka-server与client搭建、常用配置、高可用集群搭建与hosts域名映射方案,并深入分析服务注册、续约、剔除、下线与服务发现的源码流程。</p>
<p>讲解SpringCloud Ribbon客户端负载均衡组件的使用与原理,基于Eureka搭建生产者与消费者,演示@LoadBalanced增强RestTemplate和LoadBalancerClient两种方式,并介绍轮询等负载均衡算法配置及底层chooseServer源码流程。</p>
<p>介绍声明式HTTP客户端OpenFeign,通过order与user服务案例演示远程调用、超时配置、参数传递、日期传递问题及日志配置,并手写简易Feign,深入分析@FeignClient扫描、代理对象创建与Ribbon整合的源码流程。</p>
<p>从服务雪崩问题引出Hystrix熔断器,讲解断路器closed/open/half-open三种状态与隔离策略,通过租车案例集成Hystrix并配置fallback,同时手写一个包含状态枚举、注解与切面的断路器,实现失败计数、半开试探与自动恢复。</p>
<p>介绍单体、分布式聚合项目的模块演进,提出抽取api与domain公共模块的工程化方案,并通过Maven多模块搭建domain-project、common-api、order-center、user-center,实现feign接口与断路器统一管理及服务间远程调用。</p>
<p>介绍分布式链路追踪的概念与Trace、Span术语,对比Sleuth、Zipkin、SkyWalking等方案,讲解Zipkin服务端安装启动与四大核心组件,并在feign工程中集成Sleuth+Zipkin实现调用链路采集、耗时分析与依赖展示。</p>
<p>介绍Spring Boot Admin监控与管理组件,讲解其服务端与客户端模式,在SpringCloud中搭建admin-server并从注册中心抓取应用信息,通过集成actuator暴露监控端点,实现对user等服务的健康状态、线程、内存与接口信息的可视化监控。</p>
<p>系统讲解SpringCloud Gateway网关组件,包括背景与技术选型、路由/断言/过滤器三大核心概念、工作流程与Nginx区别,实战路由转发、动态路由、Gateway集群、Predicate断言工厂与自定义断言,以及全局过滤器、IP拦截、Token认证和基于Redis的令牌桶限流。</p>
<p>介绍微服务基础与SpringCloud、Dubbo两大门派对比及RPC与REST通信协议选型,说明服务化拆分时机,并梳理Eureka、Feign、Ribbon、Hystrix、Zuul等基础组件的核心知识与集成要点。</p>
<p>整理SpringCloud与SpringBoot版本对应关系,并以课程服务为案例,依次实战搭建Eureka Server、改造Eureka Client、集成Feign远程调用、配置Ribbon负载均衡策略、集成Hystrix断路器以及搭建Zuul网关与路由过滤器。</p>
<p>通过课程列表与课程价格两个服务整合SpringCloud六大组件,包含数据库表设计、Maven多模块搭建eureka-server、course-list、course-price与course-zuul,演示服务注册、Feign远程调用、Ribbon负载均衡、Hystrix断路器及Zuul网关路由</p>