
spring-cloud
文章平均质量分 86
Saleson
喜欢看书,看技术贴,喜欢研究如何提高开发效率,和大型网站的高并发性能.目前从事JAVA后端架构。
展开
-
spring-cloud-eureka (三) 注册中心源码分析
Eureka是一个开源的服务治理框架,它提供了完成的Service Registry和Service Discovery实现,并且和Spring Cloud无缝集成,使用Spring Boot + Spring Cloud可以轻松的将注册中心搭建起来。Eureka架构基础架构 上图简单的描述了Eureka的基本结构,由3个角色组成:Eureka Server: 维护服务信息,包括实例信息,提供服原创 2017-12-19 16:55:46 · 1629 阅读 · 0 评论 -
spring-cloud-eureka (二) Client - Server 接口交互(消息发送)源码分析
上一篇文章中有介绍spring-cloud-eureka的原因,以及一部分源码分析了服务在启动时是如何加载并运行spring-cloud-eureka的,这一篇文章将从源码的角度来分析spring-cloud-eureka是如何进行服务治理的。服务注册服务注册的真正入口在com.netflix.discovery.DiscoveryClient#register()public class Disc原创 2017-12-15 15:40:08 · 2761 阅读 · 0 评论 -
spring-cloud-eureka (一) 原理分析
spring-cloud-eureka是spring-cloud-nettfix微服务套件中的一部分, 它基于nettfix-eureka做了二次封装,主要负责微服务架构中的服务治理功能。 如果了解dubbo的朋友应该知道,dubbo就是一个服务治理的框架,dubbo是基于zookeeper实现服务治理功能的。至于dubbo和nettfix-eureka的区别这里不多说,网上有不少这类文章。原创 2017-12-14 10:36:27 · 6571 阅读 · 1 评论 -
基于Spring cloud ribbon实现多版本控制
在我们使用spring mvc单体架构时, 我们可以通过uri,或者请求头做多版本路由,虽然同一个功能需要维护多个版本的接口,但是对于系统而言,不会因为新增一个接口版本而影响到老用户。当我们使用spring cloud构建微服务平台时,也希望能做到这一点,然而spring cloud并没有提供这个功能。在spring cloud的微服务体系中,大多是使用eureka做为注册中心,ribbon做原创 2018-01-23 10:26:54 · 7937 阅读 · 2 评论 -
基于Spring cloud ribbon实现灰度发布
在上一篇文章《基于Spring cloud ribbon实现多版本控制》中介绍了如何扩展spring cloud ribbon实现接口多版本控制的项目 – fm-cloud-bambbo, 开发这个项目的过程,给我提供了很多想法和思路,发现只要再做一些扩展,就可以实现灰度管理,于是又有了 fm-cloud-graybunny。灰度发布灰度发布是在多版本控制的基础上进一步扩展实现出来的项原创 2018-01-29 11:54:12 · 9197 阅读 · 0 评论 -
Spring cloud ribbon 源码分析
Ribbon是Netflix公司开源的一个负载均衡的项目,它属于上述的第二种,是一个客户端负载均衡器,运行在客户端上。我们先来看三张序列图,分别是RestTemplate、Feign、Zuul在使用Ribbon的调用链。 从上面三张图中可以看出, 最终都是调用ILoadBalancer#chooseServer()方法筛选服务实例,并且在spring cloud中, 默认使用的是Zo...原创 2018-04-24 16:54:49 · 898 阅读 · 0 评论 -
spring cloud eureka server 集群同步之peernodes管理
在PeerAwareInstanceRegistryImpl这个注册实现类中会看到replicateToPeers这个方法:@Overridepublic boolean cancel(final String appName, final String id, final boolean isReplication) { i...原创 2018-10-31 23:13:29 · 3027 阅读 · 0 评论 -
feign+hystrix根据serviceId配置hystrix.command
在使用feign+hystrix时,hystrix.command相关的属性的优先级是hystrix.command.FeignClient#Method() -> hystrix.command.default如果我们希望优先级是hystrix.command.FeignClient#Method() -> hystrix.command.FeignClient#nam...原创 2019-04-23 19:23:33 · 2433 阅读 · 1 评论