什么是微服务架构
简单说,微服务是系统架构上的一种设计风格,它的主旨是将一个原本独立的系统拆分成多个小型服务,这些小型服务在各自的进程中运行,服务与服务之间通过HTTP的RESTful API进行通信.
比如说一个商城,可以将购买流程拆分成 登陆 选择商品 下单 商品发货 订单完成 等多个服务.被拆分的每个服务都围绕系统中的某一项或者耦合度较高的业务来构建的,并且每个服务都维护着自身的数据存储,业务开发,测试以及独立的部署机制.有了轻量级的通信协议做基础所以每个服务可以用不同的语言开发.
微服务和分布式的区别
分布式是将一个大的系统划分为多个业务模块,分别部署到不同的机器上,各个业务模块之间通过接口进行数据交互.区别分布式的方式是根据不同机器不同业务.微服务与分布式的细微差别是,微服务的应用不一定是分散在多个服务器上,他也可以是同一个服务器.
与单体架构的区别
在传统的系统架构中,一个系统大致分为三部分:数据库,服务端,前端.为了应对不同的业务,我们将业务分为不同的业务模块,同时随着移动端设备的进步,前端展示形式已经不局限于web形式这对于后端向前端接口的支持,会需要更多的接口模块,在加上越来越多的业务需求使得单体应用越来越臃肿.
这个时候单体应用的问题就凸显出来:
- 由于单体系统部署在一个进程,往往我们修改了一个很小的功能 然后部署上线这个时候就会影响其他业务模块.
- 由于单体这些模块的使用场景,并发量,消耗的资源类型各不相同但是对资源的利用又互相影响,使得我们对各个业务模块的容量很难给出较为准确的评估,使得维护成本变大且越来越难以控制.
Spring Cloud简介
Spring Cloud是一个基于Spring Boot实现的微服务架构开发工具. 它为微服务架构中涉及的配置管理,服务治理,断路器,智能路由,微代理,控制总线,全局锁,决策竞选,分布式会话和集群状态管理等操作提供了一种简单的开发方式.