微服务具备的特性:
1、每个微服务可独立运行在自己的进程里
2、一系列独立运行的微服务共同构建起整个系统
3、每个服务为独立的业务开发,一个微服务只关注某个特定的的功能模块
4、微服务之间通过一些轻量的通信机制进行通信,例如通过RESTFUL API进行调用
5、可以使用不用的语言与数据存储技术
6、全自动部署机制
微服务架构的优点:
1、易于开发和维护
2、单个微服务启动较快
3、局部修改容易部署
4、技术栈不受限
5、按需伸缩
微服务面临的挑战:
1、运维要求高
2、分布式固有的复杂性
3、接口调整成本高
4、重复劳动
微服务设计原则:
1、单一职责:只应关注整个系统功能中单独、有界限的一部分
2、服务自治原则:每个微服务应具备独立的业务能力、依赖和运行环境
3、轻量级通信机制:微服务之间应该通过轻量级的通信机制进行交互
4、微服务粒度:使用合理的粒度划分微服务
Spring Cloud 特点
1、约定优于配置
2、适用于各种环境,开发和部署在PC server或各种云环境
3、隐藏了组建的复杂性,并提供了声明式,无XML配置的方式
4、轻量级的组建,整合的组件大多是比较轻量
5、组件丰富,功能齐全,提供了类似配置管理、服务发现、断路器、微服务网关等
6、选型中立、丰富,支持使用Zookeeper、Eureka或Consul实现服务发现
7、灵活,组成部分是解耦的,开发可按需求灵活挑选技术选型
Spring Cloud版本发布记录查询:https://github.com/spring-cloud/spring-cloud-release/releases
Spring Cloud版本演进计划:https://github.com/spring-cloud/spring-cloud-release/milestones