2024JAVA面试题汇总

前景提要

是的,2024又开始找工作了,浅浅记录一下今年碰到的面试题~

一、Spring Cloud

1、eureka的cpa理论

先说CAP 定理
CAP 定理描述了在分布式系统中,无法同时满足一致性、可用性和分区容忍性三个要求,只能在其中选择两个。这三个要素的具体含义如下:

  • Consistency (一致性): 每次读取都能获得最近一次成功写入的结果,即所有节点上的数据在同一时刻是一致的。
  • Availability (可用性): 系统在任意时间都能响应读写请求,即使有部分节点发生故障,系统依然能够正常提供服务。
  • Partition Tolerance (分区容忍性): 系统能够在出现网络分区的情况下继续运行,节点之间可能无法通信,但系统仍然能够继续提供服务。

Eureka 的 CPA 策略
在 Eureka 的设计中,更倾向于保证 可用性 (Availability) 和 分区容忍性 (Partition Tolerance),在某些情况下会牺牲 一致性 (Consistency)。这意味着 Eureka 可能会在短时间内提供不一致的信息,以换取系统的高可用性和对网络分区的容忍。

  1. Availability (可用性)
    Eureka 服务器集群中的每个节点都可以独立处理客户端的服务注册、发现和续约请求,即使部分节点不可用,整个服务发现功能仍然可以继续运行。
    当客户端无法与 Eureka 服务器通信时,客户端会使用本地缓存的服务注册信息继续运行,这种机制进一步提高了系统的可用性。
  2. Partition Tolerance (分区容忍性)
    Eureka 能够容忍网络分区或节点故障。在网络分区的情况下,Eureka 服务器会继续接受客户端的请求,并在网络恢复后再同步数据。
    即使发生网络分区,Eureka 服务器也不会停止对外提供服务,确保系统的持续可用性。
  3. Consistency (一致性)
    为了保证高可用性,Eureka 在某些情况下可能会返回过期或不一致的服务实例信息。例如,当某个服务实例已经不可用,但由于网络分区或同步延迟,Eureka 可能还会返回该实例的地址。
    这种设计是为了在发生网络故障时,保证服务注册中心的高可用性和分区容忍性,但可能会出现短暂的服务注册信息不一致。

2、如果eureka节点挂了怎么办

如果 Eureka 节点挂了,可能会影响到注册到该节点的服务的可用性。在这种情况下,以下是一些常见的处理策略和建议:

  1. 多个 Eureka 实例
    集群部署:将 Eureka 部署为集群,运行多个 Eureka 实例。这样,即使一个节点宕机,其他节点仍然能够提供服务。
  2. 服务注册和发现
    客户端重试:配置服务客户端(如 Ribbon 或 Feign)使其能够自动尝试连接其他 Eureka 实例。
    时间间隔更新:增加服务的心跳间隔,减少对单个节点的依赖。
  3. 客户端缓存
    Eureka 客户端会在本地缓存注册的服务信息。如果 Eureka 节点挂掉,客户端仍然可以基于本地缓存正常工作一段时间,直到缓存过期。
  4. 健康检查
    确保系统有健康检查机制,及时发现并替换故障服务。
  5. 监控和告警
    使用监控工具(如 Prometheus、Grafana)来监控 Eureka 实例的状态,并设置告警通知,以便及时处理故障。
  6. 配置容错
    使用诸如 Hystrix 之类的熔断器模式,以便在服务不可用时能够优雅地降级。
  7. 备份机制
    定期备份 Eureka 的注册信息,以便在重启或恢复时能快速恢复。

项目相关

1、说一说你认为最能体现你技术的项目

可以从以下几个方面说:

  1. 项目背景
    项目名称和目的:介绍项目的名称及其实现的目标。
    技术栈:说明使用的技术栈,包括编程语言、框架、数据库等。
  2. 你的角色
    职责:阐述你在项目中承担的具体角色和责任。
    贡献:突出你在项目中的重要贡献,比如设计、编码、解决技术难题等。
  3. 技术挑战
    面对的挑战:描述在项目中遇到的技术难题(如性能瓶颈、高并发处理、架构设计等)。
    解决方案:分享你是如何解决这些问题的,应用了哪些技术或工具。
  4. 项目成果
    结果:讲述项目的最终成果,如提升了性能、用户增长等。
    学习:分享你从这个项目中学到了什么,以及如何提升了自己的技能。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值