SpringCloud篇

1.什么是服务熔断,什么是服务降级?

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

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

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

2.Eureka是什么?

Eureka是基于REST服务,主要以AWS云服务为支撑,提供服务发现并实现负载均衡和故障转移。我们称为Eureka服务。Eureka提供了java客户端组件,客户端内置了基于round-robin实现简单的负载均衡。在Netflix,为Eureka提供更为复杂的负载均衡方案进行封装,以实现高可用,它包括基于流量,资源利用率以及请求返回状态的加权负载均衡。

3.什么是zookeeper?

Zookeeper主要服务于分布式系统,可以用它来做:统一配置管理,统一命名服务,分布式锁,集群管理。

使用分布式系统就无法避免对节点管理的问题,而由于这些问题处理起来可能相对麻烦和提高了系统的复杂性,Zookeeper作为一个能够通用解决这些问题的中间件就应运而生。

Zookeeper的数据结构,跟Unix文件系统非常类似,可以看做是一棵,每个节点叫做ZNode.每一个节点可以通过路径来标识

Znode分为两种类型:

短暂/临时:当客户端和服务端断开连接后,所创建的znode会自动删除

持久:当客户端和服务端断开连接后,所创建的Znode不会删除。

Zookeeper是C/S结构的(分成客户端和服务端)

监听器:

常见的监听场景有以下两项:1.监听Znode节点的数据变化   2.监听子节点的增减变化

4.Eureka和zookeeper都可以提供服务注册与发现的功能,请说说两个的区别?

Zookeeper保证了CP(c:一致性,P:分区容错性) ,Eureka保证了AP(A:高可用)

Eureka保证了可用性,各个节点是平等的,几个节点挂掉不会影响正常节点的工作,剩余的节点仍然可以提供注册和查询服务,而Eureka的客户端向某个Eureka注册或发现时发生连接失败,则会自动切换到其他节点,只要有一台Eureka在,就能保证注册服务可用,只是查询的信息可能不是最新的,还有自我保护机制,

因此,Eureka可以很好的应对因网络故障导致部分节点失去联系的情况,而不会像Zookeeper那样使整个微服务瘫痪。

5.SpringBoot和Spring Cloud的区别?

SpringBoot专注于快速方便的开发单个个体微服务。

Spring Cloud是关注全局的微服务协调整理治理框架,它将Spring Boot开发的一个个单体微服务整合并管理起来,为各个微服务之间提供,配置管理,服务发现,断路器,路由,微代理,事件总线,全局锁,决策竞选,分布式会话等等集成服务

SpringBoot可以离开Spring Cloud独立使用开发项目,但是Spring Cloud离不开Spring Boot,属于依赖的关系

SpringBoot专注于快速,方便的开发单个微服务个体,Spring Cloud关注全局的服务治理框架

6.负载平衡的意义是什么?

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

7.什么是Hystrix?

Hystrix是一个延迟和容错库,主要在于隔离远程系统,服务和第三方库的访问点,当出现故障是不可避免的故障时,停止级联故障并在复杂的分布式系统中实现弹性。

8.RPC三连问:什么是RPC框架,实现原理是是什么,与SOA,REST有啥区别?

说说你对rpc框架的理解?

rpc即是远程过程调用,是分布式系统常见的一种通信方法,它允许程序调用另一个地址空间的过程或函数,而不是程序员显式编码这个远程调用的细节

除了rpc之外,常见的多系统数据交互方案还有分布式消息队列,HTTP请求调用,数据库和分布式缓存等。

其中rpc和HTTP调用是没有经过中间件的,他们是端到端系统的直接数据交互。

RPC框架实现原理是什么样的

主要有三个角色,提供者,消费者和注册中心

提供者:暴露服务的服务提供方

消费者:调用远程服务的服务消费方

注册中心:服务注册与发现的注册中心

 RPC整个调用过程,主要经历如下几个步骤:

1、建立通信

2、服务寻址  可靠的寻址方式(主要是提供服务的发现)是RPC的实现基石

3、网络传输

  • 序列化
  • 反序列化

4、服务调用

常见的RPC框架有哪些?

1.Thrift:thrift是一个软件框架,用来进行可扩展且跨语言的服务的开发。它结合了功能强大的软件堆栈和代码生成引擎,以构建在 C++, Java, Python, PHP, Ruby, Erlang, Perl, Haskell, C#, Cocoa, JavaScript, Node.js, Smalltalk, and OCaml 这些编程语言间无缝结合的、高效的服务。

2.Dubbo:Dubbo是一个分布式服务框架,以及SOA治理方案,其功能主要包括:高性能NIO通讯及多协议集成,服务动态寻址与路由,负载均衡与容错,依赖分析与降级,Dubbo是阿里巴巴内部的SOA服务化治理方案的核心框架

3.Spring Cloud:Spring Cloud由众多子项目组成,如Spring Cloud Config、Spring Cloud Netflix、Spring Cloud Consul 等,提供了搭建分布式系统及微服务常用的工具,如配置管理、服务发现、断路器、智能路由、微代理、控制总线、一次性token、全局锁、选主、分布式会话和集群状态等,满足了构建微服务所需的所有解决方案。Spring Cloud基于Spring Boot, 使得开发部署极其简单。

说说RPC和SOA、SOAP、REST的区别吧

1、REST

可以看着是HTTP协议的一种直接应用,默认基于JSON作为传输格式,使用简单,学习成本低效率高,但是安全性较低。

2、SOAP

SOAP是一种数据交换协议规范,是一种轻量的,简单的基于XML的协议的规范,而SOAP可以看着是一个重量级的协议,基于XML,SOAP在安全方面是通过使用XML-Secuity和XML-Signature两个规范组成了WS-Security来实现安全控制的。

主要的优点是:易用,灵活,跨语言,跨平台

3、SOA

SOA是一种粗粒度,松耦合服务架构,服务之间通过简单,精确定义接口进行通讯,不涉及底层编程接口和通讯模型,SOA可以看作是B/S模型,XML/Web Service技术之后的自然延伸。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值