springcloud总结

自作多情 提交于 2020-01-14 23:34:00

ESB

首先了解SOA,SOA(面向服务架构),所有的服务都面向一个服务总线(ESB),ESB类似于设计模式里面适配器模式,不管服务提供方是使用什么语音实现的,在他注册到消息总线里面,用过使用同样的一套规范,这样客户端调用就省事了很多。所有的服务由服务总线通过管理,但这个消息总线其实只是一种思想,具体要要通过具体的RPC框架实现。

服务注册和发现是什么意思?Spring Cloud如何实现?

当我们开始一个项目时,我们通常在属性文件中进行所有的配置。随着越来越多的服务开发和部署,添加和修改这些属性变得更加复杂。有些服务可能会下降,而某些位置可能会发生变化。手动更改属性可能会产生问题。 Eureka服务注册和发现可以在这种情况下提供帮助。由于所有服务都在Eureka服务器上注册并通过调用Eureka服务器完成查找,因此无需处理服务地点的任何更改和处理。

负载平衡的意义什么?

在计算中,负载平衡可以改善跨计算机,计算机集群,网络链接,中央处理单元或磁盘驱动器等多种计算资源的工作负载分布。负载平衡旨在优化资源使用,最大化吞吐量,最小化响应时间并避免任何单一资源的过载。使用多个组件进行负载平衡而不是单个组件可能会通过冗余来提高可靠性和可用性。负载平衡通常涉及专用软件或硬件,例如多层交换机或域名系统服务器进程。使用的是riboon。

什么是Hystrix?它如何实现容错?

Hystrix是一个延迟和容错库,旨在隔离远程系统,服务和第三方库的访问点,当出现故障是不可避免的故障时,通过降级或者熔断进行备用处理。
降级:
	在服务提供方实现,当调用的方法不可用的时候就降级为备用方法,使用@HystrixComand
熔断:
	在服务消费方实现,当调用服务提供方失败后,在消费方提供一个备用方案处理

什么是Hystrix断路器?

断路器就是实现熔断机制的,当调用失败后进行熔断处理

什么是Netflix Feign?

Feign是整合了RestTemplate+riboon+restful,调用者不需要了解具体的服务地址,而只需要知道服务接口即可,按照Restful风格,进行调用。

Zuul网关

Zuul其实是一个API网关,类似于设计模式里面的Facade门面模式,他的存在就像是整个微服务的门面,所有的外部客户端访问都需要经过它来进行调度与过滤。其实就是类似于nginx可以实现代理的功能,并且Zuul里面集成了Fegin。

服务配置中心管理

为了方便服务配置文件统一管理,更易于部署、维护,所以就需要分布式配置中心组件了,在springcloud中,有分布式配置中心组件springcloudconfig,外部配置文件就可以集中放置在一个git仓库里。

SpringCloudStream消息驱动(类似于适配器)

在系统开发里面难免用到消息队列,但各个的消息队列又有所区别,SpringCloudStream的作用就是屏蔽各种消息队列的区别,对消息队列的API进行进一步的抽象,使得在springcloud里面能更加方便的集成各种消息系统。

SpringCloudBus

SpringCloudBus提供了跨多个实例刷新配置的功能,就是当配置中心中的配置信息改变的时候,通过@RefreshScope进行刷新,更新消息队列中的信息,消费方监听到队列信息变化就实时修改。

SpringCloudSleuth链路跟踪

在微服务的架构下,系统由大量服务组成,每个服务可能是由不同的团队开发,开发使用不同的语言,部署在几千台服务器上,并且横跨多个不同的数据中心,一次请求绝大多数情况会涉及多个服务,在系统发生故障的时候,想要快速定位和解决问题,就需要跟踪服务请求序列,SpringCloudSleuth使用的核心组件是Twitter推出的Zipkin监控组件,zipkin就是一个分布式的跟踪系统,用户收集服务的数据。
链路中的监测信息,可以通过消费者调用生产者服务的时候同时传到消息队列中,链路服务再从队列中去拿到信息,最后持久化到数据库或者是其他DB中。

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!