【springcloud知识点梳理】

【引子】初学者常说的springcloud常用的五大组件:

  • 服务注册与发现——Netflix Eureka(【[juˈriːkə】you瑞卡,不要纠结发音)

  • 负载均衡(包括客户端负载均衡Ribbon,服务端负载均衡Feign)

  • 断路器——Netflix Hystrix

  • 服务网关——Netflix Zuul

  • 分布式配置——SpringCloudconfig

这次接触cloud直接跟着教学文档敲了一遍,就像二师兄吃人参果,,没什么感觉,很多细节都一带而过了,所以想再从概念到demo运行捋一遍,至少应该把基础打牢一些。


【概念疑惑】

Netflix是什么,为什么在文档里多次出现,百度后发现N其实是个视频网站,因为视频迭代与网络访问量大,其公司开始进军微服务领域, 可以说是微服务先锋了,SpringCloud的封装内容也包括了很多Netflix内容。

 SpringCloud在项目中做了什么,有什么作用(优势):

  从组件的角度来说吧,

  Eureka 采用了C-S的架构设计,是微服务架构中的注册中心,专门负责服务的注册与发现

其具体包含Eureka server 和Eureka client两个组件,

Eureka server 提供服务注册。

Eureka Client组件专门负责将服务的信息注册到Eureka Server中(就是告诉Eureka Server,自己在哪台机器上,监听着哪个端口)。而Eureka Server是一个注册中心,里面有一个注册表,保存了各服务所在的机器和端口号。

而系统中的其他微服务,使用Eureka的客户端连接到EurekaServer并维持心跳连接。这样系统的维护人员就可以通过EurekaServer来监控系统中各个微服务是否正常运行,Springcloud 的一些其他模块 (比如Zuul) 就可以通过EurekaServer来发现系统中的其他微服务,并执行相关的逻辑。
也可以这么理解,eureka可以扮演三个角色:

  • Eureka Server:提供服务的注册与发现
  • Service Provider:服务生产方,将自身服务注册到Eureka中,从而使服务消费方能狗找到
  • Service Consumer:服务消费方,从Eureka中获取注册服务列表,从而找到消费服务

  负载均衡

在cloud中负载均衡可以分为客户端负载均衡(ribbon),服务端负载均衡(fegin)

以淘宝天猫举例,C/S模式,对吧,通过浏览器就可以发送请求,不用每台电脑都安装特定软件,这样虽然方便,但是随着网络普及,给服务器的鸭梨也越来越大,一台服务器根本没法满足,用户不断地发送大量请求会给server端带来压力和风险,所以需要很多个服务器分担,如何分担就是负载均衡要做的事情。

  断路器(我喜欢就叫熔断器哈哈)Hystrix

当某些微服务长时间不可用或者无响应,hystrix会监控微服务间调用的状况,当失败的调用到一定阀值缺省是5秒内20次调用失败,就会启动熔断机制。

就像操作系统里提到的什么时间片轮转法,先来先服务,短作业优先等等调度算法,都是因为资源有限,没有调度进程迟早会阻塞的。假如链路上(比喻为水管)某位置漏水了,那么完成水池注水任务就会慢上很多,造成重大损失,所以说,熔断器可以及时止损233.

  服务网关Zuul

包含路由和过滤两部分: 路由功能负责将外部请求转发到具体的微服务实例上,是实现外部访问统一入口的基础,而过滤器功能则负责对请求的处理过程进行干预,是实现请求校验,服务聚合等功能的基础。

  Spring cloud config 分布式配置中心

可以集中式管理配置文件,
不同环境,不同配置,动态化的配置更新,分环境部署,比如 /dev /test /prod /beta /release这些profiles
运行期间动态调整配置,不再需要在每个服务部署的机器上编写配置文件,服务会向配置中心统一拉取配置自己的信息


睡觉先

原文地址:https://www.cnblogs.com/dabuliu/p/15045821.html