springcloud
文章平均质量分 89
wangbiao007
这个作者很懒,什么都没留下…
展开
-
第七章 对Ribbon的理解
一.概括Ribbon这个组建就是利用负载均衡的策略和RestTemplate调用远程服务,而且不用知道远程服务的ip和端口,只需要知道远程服务名就可以了。Ribbonde 有两个作用1.调用负载均衡器根据相应的规则选择某一个服务进行调研2.将逻辑url,也就是服务名换成ip加端口号的形式Ribbon的大体原理就是在RestTemplate发出请求之前利用拦截器进行拦截,在拦截器中创建负载均衡器(第一次调用的时候),负载均衡器从EurekaClient端获取到已经拉取到本地的服务列表,然后原创 2021-07-11 13:48:45 · 427 阅读 · 0 评论 -
第六章 对Eureka的理解
Eureka缓存的理解在Eureka的服务端通过三级缓存来存储注册信息,第一层:只读层(ConcurrentHashMap);第二层:读写层(guava);第三层:真实数据(ConcurrentHashMap);调用流程就是:先从只读层读取数据,要是没有读取到,就会从读写层读取数据,读写层由于有监听事件,当在读写层没有读取到数据的时候;事件会从真实数据读取。真是层虽然用的ConcurrentHashMap能支持并发,但是当并发量很高的时候会有读写冲突,而且Eureka服务列表更多的操作是读操作,所以在原创 2021-07-06 22:49:43 · 137 阅读 · 0 评论 -
第五章 对hystrix的理解
一.Hystrix概叙Hystrix作为springcloud微服务里面的一个很重要的组件,它的作用就是资源隔离,服务熔断和服务降级,资源隔离是因为Hystrix能设置信号量或者线程池里面核心线程,最大线程以及任务队列的原因。服务熔断和服务降级是Hystrix能设置熔断器的开关和熔断器打开关闭的条件来进行控制,当熔断器是关闭的状态或者调用的服务出现异常,Hystrix可以调用备用逻辑来进行处理。避免程序直接出错。服务熔断我个人的理解是熔断器已经开启,不调用远程服务了,直接调用FallBack原创 2021-07-06 17:52:12 · 243 阅读 · 1 评论 -
第四章 对Feign源码的解读
目录一.Feign的执行流程总结二.Feign的具体源码三.Feign中重要的类四.Feign的负载均衡策略一.Feign的执行流程总结1.在使用到Feign的时候,需要在启动类上加上@EnableFeignClients,在要调用的接口上加@FeignClient注解,由于在@EnableFeignClients注解中有一个@Import(FeignClientsRegistrar),其中FeignClientsRegistrar实现了ImportBeanDefinitionReg原创 2021-07-04 12:22:26 · 159 阅读 · 1 评论 -
深入理解Eureka获取注册信息(七)
对Eureka注册的理解Eureka获取注册信息有两种方式,一种是当客户端启动的时候会去全量获取一次注册信息,第二种方式是增量获取注册信息,开启一个定时任务,每30秒一次去服务端拉取服务,然后将获取到的服务合并。服务端有一个专门的缓存存储着变动的服务,这个缓存3分钟过期一次。Eureka-Client获取信息启动获取在客户端应用启动时,初始化DiscoverClient的时候,会主动去获取一次注册信息@InjectDiscoveryClient(ApplicationInfoMa.转载 2021-07-03 09:24:12 · 1258 阅读 · 0 评论 -
深入理解 Eureka实例自动过期(六)
自己对自动过期的理解Eureka自动过期的作用:就是剔除90秒(实际是180秒,duration这个被加了两次,这是eureka的一个错误)内没有发送心跳的服务(客户端每30秒发送一次心跳)。保证整个服务列表的健康性。Eureka自动过期的原理:开启一个每一分钟运行一次的定时任务,先判断是否开启保护机制,如果开启保护机制就直接返回,如果没有开启保护机制,则遍历所有的服务,通过服务的续约时间+持续时间和当前时间比较,要是小于当前时间,则判断当前服务过期。服务是否过期的判断//判断是否过期..转载 2021-07-03 07:14:31 · 1142 阅读 · 2 评论 -
深入理解Eureka 自我保护机制(五)
对自我保护的理解:自我保护的作用是保证服务的稳定性,也就是怕过多的服务心跳失败,是Eureka服务端的问题,而不是客户端的问题,所以为了避免将正常的服务剔除,所以加了保护机制,当然保护机制的话也有可能将已经宕掉的服务还保存着。自我保护的原理:每个客户端会每30秒向服务端发送一次心跳,所以一分钟一个服务会发送两次,所以当服务,当服务的个数是count,那么expectedNumberOfRenewsPerMin =count*2;还有一个最小续约次数,numberOfRenewsPerMinThr..转载 2021-07-02 23:01:20 · 742 阅读 · 0 评论 -
深入理解Eureka-Client 发送心跳(三),
自己的理解:Eureka的心跳作用就是為了最後的保護機制。首先會根據心跳更新續約時間,然後根據續約時間來判斷服務是否過期,最後根據服務是否過期來剔除服務。Eureka心跳的流程:客戶端會啓動一個30秒一次的綫程發送心跳續約的請求。服務端接收到心跳續約的請求后悔更新這個服務的續約時間 lastUpdateTimestamp = System.currentTimeMillis() + duration;其實上面就已經完成了續約的工作,但是還要結合著過期判斷來看服務端會開啓转载 2021-07-01 23:08:33 · 998 阅读 · 0 评论 -
深入 Eureka 服务注册 源码分析(二)
Eureka-Client注册服务啥时候会注册在两种情况下客户端会主动向服务端发送自己的注册信息1.当客户端的instance信息发生改变时,Eureka-Client和Server端信息不一致时2.当客户端刚刚启动的时候。定时器注册com.netflix.discovery.DiscoveryClient ,使用的@Inject //google guice 注入遵循 JSR-330规范private void initScheduledTasks() { //省略,转载 2021-07-01 17:22:35 · 218 阅读 · 0 评论 -
第三章 Spring Cloud Eureka
一.概述Eureka作为注册中心,分为Eureka Server和Eureka Client,Eureka Server提供服务注册,提供服务信息列表功能和刷新服务列表功能,Eureka Client提供注册服务,拉取服务和提供服务心跳(续约)的功能。用大白话讲就是Eureka Server提供一个注册平台,Eureka Client作为生产者和消费者,可以将自身的信息注册到Eureka Server上,也可以从Eureka Server上获取其他服务信息来进行远程调用。Register(服务注原创 2021-01-19 11:35:59 · 202 阅读 · 0 评论 -
第一章 springcloud几大组件的介绍
不知道这个时候学习springcloud是否算太晚了。 springcloud作为一种心的分布式架构被广泛应用到企业开发中,特别是中小型企业,现在已经基本取代了dubbo。为了增强自己的竞争力,不被这个时代淘汰,所以在慢慢学习springcloud,而且所在公司也在应用springcloud。 springcloud作为一个分布式框架,将我们以前一个工程完成一个项目的方式做出了拆分,将项目按功能模块划分一个个小的项目,使得每个功能模块都能独立部署,独立对外提供服务,使得项目...原创 2020-07-20 21:46:52 · 323 阅读 · 0 评论