SpringCloud - 关于微服务
微服务
微服务的定义
微服务的完整定义来自Martin Fowler
的文章《 MicroServices》,作者是James Lewis
与Martin Fowler
,他们对微服务的定义如下所示:
译为:
微服务架构风格是一种将一个单一应用程序开发为一组小型服务
的方法,每个服务运行在自己的进程
中,服务间的通信采用轻量级通信机制
(通常用HTTP 资源 API)。 这些服务围绕业务能力构建
并且可以通过全自动化部署机制
独立部署。 这些服务共用一个最小型的集中式的管理
,服务可用不同的编程语言
编写并使用不同的数据存储技术
。
简单说来:
微服务是一种思想,符合这种思想的系统架构可以说是微服务,其将业务拆解成一个个小形态的服务,每个微服务仅关注完成一件任务。
微服务的特性
- 每个微服务可独立运行在自己的进程中
- 一系列独立运行的微服务共同构建起整个系统
- 每个服务为独立的业务开发,一个微服务值关注某个特定的功能
- 可使用不同的语言和数据存储技术
- 微服务之间通过轻量的通信机制进行通信,如
REST API
- 全自动部署机制
微服务的优点
- 单个服务更易于开发、维护
- 单个微服务启动较快
- 局部修改容易部署
- 技术栈不受限
- 按需伸缩
微服务的缺点
- 运维要求高
- 分布式固有的复杂性
- 重复劳动
微服务的适用场景
- 大型、复杂的项目
- 有快速迭代的需求
- 访问压力大
不适合微服务的场景
- 业务稳定
- 迭代周期长
Spring Cloud
Spring Cloud
是一个完整的微服务架构,提供了一系列开发微服务的工具
微服务工具概览: