springCloud、RabbitMQ、kafka常考面试题总结

本文总结了spring Cloud的优缺点、核心组件及其实现服务注册发现的方式。深入探讨了Eureka与Nacos的区别,并介绍了负载均衡策略。此外,还详细阐述了RabbitMQ和Kafka在消息传递、高可用性及避免消息丢失方面的知识,包括它们的使用场景、工作模式和保证消息顺序性的方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

spring Cloud的优缺点?

优点:

  1. 耦合度比较低,不会影响其他模块的开发
  2. 减轻团队成本,可以并行开发
  3. 微服务跨平台,可以使用任何一种语言开发

缺点:

  1. 部署比较麻烦
  2. 数据管理较麻烦
  3. 系统集成测试较麻烦

Spring cloud五大组件有哪些?

Eureka:注册中心

Ribbon:负载均衡

Feign:远程调用

Hystrix:服务熔断

Gateway:网关

什么是Eureka?

Eureka是服务注册中心,系统中的服务使用Eureka客户端将其注册到Eureka Service中,并且保持心跳,这样工作人员可以通过Eureka Service来监控各个微服务是否运行正常。

服务注册和服务发现是什么意思?Spring Cloud如何实现服务注册发现?

主要是三大功能:服务注册、服务发现、服务状态监控

服务注册:服务者把自己的信息注册到Eureka,由Eureka来保存这些信息,比如服务名称、端口等

服务发现:消费者向Eureka拉取服务列表信息,如果服务提供者有集群,则消费者就会利用负载均衡选择一个发起调用

服务监控:服务提供者每隔30秒向Eureka发送心跳,报告健康状态,如果Eureka服务90秒没有接收到心跳,将会从Eureka剔除

Nacos与Eureka的区别?

共同点:

Nacos与Eureka都支持服务注册和服务拉取,都支持服务提供者心跳方式做健康监测

区别:

  1. Nacos支持服务端主动检测提供者状态:临时实例采用心跳模式,非临时实例采用主动检测
  2. 临时实例心跳不正常会被剔除,非临时实例不会被剔除
  3. Nacos支持服务列表变更的消息推送模式,服务列表更新更及时

如何实现负载均衡?

在服务调用过程中负载均衡一般使用spring Cloud的Ribbon组件实现,Feign的底层已经集成了Ribbon,使用起来很简单

当发起远程调用时,Ribbon先从注册中心拉取服务地址列表,然后按照一定的路由策略选择一个服务发起调用,默认采用轮询策略

Ribbon负载均衡策略有哪些?

- RoundRobinRule:简单轮询服务列表来选择服务器

- WeightedResponseTimeRule:按照权重来选择服务器,响应时间越长,权重越小

- RandomRule:随机选择一个可用的服务器

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值