和.net mvc 相似点:
1、Chain相当于.net中的Middleware(非core项目参考自host项目的owin) (有个好听的名字:洋葱模型-->请求一层一层进去,再一层一层出来) 2、Interceptor相当于.net中的Filter 3、路由这块和webapi一样用,但是大小写敏感 4、注解类似于特性
依赖注入
类上加上@Service,@Component,生命周期默认为singleton,也可通过@Scope指定
一次请求的生命周期
各种初始化
服务注册与发现
eureka:关于eureka的p2p通讯
1、无中心化的注册中心 2、集群采用p2p的方式,server和server之间互相作为client注册 3、client定时和server保持心跳,并同步数据
zookeeper:
1、一个leader节点,其余都是follower,走的Paxos协议来选举以及同步各个节点数据 2、只有leader接受更新操作,然后会同步更新到各个follower节点上
服务消费者
1、消费者不断会和eureka保持心跳,并且从eureka获取注册的服务提供者们 2、由于一个服务的服务者可能不止一个,所以需要一个负载均衡的策略来均匀路由到每一个服务提供者,所以这就有了客户端负载均衡库ribbon 3、由于eureka是定时心跳,所以如果一个服务节点挂了,依然是可以访问到的,所以为了解决这个问题,下面的断路器就有用武之地了,可以认为eureka+ribbon就需要使用hystricx断路器来保证请求不出问题
断路器
hystricx:Netflix出品
配置中心
基于zookeeper的配置中心
springconfig
健康检查
链路