1.什么是微服务?

  微服务通俗来讲就是将代码组件化,把一个软件的各个服务分隔开来,方便代码的复用。

2.微服务之间如何独立通讯的?

  同步通信:dubbo通过 RPC 远程过程调用、springcloud通过 REST接口json调用等。
  异步:消息队列,如:RabbitMq、ActiveMq、Kafka 等。
3.SpringCloud 和Dubbo 有什么区别?

  (1)背景不同

  Dubbo,是阿里巴巴服务化治理的核心框架,并被广泛应用于阿里巴巴集团的各成员站点。

 SpringCloud 从命名我们就可以知道,它是Spring Source的产物.

  (2)社区活跃度不同

在社区活跃度上,Spring Cloud毋庸置疑的优于Dubbo,这对于没有大量精力与财力维护这部分开源内容的团队来说,Spring Cloud会是更优的选择。

(3)架构完整度

关于微服务

(4)难易程度

SpringCloud相比Dubbo 来说简单了不少,所以如果想快速进入微服务的学习,推荐选择SpringCloud.

4.什么是熔断机制?

  与电路中的熔断相同,当出现错误时,及时断电。用于微服务,则当我们多个服务中,部分服务出现错误时,我们应该及时切断这些错误的服务,从而避免"雪崩",导致整个程序都进入拥塞错误的状态。

其中Spring Cloud Hystrix 就为我们提供了熔断的功能。

(1)熔断关闭状态(Closed)

服务没有故障时,熔断器所处的状态,对调用方的调用不做任何限制。

(2)熔断开启状态(Open)

在固定时间窗口内(Hystrix默认是10秒),接口调用出错比率达到一个阈值(Hystrix默认为50%),会进入熔断开启状态。进入熔断状态后,后续对该服务接口的调用不再经过网络,直接执行本地的fallback方法。

(3)半熔断状态(Half-Open)

在进入熔断开启状态一段时间之后(Hystrix默认是5秒),熔断器会进入半熔断状态。所谓半熔断就是尝试恢复服务调用,允许有限的流量调用该服务,并监控调用成功率。如果成功率达到预期,则说明服务已恢复,进入熔断关闭状态;如果成功率仍旧很低,则重新进入熔断关闭状态。

相关文章: