SpringCloud相关组件
SpringCloud相关组件
今天我们简单说一下springcloud,springcloud是我们生产中最流行的框架了,它的核心组件有:
- 服务的注册和发现:eureka,nacos,zookeeper
- 配置中心:SpringCloud Config,Apollo,nacos
- 客户端负载均衡:ribbon,springcloud loadbalancer
- 网关:SpringCloud gateway,zuul
- 服务熔断器:hystrix,Sentinel(阿里巴巴)
- 服务接口调用:feign,resttemplate,openFeign
- 链路追踪:sleuth,skywalking,pinpoint
- 监控中心:SpringBoot Admin
这些差不多是springcloud需要涉及到的技术点,也是做微服务开发不可避免的点,微服务其实就是面向服务治理,将项目拆分成粒度更小的服务,解耦,并方便管理
注册中心
注册中心在这里扮演一个什么角色呢?它其实就是让消费者和生产者解耦,注册中心中存储着生产者的地址信息,方便消费者调用,一般情况下,注册中心还会在本地存储一份生产者信息,注册中心挂掉后,本地依然可以加载到生产者的信息。注册中心又分CP和AP,CP保证了一致性和分区容错性像zookeeper,AP保证了可用性和分区容错性像eureka,nacos既实现了CP又实现了AP
配置中心
配置中心就更好理解了,它主要存储我们项目中经常用到的配置文件,一般服务启动的时候会从配置中心中拉取配置文件到本地,然后加载,有的配置中心还支持动态配置,配置中心的文件修改后动态刷新到本地文件,这涉及到springcloud Bus总线
负载均衡
说到负载均衡不得不提一下ribbon了,ribbon中LoadBalancerClient在初始化的时候通过ILoadBalance中向注册中心获取服务注册的列表,并且每隔10s调用IPing接口发送一次请求来检测服务是否可用,当可用服务发生变化的时候就从注册中心中重新拉取,ILoadBalance调用IRule的choose方法返回对应的服务节点,IRule就是定义负载均衡的接口
熔断降级
说到熔断和降级这一方面,当属hystrix了。熔断就是调用该服务的时候,服务产生不可用,就暂时停止对该服务的调用,而降级则是从整体方面考虑,调用熔断的服务返回fallback错误处理信息来保证系统的整体稳定,hystrix的实现原理是利用了spring的aop,熔断原理是正常情况下断路器关闭,当失败率达到阈值的时候,断路器打开,进入快速失败的方法,然后一段时候后断路器会自动进入半开状态,允许一个请求调用服务,如果成功就关闭断路器,否则继续打开断路器。
总结
这篇文章主要讲了SpringCloud的相关组件和功能,包括配置中心,注册中心,负载中心,熔断降级等组件,SpringCloud致力于服务治理,值得学习。
- 点赞
- 收藏
- 关注作者
评论(0)