本任务采用微服务架构的设计原则,基于Spring Cloud微服务技术对大觅网项目进行架构设计。下面主要从四个维度对系统架构进行描述,分别为业务架构、应用架构、技术架构和数据库架构。
1.业务架构
业务架构是用来描述系统主要业务功能的架构。一般来说,确定系统的业务架构只需要回答一个问题:用户使用系统可以干什么。大觅网的业务架构如图1.15所示,分为四类业务,分别为用户业务、商品业务、订单业务以及支付业务。用户通过大觅网可以完成对这四类业务的操作。
2.应用架构
应用架构是用来描述系统应用结构的架构,通俗地讲,就是描述系统包含多少种类型的应用,以及应用之间关系的架构。大觅网的应用架构如图1.16所示。大觅网采用微服务架构对项目进行划分,划分后系统包含前端应用、网关应用、环境应用以及后端应用。其中,后端应用又可分为三类,分别为基础服务类应用、提供服务类应用、消费服务类应用。基础服务类应用包括本微服务架构的注册中心Eureka以及一些微服务管理类组件。提供服务类应用是微服务架构中的提供者,即提供接口供其他程序调用的程序。消费服务类应用就是调用提供者接口进而实现业务的程序,在微服务程序中称为消费者。一般,提供者应用包含数据库操作和简单业务逻辑操作,消费者应用包含复杂业务逻辑的处理和用于数据展示的数据封装。另外,大觅网项目依赖众多的第三方应用环境,如Redis、Jenkins、Elasticsearch、ELK等,通称为环境应用。
3.技术架构
应用架构设计完成后,需要进一步考虑系统设计的细节。技术架构就是用来描述系统业务所采用的技术的架构。大觅网的技术架构如图1.17所示,说明如下。
采用Docker环境进行项目环境搭建和配置。
采用MySQL作为系统数据库并采用集群方式进行配置和部署。
采用Mycat数据库中间件管理数据库集群。
采用Elasticsearch集群实现商品信息的存储和搜索。
采用Redis作为缓存来缓存用户数据。
采用Spring Cloud微服务架构实现微服务管理,将系统应用拆分为提供者、消费者、网关及注册中心。
采用Spring Cloud整套解决方案,包括使用Fegin进行接口管理、使用Hystrix进行容错、使用Ribbon实现负载均衡。
采用前后端分离技术,将数据的业务逻辑处理和展示分开,将数据展示独立为前端项目。前后端之间采用Nginx反向代理实现接口访问。
采用Jenkins实现程序的自动发版和CI(持续集成)
4.数据库架构
数据库架构即描述系统数据结构的架构。基于微服务设计思想对大觅网进行应用拆分后,数据库也进行了相应的拆分,具体拆分结果如图1.18所示。
大觅网数据库包括六个独立的数据库,分别为基础库、节目库、订单库、支付库、排期库和用户库。
大觅网数据库在设计过程中采用 Mycat 实现水平分库,并对订单库做进一步的拆分,拆分后的订单库包括三个库,分别为订单库1、订单库2、订单库3,三个子订单库的结构相同。