1.什么是微服务?
微服务是单一职责的应用程序,相比传统的应用程序分的更细,更利于迭代开发和代码维护。
2.微服务之间是如何通信的?
同步:Dubbo是通过rpc,而spring cloud 是通过rest 风格的 http协议
异步:消息队列例如rocket mq , kafka
3.spring cloud 和 dubbo 的 区别?
最大的区别是通信方式,前者基于http,后者是基于rpc。
rpc会比http快,rpc占用的带宽更小,更加轻量,dubbo 会存在代码级别的强依赖,而 spring cloud 则没有。
spring cloud 是一个生态,而 dubbo 提供的功能只是spring cloud 的子集提供的一些功能。
4.spring boot 和 spring cloud 的关系?
spring boot 是用于部署一个单体应用, 而spring cloud 是将 spring boot 的一个个服务组合并管理起来。
spring boot 可以离开spring cloud 独立运行,而spring cloud则不能离开spring boot运行。
5.什么是服务熔断,什么 是服务降级?
对于如下的场景:有A->B->C->D 有这样的服务调用链,假设C服务崩了,那么A服务这边的线程就会一直等待,因此在C服务崩了或者发生异常时,可以通过服务熔断来做,例如在发生异常时可以返回一个默认的返回值。
服务降级: 假设有A,B ,C 3个服务,假设A,B 服务的访问量很大,而C服务访问的请求很少,可以将C下线,多余的资源可以让出让A,B服务来用,但是将C下线会使得,请求访问C服务出错,可以通过服务降级让用户访问不出错,也即访问返回默认值。
6.微服务的优缺点?
优点:将业务进行了拆分,业务更加单一化,便于快速开发。
缺点:微服务变多了,就需要服务治理,运维的成本变大了。
7.eureka和zookeeper的区别?
eureka 是无中心化的,zookeeper有leader节点,是有中心化的,eureka满足AP原则,zookeeper是CP原则,zookeeper在leader节点发生故障时会停止提供服务,直到leader节点重新被选举。
8.微服务的技术栈?
spring cloud netflix 的五大神兽zuul, ribbon,feign, eureka, hystrix
文章评论