博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
2 主要设计思路
阅读量:4987 次
发布时间:2019-06-12

本文共 1059 字,大约阅读时间需要 3 分钟。

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

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

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

一、高内聚、低耦合

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

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

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

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

二、领域驱动设计架构

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

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

三、数据库设计

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

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

四、分布式技术

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

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

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

 

转载于:https://www.cnblogs.com/BenDan2002/p/5996430.html

你可能感兴趣的文章
kubernetes学习:CKA考试题
查看>>
LINUX samba的安装使用
查看>>
CSS border 生成三角
查看>>
asp.net(c#)开发中的文件上传组件uploadify的使用方法(带进度条)
查看>>
7.STM32中GPIO理解
查看>>
base64 json
查看>>
排序算法(一) —— 冒泡排序
查看>>
No.026:Remove Duplicates from Sorted Array
查看>>
SpringBoot项目的几种创建方式,启动、和访问
查看>>
解决"disabled". Expected Boolean, got Number with value 0
查看>>
OC--init,initialize,initWithCoder:,initWithFrame:各方法的区别和加载顺序
查看>>
Exponentiation
查看>>
本地jar上传到本地仓库
查看>>
四则运算C++带Qt界面版本,吾王镇楼。。。。。
查看>>
安卓7.0手机拍照闪退问题解决
查看>>
ME525+ Defy+ 刷机指南[zz]
查看>>
支持触屏的jQuery轮播图插件
查看>>
差一点搞混了Transactional注解
查看>>
javascript基本函数
查看>>
前端公共库cdn服务推荐//提高加载速度/节省流量
查看>>