1.什么是微服务?
将传统的一站式应用,根据业务拆分成一个个小应用(微服务,是一个独立的进程),彻底去耦合,一个服务作一件事。
2.springCloud和Dubbo有哪些区别
a.通信机制不同:doubo采用RPC远程过程调用,而cloud是采用http的rest api调用
b.spring cloud整机,性能有保证;dubbo需要自己组装,组装的机子更自由
c.dubbo在2012年停更,2017年才开始重新启用,所以老系统用dubbo,新系统用cloud。
3.谈谈你对springboot与springCloud的理解
a.boot专注于方便的开发单个微服务应用,而cloud专注于所有微服务间的协调管理,将一个个的服务整合并管理起来,如果boot是孙悟空而cloud就是整本西游记
b.boot可独立开发项目,而cloud就不能离开boot,它依赖boot来实现。
4.微服务的优缺点是什么?说下你在项目开发中遇到的坑?
优点:a.每个服务高内聚,功能单一,所以开发开发效率高且简单; b.易于被开发人员理解和维护;
缺点:a.随着服务数量的增加,运维压力会增大;b.服务间通信成本高.。
5.你所知道的微服务技术栈有哪些?
springboot,spring,springMVC--用于服务开发
阿里的diamond--服务配置与管理
zookeeper--服务注册与发现
dubbo--服务调用
hystrix--服务熔断器
nginx--负载均衡
kafka--消息队列
docker--服务部署
6.eureka和zookeeper都可以提供服务注册与发现的功能,两者有什么区别?
ZooKeeper有Leader和Follower角色,采用过半数存活原则。
Eureka各个节点平等,采用自我保护机制解决分区问题。