这20道微服务面试题,阿里、字节、美团、百度面试都问了

本文列举了20道在阿里、字节、美团、百度等公司面试中常问的微服务相关问题,涵盖微服务定义、通信方式、SpringCloud与Dubbo的区别、服务治理策略等核心知识点,旨在帮助面试者准备微服务面试。
摘要由CSDN通过智能技术生成

文章目录

1、什么是微服务?

2、微服务之间是如何通讯的?

3、springcloud 与dubbo有哪些区别?

4、请谈谈对SpringBoot 和SpringCloud的理解

5、分布式系统面临的问题

6、什么是服务熔断,什么是服务降级

7、微服务的优缺点分别是什么?说下你在项目开发中碰到的坑?

8、你所知道的微服务技术栈有哪些?请列举一二

9、什么是 Eureka服务注册与发现

10、Eureka的基本架构是什么?

11、作为服务注册中心,Eureka比Zookeeper好在哪里?

12、什么是 Ribbon负载均衡

13、Ribbon负载均衡能干嘛?

14、什么是 Feign 负载均衡

15、Feign 能干什么

16、什么是 Hystrix断路器

17、Hystrix断路器能干嘛?

18、什么是 zuul路由网关

19、什么是SpringCloud Config分布式配置中心

20、分布式配置中心能干嘛?

image.png

答案解析

1、什么是微服务?

微服务架构是一种架构模式或者说是一种架构风格,它提倡将单一应用程序划分成一组小的服务,每个服务运行在其独立的自己的进程中,服务之间互相协调、互相配合,为用户提供最终价值。 服务之间采用轻量级的通信机制互相沟通(通常是基于HTTP的RESTful API)。每个服务都围绕着具体业务进行构建,并且能够被独立地部署到生产环境、类生产环境等。另外,应尽量避免统一的、集中式的服务管理机制,对具体的一个服务而言,应根据业务上下文,选择合适的语言、工具对其进行构建,可以有一个非常轻量级的集中式管理来协调这些服务,可以使用不同的语言来编写服务,也可以使用不同的数据存储。

从技术维度来说:

微服务化的核心就是将传统的一站式应用,根据业务拆分成一个一个的服务,彻底地去耦合,每一个微服务提供单个业务功能的服务,一个服务做一件事,从技术角度看就是一种小而独立的处理过程,类似进程概念,能够自行单独启动或销毁,拥有自己独立的数据库。

2、微服务之间是如何通讯的?

① 远程过程调用(Remote Procedure Invocation)

直接通过远程过程调用来访问别的service。

示例:REST、gRPC、Apache、Thrift

优点:

简单,常见。因为没有中间件代理,系统更简单

缺点:

只支持请求/响应的模式,不支持别的,比如通知、请求/异步响应、发布/订阅、发布/异步响应

降低了可用性,因为客户端和服务端在请求过程中必须都是可用的

② 消息

使用异步消息来做服务间通信。服务间通过消息管道来交换消息,从而通信。

示例:Apache Kafka、RabbitMQ

优点:

把客户端和服务端解耦,更松耦合 提高可用性,因为消息中间件缓存了消息,直到消费者可以消费

支持很多通信机制比如通知、请求/异步响应、发布/订阅、发布/异步响应

缺点:

消息中间件有额外的复杂性

3、springcloud 与dubbo有哪些区别?

相同点:

SpringCloud 和Dubbo可以实现RPC远程调用框架,可以实现服务治理。

不同点:

SpringCloud是一套目前比较网站微服务框架了,整合了分布式常用解决方案遇到了问题注册中心Eureka、负载均衡器Ribbon ,客户端调用工具Rest和Feign,分布式配置中心Config,服务保护Hystrix,网关Zuul Gateway ,服务链路Zipkin,消息总线Bus等。

Dubbo内部实现功能没有SpringCloud强大(全家桶),只是实现服务治理,缺少分布式配置中心、网关、链路、总线等,如果需要用到这些组件,需要整合其他框架。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值