什么是微服务
微服务是系统架构上的一种设计风格,它的主旨是将一个原本独立的系统拆分成多个小型服务,被拆分成的每一个小型服务都围绕着系统中的某一项或一些耦合度较高的业务功能进行构建,这些小型服务都在各自独立的进程中运行,服务之间通过基于HTTP的RESTful API进行通行协作。并且每个服务都维护着自身的数据存储、业务开发、自动化测试案例以及独立部署机制。由于有了轻量级的通信协作基础,所以这些微服务可以使用不同的语言来编写。
什么是Spring Cloud?
Spring Cloud是一个基于Spring Boot实现的微服务架构开发工具。它为微服务架构中涉及到的服务治理、负载均衡、容错保护、服务调用、网关服务、分布式配置中心、消息总线、消息驱动、服务跟踪等操作提供了一种简单的开发方式。
微服务与单体架构的区别
在业务发展初期,单体架构在开发、测试、部署的时候更加方便快捷,管理成本低。
但是随着业务的发展,业务模块不断增加,单体应用变得越来越臃肿,代码冗余越来越多,随便修改一个小功能可能会影响其他功能。因为单体架构部署在一个进程中,系统功能模块消耗的资源又相互影响,很难对各个业务模块在系统资源消耗上给出准确的评估,所以性能瓶颈越来越明显。同时随着移动APP的进步,前端的展示形式不仅仅限于Web形式,系统后端向前端的支持需要更多的接口。
为了解决这些问题,微服务架构诞生了。它将系统的功能模块拆分成多个服务,部署在独立的进程中,可以准确的评估每个服务的性能。