# springcloud-lean **Repository Path**: interview_44/springcloud-lean ## Basic Information - **Project Name**: springcloud-lean - **Description**: 介绍spring-cloud框架,原理,机理 - **Primary Language**: Java - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2023-02-25 - **Last Updated**: 2023-03-21 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # springcloud-lean ## 介绍 springcloud 核心简介 ![](./picture/1-springcloud核心技术.drawio.png) ### eureka 工作原理 1、服务提供方注册服务到eureka,并每30秒一次心跳。 2、eureka接收到注册服务后,登记注册表,理解写到readwrite缓存。 3、由内部线程每30秒同步一次readwrite缓存到readonly缓存。 4、消费者每30s到readonly缓存读取注册列表。 5、如果服务器30秒不发送心跳,内部现场会刷新eureka注册表,减掉服务器,立马同步到readwrite缓存。 6、线程每隔一段时间会把readwrite缓存同步到readonly缓存。 7、消费者隔30秒同步一次注册列表,才会更新到最新的注册服务器。 ![](./picture/2-eureka.drawio.png) ### feign 他是对一个接口打了注解,他会针对这个注解的接口生成动态代理,然后你针对feign的动态代理去调用他的方法的时候,底层会生成http协议格式的请求。 底层的话使用http通讯协议的框架,httpclient,这时候就用ribbon。 默认分布式接口请求1秒钟会超时。 ### ribbon 他会到本地注册列表找到对应的机器ip,然后使用负载均衡选出一台,发送请求即可。 ### zuul 配置一下不同请求路径和服务器对应关系,你的请求到了网关,直接查找匹配的服务。然后ribbon又找到相对应的服务,又用http转发出去。 #### 1、动态路由,路由到各种各种的服务。 #### 2、灰度发布。 #### 3、授权认证。 #### 4、性能监控。 #### 5、系统日志。 #### 6、数据缓存。 #### 7、统一限流熔断。