1.什么是微服务?
微服务是一种架构的风格,提倡将单一应用程序划分成一组小的服务,每个服务都是一个独立的进程。
单机版
分布式
微服务
2.微服务之前是如何通信的?
dubbo rpc
cloud restful
3.spring cloud 和 dubbo 有哪些区别?
4.spring cloud 和 spring boot ,你是怎么理解它们的?
5.什么是服务熔断,什么是服务降级?
6.微服务的优缺点分别是什么?
优点:
1.每个服务足够内聚,还够小,代码容易理解,这样能够聚焦一个指定的业务功能或业务需求
2.开发简单,开发效率高,一个服务可能就是专一的只干一件事
3.微服务能够被小团队单独开发,这个小团队是2-5人的开发人员组成
4.微服务是松耦合的是有功能意义的服务,无论是开发阶段或部署阶段都是独立的
5.微服务可以使用不同的语言开发
6.易于和第三方集成,微服务允许容易且灵活的方式集成自动部署,通过持续集成工具,如jenkins,hudson。
7.每个微服务都有自己的存储能力,可以有自己的数据库,也可以有统一的数据库
缺点:
1.开发人员要处理分布式系统的复杂性
2.多服务运维难度随着服务的增加,运维的压力也在增大
3.系统部署依赖
4.服务间通信成本
5.数据一致性
6.系统集成测试
7.性能监控
7.你所知道的微服务技术栈有哪些,请列举1-2
微服务条目 | 落地技术 |
---|---|
服务开发 | springboot spring springmvc |
服务注册与发现 | Eureka Consul Zookeeper |
服务熔断器 | Hystrix Envoy |
负载均衡 | Ribbon Nginx |
服务接口调用(客户端调用服务的简化工具) | Fegin |
消息队列 | Kafka RabbitMq ActiveMq |
服务配置中心管理 | SpringCloudConfig Chef |
服务路由 | Zuul |
服务监控 | Zabbix Nagios Metrics Spectator |
服务调用 | Rest RPC gRpc |
链路追踪 | Zipkin Braw Papper |
服务部署 | Docker OpenStack Kubernetes |
8. eureka 和 zookeeper都可以提供服务注册与发现的功能,两者有什么区别?