spring cloud常用组件

二、spring cloud

1. 关于Spring Cloud Netflix

The patterns provided include Service Discovery (Eureka), Circuit Breaker (Hystrix), Intelligent Routing (Zuul) and Client Side Load Balancing (Ribbon)…

Netflix组件是分布式微服务管理的一套解决实现


具体demo在我的gitee
https://gitee.com/shenshuxin01/spring-cloud_-first


1.1 微服务注册中心Eureka

eureka分为服务端+客户端。客户端是就是一个个真实的微服务,通过网络(可能是http连接)把服务注册到服务端。当然每个客户端可以读取到服务端所有的微服务注册信息。

但是好像Netflix好像不再更新维护eureka,所以现在推荐使用nacos注册中心,其有点不同,eureka的服务端是java一个模块。但是nacos的服务端是一个jar包,直接启动就行了。

1.2 配置中心Spring Cloud Config

配置中心也是分服务端客户端,实现的功能是把各个微服务的配置文件统一管理配置,每个springboot项目的application.properties文件放到配置中心的服务端。当微服务启动时先去配置中心找指定的配置文件,然后启动项目。

同样也是不推荐使用,建议使用nacos配置中心

解释下几个文件:

  • bootstrap.properties
    此文件也是springboot的配置文件,作用和application.properties一样。不同的是加载顺序,此文件优先于加载。使用此配置时需要导入一个strap-starter依赖。一般用来配置系统信息

  • application.properties
    一般的springboot配置文件,一般用来配置该微服务的信息,优先级次于上文的strap

1.3 负载均衡Ribbon

提供微服务负载均衡算法。是一个基于HTTP和TCP的客户端负载均衡工具,它基于Netflix Ribbon实现。 开发步骤:当前微服务A只有一个实例并注册到eureka。为了负载均衡,我们手动复制一个A,只改一下端口号,然后注册到eureka。完成

同样推荐nacos的负载均衡,并且nacos里面已经封装好了ribbon,我们不需要额外配置。

1.4 微服务远程调用Feign

微服务注册到eureka的目的当然是为了被调用。
目前feign已经封装好了HTTP API的调用。我们只需要导入starter-openfeign依赖,然后指定被调用的微服务名称、调用的URI就行。当然使用feign的前提是已经搭建好了eureka/nacos。

feign内部封装了ribbon负载均衡

1.5 熔断降级Hystrix

当某个微服务A出现故障的时候,我们可以采取措施:当调用A时,直接返回false,不再等待,并且触发调用失败代码逻辑。
这一功能已经在feign封装好了,只需要在@FeignClient(name = "xxx-producer", fallback =xxxFalse.class)添加fallback属性即可。 这里自定义xxxFalse类进行处理失败逻辑即可

1.6 网关路由Zuul

听起来好像是nginx。因为整个项目划分为多个微服务,每个微服务有不同的ip、port。前端想要调用某个服务需要知道对应的ipport等等,这很麻烦。如果有一个统一的ip、port进行分发就好了,前端只需要知道服务id就行。这就用到了zuul网关路由,其实还有很多功能:负载均衡,统一鉴权,协议转换,监控监测等一系列功能。

新建微服务zuul模块:需要用到 注册中心。前端传过来待调用的微服务id、uri。我们进行动态feign调用

// TODO 待补充

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值