微服务概念
定义
- 维基上对其定义为:一种软件开发技术- 面向服务的体系结构(SOA)架构样式的一种变体,它提倡将单一应用程序划分成一组小的服务,服务之间互相协调、互相配合,为用户提供最终价值。
- 每个服务运行在其独立的进程中,服务与服务间采用轻量级的通信机制互相沟通(通常是基于HTTP的RESTful API)。每个服务都围绕着具体业务进行构建,并且能够独立地部署到生产环境、类生产环境等。
- 另外,应尽量避免统一的、集中式的服务管理机制,对具体的一个服务而言,应根据上下文,选择合适的语言、工具对其进行构建。
微服务特性
与单体应用的区别
形象的一张图
Spring Cloud
微服务的落地实现需要很多功能进行组合,Spring Cloud提供了一个解决微服务架构实施的综合性框架;
图中的Apps就可以看做一个一个的服务
而其他功能比如API网关,配置中心,服务注册与发现等功能则需要在服务外提供。
Spring Cloud则作为一个解决微服务架构实施的综合性解决框架出现
微服务可能需要的组件功能
Spring Cloud整合了诸多被广泛实践和证明过的框架作为实施的基础部件,又在该体系基础上创建了一些非常优秀的边缘组件
SpringCloud作为分布式微服务架构的一站式解决方案,是多种微服务架构落地技术的集合体。
落地实现
微服务架构示例图
Spring Cloud版本
SpringCloud版本采用了名称而非版本号的命名,这些版本的名字采用了伦敦地铁站的名字,根据字母表的顺序来对应版本时间顺序。例如Angel是第一个版本, Brixton是第二个版本。
更详细的版本对应关系