SpringCloud总结

1.什么是SpringCould

springcould流应用程序启动器是基于spring boot 的spring集成应用程序,提供与外部系统的集成。

2.什么是微服务

微服务架构是一种架构模式或者说是一种架构风格,提倡将单一应用程序划分为一组小的服务,每个服务运行在器独立的自己的进程中,服务之间相互协调,相互配合,为用户提供最终价值。服务之间采用轻量级的通讯机制互相沟通,每一个服务都围绕着具体的业务进行构建,并且可以被独立的构建在生产环境、类生产环境。避免统一的集中式的服务管理机制,对具体的一个服务而言,应根据业务的上下文,选择合适的语言、用具对其进行构建,可以有一个非常轻量级的集中式管理来协调这些服务,可以使用不同的语言来编写服务,也可以使用不同的数据存储。

3.springcloud的优势

1.与分布式系统相关复杂性-网络问题,延迟开销,宽带问题,安全问题
2.服务发现-服务发现工具管理群集中的流程和服务如何查找和相互交谈,它涉及一个服务目录,在该目录中注册服务,然后能够查询并连接到该目录中的服务 (注册中心eureka)
3.冗余-分布式系统中的冗余问题
4.负载均衡 改善跨多个计算资源的工作负荷
5.性能问题 由于各种运营开销导致的性能问题
6.部署复杂性-Devops技能的要求

4.什么是服务熔断,什么是服务降级

熔断机制是应对雪崩效应的一中微服务链路保护机制。当某一个微服务不可用或者响应时间太长时,会进行服务降级,进而熔断该节点微服务的调用,返回“错误”的响应消息。当检测到该节点微服务调用响应正常后恢复调用链路。在SpringCloud框架里熔断机制通过Hystrix实现,hystrix会监控微服务间调用状况,当失败的调用到一定阈值,缺省是5秒调用20次,如果失败,就会启动熔断机制。

服务降级,一般是从整体负荷考虑。就是当某个服务熔断后,服务器将不会调用,此时客户端可以自己准备一个本地的fallback回调,返回一个缺省值。这样做,虽然水平下降,但可用,比直接挂掉强。

hystrix相关注解
@EnableHystrix:开启熔断
@HystrixCommand(fallbackMethod=“XXX”):声明一个失败回滚处理的函数XXX,当注解而的方法执行超时
(默认1000毫秒),就会执行fallback函数,返回错误提示。

5.eureka和zookeeper都可以提供服务注册与发现的功能,说说两者之间的区别?

Zookeeper保证了CP(c:一致性 p:分区容错性),eureka保证了AP(A:高可用 p:分区容错性)
1.当向注册中心查询服务列表时,我们可以容忍注册中心返回的是几分钟以前的数据,但不能容忍直接down掉。注册服务功能对高可用性要求比较高,但是zookeeper会出现,当master节点因为网络故障与其他节点失去联系,剩余节点会重新选择leader。在选取leader的时间过长,选取期间zookeeper集群不可用,回导致选取期间注册服务瘫痪。
2.eureka保证了可用性,eureka各个节点是平等的。几个节点挂掉不会影响正常节点的工作。
eureka客户端向某个eureka注册或发现时发生连接失败,会自动切换到其它节点,有一台eureka就可以保证注册服务可用,只是查询的数据可能不是最新的
eureka的自我保护机制:在15分钟内超过85%的节点宕机会出现以下几种情况
1.eureka不会从注册列表中移除因为长时间没有收到心跳而应该过期的服务;
2.仍然接收新服务的注册和查询请求,但不会同步到其它节点上。
3.网络稳定时,当前实例新的注册信息会同步到其它节点。不会像zookeeper那样使整个为服务瘫痪

6.springBoot和SpringCould的区别

1.springboot专注于快速方便的开发单个个体微服务
springcloud关注全局的微服务协调整理治理框架。将springboot开发的一个个单体微服务整合并管理起来
为微服务提供**配置管理,服务发现,断路器,路由,**微代理,事件总线,全局锁,决策竞选,分布式会话等集成服务。
2.**springboot可以离开SpringCould独立开发项目,但是SpringCould的离不开springboot,**依赖关系。

7.负载均衡的意义

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

8.什么是hystrix,如何实现容错

hystrix是一个延迟和容错库,旨在隔离远程系统、服务和第三方库的访问点,当出现故障是不可避免的故障是,停止级联故障并在复杂的分布式系统中实现弹性。
通常对于使用微服务架构开发的系统,涉及到许多微服务,这些微服务彼此协作。

9.RPC的实现原理

需要有处理网络连接的通讯模块,负责连接建立、管理和消息的传输。需要有编解码的模块,因为网络通讯都是传输的字节码,需要将我们使用的对象序列化和反序列化。剩下的就是客户端和服务器的部分,服务器端暴露要开发的服务接口,客户调用服务接口的一个代理实现,这个代理实现负责收集数据、编码并传输服务器然后等待结果返回。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值