java面试题整理《微服务篇》七

尚学堂给同学们带来全新的Java300集课程啦!java零基础小白自学Java必备优质教程_手把手图解学习Java,让学习成为一种享受_哔哩哔哩_bilibiliicon-default.png?t=M5H6https://www.bilibili.com/video/BV1qL411u7eE?spm_id_from=333.337.search-card.all.click&vd_source=f8320e19b5b89ca40847ceb3ae450db4

分布式微服务开发时的问题?

系统开销:网络问题,延迟开销,带宽问题,安全问题。

性能问题:由于各种运营开销导致的性能问题

服务发现:服务发现工具管理群集中的流程和服务如何查找和互相交谈。它涉及一个服务目录,在该目录中注册服务,然后能够查找并连接到该目录中的服务。

冗余问题:分布式系统中的冗余问题。

负载均衡:负载平衡改善跨多个计算资源的工作负荷,诸如计算机,计算机集群,网络链路,中央处理单元,或磁盘驱动器的分布。

SpringCloud由什么组成?

Spring Cloud Eureka:服务注册与发现,包含服务注册中心,服务注册与发现机制的实现。

Spring Cloud Zuul:服务网关,提供智能路由,访问过滤功能

Spring Cloud Ribbon:客户端负载均衡的服务调用组件

Spring Cloud Feign:服务调用,给予Ribbon和Hystrix的声明式服务调用组件

Spring Cloud Hystrix:容错管理组件,实现断路器模式,帮助服务依赖中出现的延迟和为故障提供强大的容错能力。(熔断、断路器,容错)

Spring Cloud Config:分布式统一配置管理

什么是Eureka?

Eureka服务注册中心,专注于微服务的服务注册与发现。

服务注册:每个服务都向 Eureka登记自己提供服务的元数据(服务的jp地址、端口号、版本号、通信协议等)。Eureka将各个服务维护在了一个服务清单中(双层Map,Map<服务名,Map<实例名,服务地址+端口>>)。同时对服务维持心跳,剔除不可用的服务, Eureka集群各节点相互注册每个实例中都有一样的服务清单。

服务发现:Eureka注册的服务之间调用不需要指定服务地址,而是通过服务名向注册中心咨询,并获取所有服务实例清单(缓存到本地),然后实现服务的请求访问。

Eureka集群(实现高可用AP),注册多个Eureka节点,然后把SpringCloud服务互相注册,客户端从Eureka获取信息时,按照Eureka的顺序来访问。这些节点都是平等的,当客户端向某一个节点注册时如果发现连接失败,会自动切换到其他节点。只要还有一台节点存在,服务就能正常工作(高可用),但是可能查询的信息不是最新的(不保证强一致性)。

Eureka的自我保护模式:

Eureka的客户端将其连接到Eureka的服务端中,并且保持心跳,这样工作人员可以通过Eureka的服务端来监控各个微服务是否运行正常。如果Eureka Server在一定时间内没有接收到某个微服务实例的心跳,Eureka Server将会注销该实例(默认90秒)。

当Eureka发现85%以上的服务都没有心跳的话,Eureka 服务端就会认为自己的网络出问题了,进入自我保护模式,在该模式下Eureka 服务端会保护服务注册表中的信息,不在删除注册表中的数据,当网络故障恢复后,Eureka 服务端节点会自动退出自我保护模式(期间Eureka的客户端也会缓存服务信息)。

你可能感兴趣的:(java,java,微服务,spring,cloud)