首页 > 代码库 > 二、 面向云的.net core开发框架的主要设计思路

二、 面向云的.net core开发框架的主要设计思路

为满足性能、扩展性、业务快速交付等方面的要求,新.net core云开发框架改造的主要思想是:高内聚、低耦合,即进一步实现纵向和横向分层,提高可伸缩性和可扩展性,实现弹性部署:

  • 采用领域驱动设计进行架构横向分层,同时业务功能纵向分割
  • 在代码和数据库设计上充分考虑云架构要素,提高可伸缩性、可扩展性、高性能性和安全性
  • 采用诸如分布式缓存、分布式存储、并行数据库、消息队列、ESB等多种可伸缩技术实现松耦合

采用上述设计思路后的新架构搭建的综合业务管理系统如下图。其中HL、HB等是外部系统,通过ESB与综合业务管理系统交互。

技术分享

一、高内聚、低耦合

就是系统的模块内各个元素彼此结合的紧密程度高,但是模块间尽可能独立存在,这是软件质量的标准和设计的终极目标之一。高内聚、低耦合的系统更容易扩展,更容易复用,也是云计算平台分布式、可扩展部署的必要条件。

首先,在纵向架构上遵循分层的B/S架构标准,将整个系统划分为表现层、业务逻辑层、数据访问层。我采用领域驱动设计方式,在三层基础上又进行了细分,分为五层,分别为数据持久层、基础设施层、业务领域层、应用层和展示层,其核心是业务领域层,所有业务逻辑应该在领域层实现。

其次,在横向上进行业务分割,就是将系统功能分割成一个个业务模块。根据业务需求的独立性将门户管理、即席查询、指标报表、后台任务、工作流表单等业务模块进行分割,并分别部署到不同的计算资源中,模块间通过MQ或者SOA接口相互调用,从而提高系统的并发能力和扩展能力。

*个人认为这是软件项目的最终质量目标,所以重点提一下

二、领域驱动设计架构

领域驱动设计架构分为五层,分别为数据持久层、基础设施层、业务领域层、应用层和展示层。

技术分享

其核心是业务领域层,所有业务逻辑应该在领域层实现。

技术分享

三、数据库设计

目前数据库通常使用几种方式进行优化:

  • 分库分表
    • 按照业务将大数据库拆分成更小的数据库
    • 特殊情况下某些访问量大、数据量大的数据表按照一定逻辑拆分到不同数据库服务器中(某些云已提供分布式数据库,不需要程序实现)
  • 读写分离
    • 一个可写的数据库,其他只读数据库是可写数据库的同步镜像
    • 形成当前操作数据和历史数据两个部分

四、分布式技术

分布式技术的应用可以促进系统的可伸缩性,更利于云端部署

  • 静态资源网站
  • 云存储
  • 分布式缓存
  • 分布式消息队列、ESB等交互工具
  • 分布式数据库

*静态资源网站更像是一个方式,而不是分布式技术。

二、 面向云的.net core开发框架的主要设计思路