微服务之Nacos、Eureka面试题

本文深入探讨了Eureka在服务注册与发现中的作用,详细解释了服务消费者如何选择服务提供者实例以及如何判断其健康状态。同时,介绍了Nacos的分级存储模型和环境隔离,对比分析了Nacos与Eureka的异同,并讨论了Nacos如何实现统一配置管理和高并发注册压力的应对策略。此外,文章还涵盖了负载均衡的实现、微服务请求耗时问题以及Nacos的配置共享优先级等内容。
摘要由CSDN通过智能技术生成

1、Eureka的作用是什么?如何使用?

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-4PECnMpX-1690425039437)(https://s3-us-west-2.amazonaws.com/secure.notion-static.com/bf0ae984-a77f-4815-923d-f867945bc4ea/Untitled.png)]

2、服务消费者如何得知服务提供者的实例地址?

  1. 服务提供者服务实例启动后,将自己的信息注册到eureka-server(Eureka服务端),这个叫服务注册
  2. eureka-server保存服务名称到服务实例地址列表的映射关系。
  3. 服务消费者根据服务名称,拉取实例地址列表,这个叫服务发现或服务拉取。

3、服务消费者如何从多个服务提供者实例中选择具体的实例?

  • 服务提供者从实例列表中利用负载均衡算法选中一个实例地址。
  • 向该实例地址发起远程调用

4、服务消费者如何得知某个服务提供者实例是否依然健康,是不是已经宕机?

  • 服务消费者会每隔一段时间(默认30秒)向eureka-server发起请求,报告自己的状态,成为心跳
  • 当超过一定时间没有发送心跳时,eureka-server会认为微服务实例故障,将该实例从服务列表中剔除
  • 服务提供者拉取服务时,就能将该故障实例排除了。

5、@LoadBalanced注解是怎么实现的负载均衡功能的?

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-JIIW4biX-1690425406915)(https://s3-us-west-2.amazonaws.com/secure.notion-static.com/6c88c9e8-a6dc-4d72-807b-3435a377de6e/Untitled.png)]

  • SpringCloud底层其实是利用了一个名为Ribbon的组件,来实现负载均衡功能的。具体流程如下:
    1. 底层采用了一个负载均衡拦截器,拦截我们的RestTemplate请求。
    2. RibbonLoadBalancerClient会从请求url中获取服务名称,也就是user-service。
    3. DynamicServerListLoadBalancer根据user-service到eureka拉取服务列表。
    4. eureka返回列表,localhost:8081、localhost:8082。
    5. IRule利用内置负载均衡规则,从列表中选择一个,例如localhost:8081。
    6. RibbonLoadBalancerClient修改请求地址,用localhost:8081替代user-service,得到http://localhost:8081/user/1, 发起真实请求。

探究:默认的负载均衡规则是什么?

ZoneAvoidanceRule:区域可用的服务器为基础进行服务器的选择。使用Zone对服务器进行分类,这个Zone可以理解为一个机房、一个机架等。而后再对Zone内的多个服务做轮询

探究:如何修改负载均衡规则?

  • 设置bean:

    @Bean
    public IRule randomRule(){
         
        return new RandomRule();
    }
    
  • 配置文件方式(application.yml):

    user-service: # 给某个微服务配置负载均衡规则,这里是user-service服务
      ribbon:
        NFLoadBalancerRuleClassName: com.netflix.loadbalancer.RandomRule # 负载均衡规则
    
  • 2
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值