前奏
1. 什么是微服务?
微服务化的核心就是将传统的一站式应用,根据业务拆分成一个一个的服务,彻底地去耦合,每一个微服务提供单个业务功能的服务,一个服务做一件事,从技术角度看就是一种小而独立的处理过程,类似进程概念,能够自行单独启动或销毁,拥有自己独立的数据库。
2014年由 Martin Fowler提出 ——参考文档
2. 微服务与微服务架构的区别
微服务强调的是一个个小的点;
微服务架构强调的是将一个大型单一应用拆分为一个个小的服务,是一种架构模式。
3. 微服务的优缺点
优点:
- 每个服务足够内聚,足够小(一般是同一类型的业务归为一个服务),代码容易理解;
- 是松耦合的
缺点:
- 复杂度大大增加
- 运维成本增加
- 系统部署依赖
- 增加服务之间的通信成本
- 数据一致性更难保证
4. 微服务技术栈有哪些?(多种技术的集合体)
- 服务开发
- 服务注册
- 服务配置
- 服务管理
- 服务负载均衡
- 服务监控
......
5. 为什么选择Spring cloud 作为微服务架构?
具有整体解决方案,框架成熟
Spring cloud
1. 是什么
Spring Cloud=分布式微服务架构下的一站式解决方案,是各个微服务架构落地技术的集合体,俗称微服务全家桶。 (Spring Cloud 基于Spring Boot 提供了一整套微服务解决方案,包括服务注册与发现,配置中心,全链路监控,服务网关,负载均衡,熔断器等组件)
2. Spring Cloud和 Spring Boot 区别,什么关系
- 存在依赖关系(boot可以离开cloud 独立使用开发项目,但是cloud离不开boot)
- Spring boot专注于快速方便的开发单个个体微服务。
- Spring Cloud是关注全局的微服务协调整理治理框架,它将Spring Boot开发的一个个单体微服务整合并且管理起来,为各个微服务之间提供一整套的服务。
3. spring cloud与dubbo的区别
- 服务之间 spring cloud 是采用轻量级的通信机制互相沟通(通常是基于HTTP的RESTful API)
- dubbo 是采用 RPC