服务注册与发现:eureka consul etcd nacos
服务调用与负载均衡:ribbon openfeign loadbalancer
服务熔断与降级:hystrix circuitbreaker-resilience4j sentinel
服务链路追踪:sleuth+zipkin micrometertracing+zipkin
服务网关:zuul gateway
分布式配置:config+bus consul nacos
分布式事务:seata lcn hmily
consul nacos: @EnaleDiscoveryClient @RefreshScope(配置动态更新)
nacos 配置的三元组: namespace+group+dataid
DataId的命名规则:${spring.application.name}-${spring.profiles.active}.${spring.cloud.nacos.config.file-extension}
openfeign: @EnaleFeignClients @FeignClient(value="xxxservice",fallback=xxxFallBack.class(服务降级统一处理))
sentinel:
- 流控规则(直接、关联、链路)流控效果(直接失败、warm up预热、排队等待)
- 熔断规则(慢调用比例、异常比例、异常数)
- 热点规则(针对入参)
- 授权规则(入参黑白名单)
- @SentinelResource(blockhandler流控触发自定义方法,fallback异常触发自定义方法)
resilience4j:
- circuitbreaker 熔断降级 三大状态(关闭closed 开启open 半开halfopen)@CircuitBreaker(name="xxxservice",fallbackMethod="xxxCircuitFallback(服务降级处理方法名)");
- ratelimiter 限流 @RateLimiter(name="xxxservice",fallbackMethod="xxxRatelimitFallback");
- bulkhead 舱壁隔离 (限制并发调用的数量) SemaphoreBulkhead信号量舱壁 FixedThreadPoolBulkhead固定线程池舱壁 @Bulkhead(name="xxxservice",fallbackMethod="xxxBulkheadFallback",type=Bulkhead.Type.SEMAPHORE);
gateway: 三大核心 路由route 断言predicate 过滤器filter
- 断言类型:After,Before,Between,Cookie,Header,Host,Path,Query,RemoteAddr,Method
- 过滤器:请求头、请求参数、响应头、前缀和路径相关AddRequestHeader,RemoveRequestHeader,SetRequestHeader,AddRequestParameter,RemoveRequestParameter,SetRequestParameter,AddResponseHeader,RemoveResponseHeader,SetResponseHeader,PrefixPath,SetPath,RedirectTo
spring:
cloud:
gateway:
routes:
- id: routh1
url: lb://xxxservice
predicates:
- Path=/xxxurl/**
- Host=**.xxx.com
filters:
- AddRequestHeader=xxx,xxx
seata: 本地@Transactional 全局@GlobalTransactional
TC事务协调者,TM事务管理器,RM资源管理器