spring cloud小结

spring cloud小结

Spring Cloud为开发者提供了在分布式系统(如配置管理、服务发现、断路器、智能路由、微代理、控制总线、一次性Token、全局锁、决策竞选、分布式会话和集群状态)等微服务组件

服务注册中心

注册,续约(心跳机制,防止剔除),下线

服务提供者

服务消费者:负载均衡

feign 默认打开了ribbon(负载均衡),以及hystrix(熔断).

client的一套规则(选择服务提供者),默认线性选择

RandomRule,随机规则。并发修改upList导致取出的server为空。

RoundRobinRule:线性轮询,current++%serverCount

RetryRule:依赖RoundRobinRule选择,加上重试时间的choose

WeightResponseTimeRule: 根据响应时间,计算权重区间。计算随机权重,看看落到哪个区间,调用哪个服务

ClientConfigEnableRoundRobinRule

BestAvailableRule

PredicateBasedRule

AvailabilityFilterRule,

ZoneAvoidanceRule

feign 依赖ribbon实现服务的均衡调用。

Eureka:高可用,多示例

hystrix:断路器,依赖aop实现

服务降级,

configcenter

多环境配置

zuul

  • 动态路由
  • 监控
  • 安全
  • 认证鉴权
  • 压力测试
  • 金丝雀测试
  • 审查
  • 服务迁移
  • 负载剪裁
  • 静态应答处理

sleuth

数据收集,存储,展现

收集流程

业务示例

zipkin具有存储展现能力,内存型存储和mysql、es和cassadra

日志收集涉及到一个采样频率

数据存储涉及到一个日志跟踪问题。traceId

http://tech.lede.com/2017/04/19/rd/server/SpringCloudSleuth/sleuthZipkinHttp.png

分布式锁

db实现,主键不重复,行锁,selectForUpdate

唤醒机制:

连接池耗费完的问题,事务超时

redis:setNx

没有唤醒机制,自带失效删除。

zookeeper ,创建节点,其他现在通过watch机制来唤醒 ,羊群效应,因为watch机制,接收了很多无关信息。

系统上线问题

代码级别:记录超时的log

com.alibaba.common.lang.diagnostic.Profiler

原文地址:https://www.cnblogs.com/zhulongchao/p/7353078.html