博主辛苦整理不易,如果觉得有帮助的话留个赞吧
1、什么是 Spring Cloud?
Spring cloud 流应用程序启动器是基于 Spring Boot 的 Spring 集成应用程序, 提供与外部系统的集成。Spring cloud Task,一个生命周期短暂的微服务框架, 用于快速构建执行有限数据处理的应用程序。
2、使用 Spring Cloud 有什么优势?
单一职责:微服务中每一个服务都对应唯一的业务能力,做到单一职责
面向服务:面向服务是说每个服务都要对外暴露服务接口API。并不关心服务的技术实现,做到与平台和语言 无关,也不限定用什么技术实现,只要提供REST的接口即可。
自治:自治是说服务间互相独立,互不干扰
- 团队独立:每个服务都是一个独立的开发团队。
- 技术独立:因为是面向服务,提供REST接口,使用什么技术没有别人干涉
- 前后端分离:采用前后端分离开发,提供统一REST接口,后端不用再为PC、移动段开发不同接口
- 数据库分离:每个服务都使用自己的数据源
微服务的特点:
单独任务或小块业务逻辑
总是松耦合
着重分散管理
易维护、易扩展、更轻量级的交互
3、服务注册和发现是什么意思?Spring Cloud 如何实现?
当我们开始一个项目时,我们通常在属性文件中进行所有的配置。随着越来越多的服务开发和部署,添加和修改这些属性变得更加复杂。有些服务可能会下降, 而某些位置可能会发生变化。手动更改属性可能会产生问题。 Eureka 服务注册 和发现可以在这种情况下提供帮助。由于所有服务都在 Eureka 服务器上注册并通 过调用 Eureka 服务器完成查找,因此无需处理服务地点的任何更改和处理。
4、负载平衡的意义什么?
在计算中,负载平衡可以改善跨计算机,计算机集群,网络链接,中央处理单元或磁盘驱动器等多种计算资源的工作负载分布。负载平衡旨在优化资源使用,最大化吞吐量,最小化响应时间并避免任何单一资源的过载。使用多个组件进行负载平衡而不是单个组件可能会通过冗余来提高可靠性和可用性。负载平衡通常涉 及专用软件或硬件,例如多层交换机或域名系统服务器进程。
5、什么是 Hystrix?它如何实现容错?
Hystix是Netflix开源的一个延迟和容错库,用于隔离访问远程服务,防止出现级联失败。
服务器支持的线程和并发数有限,请求一直阻塞,会导致服务器资源耗尽,从而导致所有其它服务都不可用,形成雪崩效应。 Hystrix可以通过线程隔离和服务降级解决雪崩问题,实现服务器容错。
服务降级虽然会导致请求失败,但是不会导致阻塞,而且最多会影响这个依赖服务对应的线程池中的资源,对其它服务没有响应。
触发Hystrix服务降级的情况:
- 线程池已满
- 请求超时
6、什么是 Hystrix 断路器?我们需要它吗?
在服务熔断中,使用的熔断器,也叫断路器,其英文单词为:Circuit Breaker 熔断机制与家里使用的电路熔断原理类似;当如果电路发生短路的时候能立刻熔断电路,避免发生灾难。在分布式系统中应用服务熔断后;服务调用方可以自己进行判断哪些服务反应慢或存在大量超时,可以针对这些服务进行主动熔断,防止整个系统被拖垮。 Hystrix的服务熔断机制,可以实现弹性容错;当服务请求情况好转之后,可以自动重连。通过断路的方式,将后续请求直接拒绝,一段时间(默认5秒)之后允许部分请求通过,如果调用成功则回到断路器关闭状态,否则继续打开,拒绝请求的服务。
7、什么是 Netflix Feign?它的优点是什么?
Feign伪装。Feign可以把Rest的请求进行隐藏,伪装成类似SpringMVC的Controller一样。你不用再自己拼接url,拼接参数等等操作,一切都交给Feign去做。
feign中集成了负载均衡、Hystrix和对请求的压缩等。
8、什么是 Spring Cloud Bus?我们需要它吗?
通过查看用户微服务控制台的输出结果可以发现,我们对于Git仓库中配置文件的修改并没有及时更新到用户微服务,只有重启用户微服务才能生效。如果想在不重启微服务的情况下更新配置该如何实现呢? 可以使用Spring Cloud Bus来实现配置的自动更新。
Spring Cloud Bus是用轻量的消息代理将分布式的节点连接起来,可以用于广播配置文件的更改或者服务的监控管理。也就是消息总线可以为微服务做监控,也可以实现应用程序之间相互通信。 Spring Cloud Bus可选的消息代理有RabbitMQ和Kafka。
可以为微服务做监控,也可以实现应用程序之间相互通信。 Spring Cloud Bus可选的消息代理有RabbitMQ和Kafka。