微服务相关面试题

1、什么是微服务

将传统的一站式应用,根据业务拆分成一个一个的服务,彻底的去耦合,每一个微服务提供单个业务功能的服务,一个服务做一件事

从技术角度看,就是一种小而独立的处理过程,类似进程概念,能够自行单独启动或销毁,拥有自己独立的数据库

每一个微服务都可以使用不同的语言编写服务,也可以使用不同的数据存储

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

3、Spring Cloud和Dubbo有哪些区别

①通讯机制不同,Dubbo是RPC,Cloud是Restful API;

②Dubbo不支持多语言,Cloud支持多语言

Cloud支持配置服务(Netflix Archaius和Spring Cloud Config)

Cloud支持服务调用链监控(Zuul)

⑤服务跟踪(SpringCloudSleuth)、消息总线(Spring Cloud Bus)、任务流(Spring Cloud Stream)、批量任务(Spring Cloud Task),以上这些Dubbo都不支持

4、对Spring boot和Spring Cloud的理解

Spring Cloud基于Spring boot提供了一套微服务解决方案,包括服务注册与发现,配置中心,全链路监控,服务网关,负载均衡,熔断器等组件,除了基于Netflix的开源组件做高度抽象封装之外,还有一些选型中立的开源组件。

SpringCloud利用Springboot的开发便利性巧妙的简化了分布式系统基础设施的开发,SpringCloud为开发人员提供了快速构建分布式系统的一些工具,包括配置管理、服务发现、断路器、路由、微代理、事件总线、全局锁、决策竞选、分布式会话等等,它们都可以利用Spring boot的开发风格做到一键启动和部署

Springboot并没有重复造轮子,它只是将各家公司开发的比较成熟,经得起实际考验的服务框架组合起来,通过Springboot风格进行再封装,屏蔽掉了复杂的配置和实现原理,最终给开发者留出了一套简单易懂,易部署和易维护的分布式系统开发工具包

Spring boot专注于快速方便的开发单个个体微服务

SpringCloud是关注全局的微服务协调治理框架,它将Spring boot开发的一个个单体微服务整合管理起来,为各个微服务之间提供配置管理、服务发现、断路器、路由、微代理、事件总线、全局锁、决策竞选、分布式会话等等集成服务

Springboot可以离开Spring Cloud独立使用开发项目,但是SpringCloud离不开Spring boot,属于依赖关系

5、什么是服务熔断?什么是服务降级?

6、微服务的优缺点是什么?说下你在项目中碰到的坑

优点:

每个服务足够内聚,足够小,代码容易理解,这样能聚焦一个指定的业务功能和业务需求

开发简单,开发效率提高,一个服务可能就是专一的只干一件事

能够被小团队单独开发

解耦合

能使用不同的语言开发

微服务只是业务逻辑的代码,不会和HTML、CSS或者其它界面组件混合

每个微服务都有自己的储存能力,可以有自己的数据库,也可以有统一的数据库

缺点:

开发人员要处理分布式系统的复杂性

多服务运维难度大

系统部署依赖

服务间通讯成本

数据一致性

系统继承测试

性能监控

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

微服务条目落地技术备注
服务开发Springboot、Spring、SpringMVC
服务配置与管理Netflix公司的Archaius、阿里的Diamond等
服务注册与发现Eureka、Consul、Zookeeper
服务调用Rest、RPC、gRPC
服务熔断器Hystric、Envoy等
负载均衡Ribbon、Nginx
服务接口调用(客户端调用服务的简化工具)Foreign
消息队列Kafka、Rabbit MQ、Active MQ
服务配置中心管理SpringCloudConfig、Chef等
服务路由(API网关)Zuul
服务监控Zabbix、Nagios、Metrics、Spectator等
全链路追踪Zipkin、Brave、Dapper等
服务部署Docker、OpenStack、Kubernetes等
数据流操作开发包SpringCloud Stream(封装与Redis、Rabbit、Kafka等发送接收消息)
事件消息总线Spring Cloud Bus

8、eureka和zookeeper都可以提供服务注册与发现的 功能,请说说两个的区别?

在著名的CAP理论中,一个分布式系统不可能同时满足C(一致性)、A(可用性)、P(分区容错性),由于分区容错性P在分布式系统中是必须要保证的,因此我们必须要在A和C之间权衡

Zookeeper保证的是CP,

Eureka保证的是AP

因此Eureka可以很好的应对因网络故障导致部分节点失去联系的情况,而不会像Zookeeper那样使整个注册服务瘫痪

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值