玩儿转SpringCloud(一):Springcloud初探,了解Spring Cloud Netflix

Spring Cloud是基于Spring Boot开发来的,是构建微服务的核心,是Java领域目前最适合做微服务的框架。严格来说spring Cloud应该是一套微服务规范,而Spring Cloud Netflix和Spring Cloud Alibaba都是它的一个实现,但Netflix是最成熟的。

Spring Cloud相比Dubbo等RPC框架,Spring Cloud提供的全套的分布式系统解决方案,同时又实现了和云端平台以及和Spring Boot开发框架的集成,使用门槛较低。

Spring Cloud Netflix 核心组件:

1、eureka:

在微服务架构中,每个功能都可以拆分为一个微服务,独立部署运行。当A服务需要调用B服务的时候,传统的做法是直接调用;但是一旦服务多了起来,想要找到另一个服务就显得很麻烦,什么域名啊,请求路径啊会显得尤为繁重。假如服务ip有变,修改起来也很麻烦。

Eureka就是一个服务注册中心or服务发现,管理各种服务功能包括服务的注册、发现、熔断、负载、降级等。将所有的可以提供的服务都注册到它这里来管理,其它各调用者需要的时候去注册中心获取,然后再进行调用,避免了服务之间的直接调用,方便后续的水平扩展、故障转移等。

常见的服务注册中心有EurekaZookeeperConsul以及阿里为Dubbo定制的Nacos

2、Feign

微服务之间相互调用的时候,常规的做法是使用SpringBoot自带的RestTemplate或者HttpClient实现,也就是常规的API调用,但是都过于麻烦。于是Feign应运而生了。

Feign是一个声明式的 web服务客户端,使得服务之间的调用相当简单,通过注解以及接口声明即可实现。并且整合了ribbon和Hystrix,ribbon 提供负载均衡功能,Hystrix 提供了熔断限流,合并请求等功能,因此Gateway具有负载均衡和熔断限流等功能。

3、Gateway

ateway处于客户端和各个微服务之间,充当着反向代理的角色,通过Gateway统一进行服务调用。此外它还具有安全,限流,缓存,熔断,监控,重试等功能。最开始SpringCloud整合的并不是Gateway,而是Zuul,但是Zuul开发进度过于缓慢,于是Spring放弃了Zuul,改而自己开发了Gateway,Gateway具有Zuul(提供了智能路由的功能)的全部功能,并且更加强大。

4. Zipkin

Zipkin是一个分布式的链路追踪系统,可以清晰的看到各个微服务之间的调用情况。

为什么需要这个功能呢?可以想象,假如每个微服务都部署在不同的服务器上,且纷繁众多,一旦系统出了bug,查找起来就会比较费事。通过Zipkin链路追踪管理界面,可以清楚的看到什么时候哪个服务调用了哪个服务,耗时多少以及在哪里出了什么问题。

5.Spring Cloud config

Spring Cloud Config是一个解决分布式系统的配置管理方案(提供了统一配置的功能)。它包含了Client和Server两个部分,Server提供配置文件的存储、以接口的形式将配置文件的内容提供出去,Client通过接口获取数据、并依据此数据初始化自己的应用。

其实就是Server端将所有的配置文件服务化,需要配置文件的服务实例去Config Server获取对应的数据。将所有的配置文件统一整理,避免了配置文件碎片化。

如果服务运行期间改变配置文件,服务是不会得到最新的配置信息,需要解决这个问题就需要引入Refresh。可以在服务的运行期间重新加载配置文件。

当所有的配置文件都存储在配置中心的时候,配置中心就成为了一个非常重要的组件。如果配置中心出现问题将会导致灾难性的后果,因此在生产中建议对配置中心做集群,来支持配置中心高可用性。

6、Spring Cloud Bus

提供了配置实时更新的功能。

上面的Refresh方案虽然可以解决单个微服务运行期间重载配置信息的问题,但是在真正的实践生产中,可能会有N多的服务需要更新配置,如果每次依靠手动Refresh将是一个巨大的工作量,这时候Spring Cloud提出了另外一个解决方案:Spring Cloud Bus

Spring Cloud Bus通过轻量消息代理连接各个分布的节点。这会用在广播状态的变化(例如配置变化)或者其它的消息指令中。Spring Cloud Bus的一个核心思想是通过分布式的启动器对Spring Boot应用进行扩展,也可以用来建立一个或多个应用之间的通信频道。目前唯一实现的方式是用AMQP消息代理作为通道。

Spring Cloud Bus是轻量级的通讯组件,也可以用在其它类似的场景中。有了Spring Cloud Bus之后,当我们改变配置文件提交到版本库中时,会自动的触发对应实例的Refresh。

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值