SpringCloud源码解析开篇

SpringCloud源码解析文章目录

1、序言

第一次在博客上分享,如有不正之处,请多多指教,写此文的目的只是单纯记录并分享对于SpringCloud的个人理解的源码分析,其中也参考了其他博主的文章和相关书箱,希望能对正在学习研究SpringCloud的你有所帮助,本文中涉及到的源码基于SpringCloud的Hoxton版本。

2、预备知识


1、InstanceInfo类

封装将被发送到eureka Server 进行服务注册的服务实例元数据。它在eureka Server 的注册表中代表一个服务实例,其他服务实例可以通过 InstanceInfo了解该服务实例的相关信息从而发起服务请求

 2、Application

在这个Application中维护一个列表,Set<InstanceInfo> instances;

Application中维护着某一个微服务名称下面所有的提供者信息的列表

3、Applications

Applications就是Eureka Client中存放的【客户端注册表】。

注意这里说的是客户端注册表,而非服务端注册表(服务端注册表是一个Map<微服务名称,Application>)

4、Jersey

eureka是利用jersey提供接口给客户端访问注册服务和获取服务列表的,jerseyApplication将注册DefaultResourceConfig的bean交由spring容器,这里扫描获取所有@Path注解的类

(在这里的jersey的注解相当springmvc的@RequestMapping)

放入DefaultResourceConfig交由spring容器即可

3、总结

3.1、Eureka也存在缺陷由于集群间的同步复制是通过HTTP的方式进行,基于网络的不可靠性,集群中的EurekaServer 间的注册表信息难免存在不同步的时间节点,不满足CAP(,一致性(Consistency)、可用性(Availability)、分区容错性(Partition tolerance)) 中的C(数据一致性);

3.2、


版权声明:本文为u013427308原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。