常见面试题04

简介: 本文介绍了微服务与单体架构的适用场景、常见负载均衡算法、Nacos注册中心的心跳机制及其与Eureka的异同,还讲解了Spring Cloud Gateway的实现原理及项目中使用的远程调用技术如OpenFeign和Dubbo。内容适用于技术面试与架构设计参考。

微服务的好处?一定比单体好吗?

面试官这个不一定,技术还是为业务服务的,简单的业务单体肯定更好,他没有分布式事务、服务雪崩等一系列服务治理的问题,并且部署、维护成本低。微服务更适合一些表模型复杂、业务链路长的场景,这样虽然会带来一些服务治理问题,但是也降低了服务之间的耦合,有利于后续的服务拓展。

常见的负载均衡算法

有轮询、加权轮询、权重、响应时间、随机、区域可用等吧,我们项目中一般都是轮询,它的意思就是当有多台机器的时候,就一个一个轮着来。

Nacos注册中心的心跳机制

Nacos支持服务端主动检测提供者状态:临时实例采用心跳模式,非临时实例采用主动检测模式临时实例心跳不正常会被剔除,非临时实例则不会被剔除。

Nacos与eureka的共同点

  1. 都支持服务注册和服务拉取
  2. 都支持服务提供者心跳方式做健康检测

Nacos与Eureka的区别

  1. Nacos支持服务端主动检测提供者状态:临时实例采用心跳模式,非临时实例采用主动检测模式
  2. 临时实例心跳不正常会被剔除,非临时实例则不会被剔除
  3. Nacos支持服务列表变更的消息推送模式,服务列表更新更及时
  4. Nacos集群默认采用AP方式,当集群中存在非临时实例时,采用CP模式;Eureka采用AP方式

GateWay实现原理

Spring Cloud Gateway 使用了 Spring WebFlux 非阻塞网络框架,网络层默认使用了高性能非阻塞的 Netty Server。

Gateway 在启动时会创建 Netty Server,由它接收来自 Client 的请求。收到请求后根据路由的匹配条件找到第一个满足条件的路由,然后请求在被该路由配置的过滤器处理后由 Netty Client 转到目标服务。服务返回响应后会再次被过滤器处理,最后返回给 Client。

你们项目中的远程调用用的什么技术

我们项目使用的是SpringCloud的组件OpenFeign,他底层就是一个http请求,之前项目也接触过像Dubbo这种远程调用。

目录
相关文章
|
存储 消息中间件 负载均衡
深入理解RocketMQ广播消费
这篇文章我们聊聊广播消费,因为广播消费在某些场景下真的有奇效。笔者会从基础概念、实现机制、实战案例、注意事项四个方面一一展开,希望能帮助到大家。
深入理解RocketMQ广播消费
|
3月前
|
JavaScript Java 关系型数据库
基于springboot的快递分拣管理系统
本系统基于SpringBoot框架,结合Java、MySQL与Vue技术,构建智能化快递分拣管理平台。通过自动化识别、精准分拣与实时跟踪,提升分拣效率与准确性,降低人力成本,推动快递行业向智能化、高效化转型,助力电商物流高质量发展。
|
3月前
|
消息中间件 存储 Java
常见面试题02
本内容介绍MQ的应用场景、交换机模式、消息不丢失机制、延迟消息处理及消息挤压解决方案,涵盖RabbitMQ的确认机制、持久化、消费者配置及实际项目应用。
129 1
|
2月前
|
NoSQL 算法 安全
常见面试题22
Redis提供RDB和AOF两种持久化方式,RDB快照高效节省空间但可能丢数据,AOF日志安全但文件较大。支持混合使用以提升可靠性。内存淘汰策略包括LRU、LFU、随机等8种,适用于不同场景。过期键采用惰性删除与周期删除结合的方式。Redis核心操作为单线程,4.0起引入后台线程,6.0支持多线程IO,因纯内存操作、无锁竞争和I/O多路复用而高性能。
141 8
|
缓存 Linux 开发工具
CentOS 7- 配置阿里镜像源
阿里镜像官方地址http://mirrors.aliyun.com/ 1、点击官方提供的相应系统的帮助 :2、查看不同版本的系统操作: 下载源1、安装wget yum install -y wget2、下载CentOS 7的repo文件wget -O /etc/yum.
262115 0
|
2月前
|
NoSQL 中间件 数据库
常见面试题23
Redis红锁通过多节点加锁解决主从故障导致的锁失效问题,但Redisson实现存在缺陷,不建议使用。MQ用于异步削峰、系统解耦,适用于数据同步、短信通知等场景。通过生产者确认、消费者重试等机制保障消息可靠传输与处理。
69 2
|
2月前
|
数据库 微服务
常见面试题19
BASE理论提出“基本可用、软状态、最终一致性”,是分布式系统中对CAP定理的实践妥协。相比强一致的刚性事务(ACID),它属于柔性事务,强调高可用与最终一致,适用于Seata等分布式事务方案中的AT、TCC、SAGA模式,而非传统2PC的强一致性。
66 7
|
2月前
|
负载均衡 安全 应用服务中间件
常见面试题18
正向代理代表客户端发起请求,隐藏客户端身份,用于访问控制与隐私保护;反向代理代表服务器接收请求,实现负载均衡与安全防护;CDN通过全球节点加速内容分发;Nginx可作反向代理实现轮询、权重等负载均衡策略;CAP定理指出分布式系统无法同时满足一致性、可用性与分区容错性。
96 4
|
2月前
|
XML SQL Java
常见面试题15
Spring Boot配置优先级:命令行参数 > 系统属性 > application.properties > .yml > .yaml;自动配置基于@Import与条件注解,SpringBoot3使用xxx.imports替代spring.factories。自定义starter需分离starter与autoconfigure模块。MyBatis支持XML或注解映射结果集,参数传递可用@Param或直接传对象/Map。
132 4