1、微服务的定义
将一个单体应用拆分成一组微小的服务组件,每个微小的服务组件运行在自己的进程上,组件之间通过如RESTful API这样的轻量级机制进行交互,这些服务以业务能力为核心,用自动化部署机制独立部署,另外,这些服务可以用不同的语言进行研发,用不同技术来存储数据。
通过以上的定义描述,我们可以基本确定给出微服务的节特征:
- 在分布式环境中,将单体应用拆分为一系列服务,共同组成整个系统。
- 每个服务都轻量级,单独部署,运行在自己的进程中。
- 每个微服务注重自己的核心能力的开发,微服务组件之间采用轻量级通信方式进行通信,包括但不限于RESTful API。
- 按照业务边界进行划分。
- 微服务是一种编程架构思想,有不同的语言实现。
2、微服务架构设计需要考虑的问题
用微服务来进行实践到生产项目中,首先要考虑一些问题。比如下图的微服务业务架构:
在上图图表展示的架构图中,我们假设将业务商户服务A、订单服务B和产品服务C分别拆分为一个微服务应用,单独进行部署。此时,我们面临很多要可能出现的问题要解决,比如: