什么是微服务
马丁福勒对微服务的描述.png译:
微服务是一种软件架构的风格,从来都不是一个框架!微服务架构风格是一种将一个单一应用程序开发为一组小型服务的方法,每个服务运行在自己的进程中,服务间通信采用轻量级通信机制(通常用HTTP资源API)。这些服务围绕业务能力构建并且可通过全自动部署机制独立部署。这些服务共用一个最小型的集中式的管理,服务可用不同的语言开发,使用不同的数据存储技术。
微服务特性的总结:
- 每个微服务可以独立的允许在自己的进程里面;
- 一系列独立运行的微服务共同构建起整个系统;
- 每个服务为独立的业务开发,一个微服务只关注某个特定的功能,例如订单管理,用户管理,支付管理等;
- 可以使用不同的语言与数据存储技术
- 微服务之间通过轻量的通信机制进行通信,例如通过REST API进行调用;
- 全自动的部署机制;
微服务的优缺点
优点:
- 单个服务更易于开发和维护
- 单个微服务启动更快
- 局部修改容易部署
- 技术栈不受限
- 按需伸缩
缺点:
- 运维要求高
- 分布式固有的复杂性
- 重复劳动
单体架构和微服务之间的区别
单体架构和微服务的区别.png什么是spring cloud ?
Spring Cloud是一个基千Spring Boot实现的微服务架构开发工具。它为微服务架构中涉及的配置管理、服务治理、断路器、智能路由、微代理、控制总线、全局锁、决策竞选、分布式会话和集群状态管理等操作提供了一种简单的开发方式。Spring Cloud的诞生并不是为了解决微服务中的某一个问题,而是提供了一套解决微服务架构实施的综合性解决方案。
Spring Cloud是一个由各个独立项目组成的综合项目,每个独立项目有着不同的发布节奏,为了管理每个版本的子项目清单,避免Spring Cloud的版本号与其子项目的版本号相混淆,没有采用版本号的方式,而是通过命名的方式。这些版本的名字采用了伦敦地铁站的名字,根据字母表的顺序来对应版本时间顺序。比如”Angel”是Spring Cloud的第一个发行版名称, “Brixton”是Spring Cloud的第二个发行版名称。当一个版本的Spring Cloud项目的发布内容积累到临界点或者一个严重bug解决可用后,就会发布一个”service releases”版本,简称SRX版本,其中X是一个递增的数字,所以Brixton.SR5就是Brixton的第5个Release版本。
版本兼容性
- Greenwich builds and works with Spring Boot 2.1.x, and is not expected to work with Spring Boot 1.5.x. (Greenwich 应该与spring boot 2.1.x版本的使用)
官网兼容示例:
cloud官网boot和cloud的兼容关系.png学习版本
- spring boot 2.1.10.RELEASE
- spring cloud Greenwich.SR3
本文参考文章
https://mrbird.cc/Spring-Cloud%20and%20MicroService.html
网友评论