当前位置:   article > 正文

springcloud面试题_服务很多,客户端怎么访问

服务很多,客户端怎么访问

springcloud面试题汇总一、微服务架构四个核心问题?

1、服务很多,客户端怎么访问

2、这么多服务,服务之间如何通信

3、这么多服务,如何治理

4、服务挂了怎么办

springcloud面试题汇总二、微服务优缺点

优点

1、单一职责

2、每个服务足够内聚,足够下小,代码容易理解,这样能聚焦一个指定的业务功能或业务需求

3、开发简单,开发效率高,一个服务可能就是专一的干一件事

4、微服务能够被小团队单独开发,可以是2-5人组成

5、微服务是松耦合,是有功能意思的服务,无论是在开发解读那还是部署阶段都是独立

6、微服务能使用不同的语言开发

7、每个服务都是自己的存储能力

缺点

1、开发人员要处理分布式系统的复杂行

2、随着服务的增加,运费的压力也增大

3、系统部署依赖

4、服务间的通信成本

5、数据一致性

6、系统集成测试

7、性能监控

springcloud面试题汇总三、为什么要选择cloud做微服务架构

1、整体解决方案和框架成熟度

2、社区热度

3、可维护性

springcloud面试题汇总四、cloud深入了解

1、所有实体类必须实现序列化,传输汇报错误

2、热部署 spring-boot-devtools

3、请求接口 Get/postForObject4、RestTemplate{请求接口地址,参数,返回值类型}

5、需要通过bean把接口注入进去

 

springcloud面试题汇总五、Eureka注册中心

1、理念:Eureka:服务注入,显示当前已有的服务,自我保护机制:好死不如赖活着,宁可同时保留所有的服务,也不盲目的注销监看的服务,自我保护机制也可以关闭

2、client.getServices获取微服务列表,getInstances根据服务名字获取服务信息

3、CAP原则:c:强一致性,a:可用性,p:分区容错性,ca:单点集群,满足一致性,可用性的系统,通常可扩展性较差,ap:满足一致性,分区容错性的系统,通常性能不是特比高,cp:满足可用性,分区容错性的系统,通常可能对一致性要求低

4、ACID原则:a:原子性,c:一致性,I:隔离性,d:持久性

5、Zookeeper:保证cp原则:容忍注册中心返回几分钟以前的信息,但是不能容忍服务直接死掉,当master节点失去联系回重新选择master节点,选取时间过长,服务期间不能使用,

6、Eureka:保证ap原则:各个节点平等,其中一个节点死掉也会正常运行,只不过信息可能不是最新的,如果在15分钟内超过85%的节点没有正常心跳,会采取一下措施

a:不会从列表中移除

b:任然能够接受新服务的注册和查询请求,但是不会被同步到其他节点上

c:当前网络稳定时,单前实例新的注册信息会被同步到其他节点中

总结:Eureka可以很好的应对因网络故障导致的部分节点失去联系的情况,而不会像zookeeper那样使整个注册服务瘫痪

springcloud面试题汇总六、Ribbon负载均衡

1、cloud ribbon是基于netflix ribbon实现的一套客户端负载均衡工具,提供客户端的软件负载均衡算法,将netflix的中间层链接起来,配置项:丽娜姐超市,重试,ribbon会自动的帮你基于某种规则如(单轮询,随机链接),

2、ribbon能干嘛

将用户的请求平均分配到,多个服务上,从而达到系统的HA

3、常见的负载均衡软件,nginx,lvs

4、dubbo,springcloud中均给我提供了负载均衡,cloud的负载均衡算法可以自定义

5、依赖:cloud-starter-ribbon,cloud-starter-eureka

6、原先Eureka是指定服务链接,现在是指定服务名字

7、LoadBalanced 开启负载均衡

springcloud面试题汇总七、负载均衡类型

1、RoundRobinRule 轮询

2、RandomRule随机

3、AvailabilityFilteringRule 先过滤掉故障服务,对剩下的服务进行轮询

4、RetryRule 先按照轮询获取服务,如果服务获取失败,则会在指定时间内进行重试

5、负载均匀用法 @Configuration @Bean 外加算法

自己写的不能与主应用程序统计目录,因为会被@ComponentScan扫描到

6、RibbonClient(name="服务名称", configuration = 负载均衡算法类名.class)

springcloud面试题汇总7、随机服务源码

八、FeignClient(注入服务名,让别的服务能获取到你的方法)

Component FeignClient(vlaue="服务名")

启动类:@EnableFeignClients 扫描FeignClient @COmponentScan让所有的注解都生效

单体应用存在哪些问题。‘

  答:1)。代码结构混乱

              2)。开发效率降低,多人开发代码合并,修改一处逻辑,可能影响全部功能。

              3)。排查解决问题成本高。单体系统部署在一个进程内,我们修改了一个很小的功能,为了部署上线,可能会影响其他功能的运行。

              4)。扩展能力受限,有的模块是计算密集型的,需要强大的cpu,有的是io密集型的,需要更大的内存,这些模块部署在一起,不得不做出硬件上的选择。比如有的微服务,专门做图片的上传和下载,就比单体应用做上传和下载好。

              5)。阻碍技术创新,一直用单体应用,很多技术都限制死了,无法自由发挥。比如以前使用struts2,不能切换为springmvc。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小丑西瓜9/article/detail/141459
推荐阅读
相关标签
  

闽ICP备14008679号