使用
-
springroot三板斧
- 依赖
- 配置
- 启动类注解
-
ribbon
- 作用
- 1.服务发现(切分url)
- 2.负载均衡
- 负载均衡规则
- 配置文件
- java-config
- 作用
-
openfeign
- restemplate 写法混乱
- 调用方维护一个interface(url和被调用方uri一致 内置ribbon动态代理自动实现)
-
nacos
- 自动配置 引入alibaba-nacos-config依赖 bootstrap.yml @refreshScope
-
熔断 hystrix/setinal
-
熔断器模式
-
关闭状态:对应用无干涉,仅仅计算时间窗口内的失败次数。
-
开启状态:对服务的访问立即返回错误。
-
半开启状态:只允许少量请求调用服务,如果调用结果符合预期,就认为服务端问题已经修复,这样熔断器会关闭;否则认为熔断器仍然有问题,转换到开启状态,并重新计时。
-
setinal 一个服务
- dashboard
- 接口保护懒加载(只有被访问过的接口才会被sentinal保护)
- 新增规则
- 针对来源(从哪个接口来的)
- 阈值类型 QPS/线程数
- 流控模式 直接/关联/链路
- 流控效果 快速失败/warmup/排队等待
- 失败 blocked by sentinal(flow limiting) 不友好 可以自行实现提供友好信息
- 可集群
-
-
降级
- 方式
- 限流降级
- 超时降级
- 失败次数降级
- 故障降级
- 方式
-
网关
- 路由规则(隐藏真实地址)
- 权限校验
- 压力测试
- 用户流量控制
- zuul(比ngnix更加适合java)/ngnix
- 第一代 基于BIO实现 同步阻塞
- 第二代 Gateway 基于NIO实现 netty
- zuul定义了四种过滤器
- Pre:请求被路由前调用
- Routing:请求被路由到业务应用时调用
- post: 请求执行完调用
- error: 出错时调用
-
链路追踪
- sleuth
- client 收集追踪 采样比例默认是0.1
- zipkin
- server dashboard
- spring-cloud-starter-zipkin 已经整合zipkin和sleuth
zipkin
- server dashboard
- spring-cloud-starter-zipkin 已经整合zipkin和sleuth
- sleuth
-
消息队列
- 调用分布式服务的消息 rocketmq dashboard
-
ServiceMesh
- Linkerd
- istio
原理
-
nacos
- 事件注册监听 心跳 如下图
- @loadbalance 拦截器
- 整合ribbon 服务发现 负载均衡
-
openfeign
- 动态代理 mybatis接口代理原理一致
- 动态代理 mybatis接口代理原理一致