学科分类
目录
Spring Cloud

微服务架构

从单体架构到SOA架构,我们可以知道的是,系统中的模块与模块之间直接相互访问时或某个模块本身的错误都有可能影响整个系统的使用,在大数据以及高并发的环境下,系统架构面对更加严苛的挑战,为解决这些问题,微服务就诞生了。

微服务的基本思想在于考虑围绕着业务领域组件来创建应用,这些应用可独立地进行开发、管理和部署。在分散的组件中使用微服务云架构和平台,使部署、管理和服务功能交互变得更加简单。

微服务架构是一种将单应用程序作为一套小型服务开发的方法,每种应用程序都在其自己的进程中运行,并与轻量级机制(通常是HTTP资源的API)进行通信。这些服务是围绕业务功能构建的,可以通过全自动部署机制进行独立部署。服务的集中化管理是最少的,它们可以使用不同的编程语言编写程序、使用不同的存储计算存储数据数据。对于前面提到的进销存系统来说,如果使用微服务架构来开发,可以采用如图1所示的架构。

图1 微服务架构

从图1中可以看出,微服务架构中每个服务都有自己的独立的数据库,数据库之间没有任何联系,这样的好处是,随着业务的不断扩张,服务与服务不需要提供数据库集成,而是提供API接口相互调用。数据库的独立使得系统维护变得简单,性能明显提高,迁移也比较方便。数据库的存储技术不仅仅是关系型数据库,非关系型数据库的应用也比较广泛,例如MongoDB,Redis,他们都有着良好的读写性能,一个典型的微服务系统,各个服务的数据库可能都不同,每个服务所使用的数据存储技术可以根据业务需求来选择。

微服务是直接通过HTTP协议进行通信的,也可以采用消息队列来通信,如RabbitMQ,Kafka等进行通信,通过采用不同的编程语言,使用不同的存储技术,自动化部署减少人为控制,降低出错概率。

点击此处
隐藏目录