Spring Cloud作为云应用集中了很多组件包括:路由代理(Zuul)、注册与发现(Eureka and Client)、断路器(Hystrix)、消费服务者(Ribbon and Feign)等,每个组件在架构都为实现不同的处理功能。看如下结构图:
1、外部或者内部的非spring cloud项目都先通网关zuul然后从eureka server中获取可用列表服务。
2、从eureka server注册中心返回可用实例。
3、通过ribbon负载均衡分配可用节点。
4、ribbon选择可用的节点分配到后端具体的实例
5、hystrix断路器查看当前实例是否可用,dashboard监控实例状态信息,Turbine监控服务间的调用和熔断相关指标。
6、后端服务与服务之间都是通过feign通信,处理请求业务后返回到Eureka中心返回结果。
一、介绍下Eureka的缓存机制:
对于日访问量达千万级的项目,Spring Cloud本身eureka client 每隔30秒就需要向eureka server发送心跳以检测当前服务是可用的,这本身就是非常消耗资源的,但这并不影响Spring Cloud强大的业务管理。其中主要依赖于两点:
1、Eureka Server设计精妙的注册表存储结构
查看Eureka Server注册的源码 位于org\springframework\cloud\spring-cloud-netflix-eureka-server\2.1.0.RC3\s