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

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

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

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

一、高内聚、低耦合

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

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

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

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

二、领域驱动设计架构

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

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

三、数据库设计

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

  • 分库分表

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

四、分布式技术

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

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

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

时间: 2024-11-08 10:09:03

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

三、面向云的.net core开发框架项目解决方案

按照领域驱动设计的思路,我们搭建开发框架的解决方案如下: *该解决方案正在改造过程中,会随着改造的过程逐步完善. 解决方案目录 对应领域设计层 说明 Infrastructure 基础设施层 开发的底层类库 Core   包括缓存.配置.日志.常用工具.数据访问等核心组件 Core.Caching.Redis   Redis分布式缓存的实现 Core.Data.Entity   EntityFramework的封装类库 PlugIns   主要针对外部产品的封装SDK,解决方案中暂缺 Domai

一、 为什么搭建面向云的.Net core云开发框架

几年前我组织开发了综合业务管理系统,该系统包含系统门户.业务信息.联系处置.数据查询.指标报表等功能板块,其中涵盖了门户定制.工作流引擎.自定义表单.指标计算.通用数据展示.通用后台服务.用户授权认证.数据交互等等一系列技术功能点. 为了完成上述功能,我们搭建了一套开发框架,采用当时刚刚发布的asp.net mvc3进行开发.这个框架除了综合业务管理系统之外,还在随后的物流监控.特殊区域管理等项目建设中得到了广泛的应用. 然而,近几年技术迅猛发展,诸如云计算.大数据.前端技术.移动技术等如雨后春

一种面向云服务的UCON多义务访问控制方法及系统

本发明公开了一种面向云服务的UCON多义务访问控制方法及系统.本方法为:1)设置每一云服务的义务项:建立每一云服务所包含的义务图:2)根据用户所请求的云服务查找该云服务的所有强制义务图和可选义务图,并提取该用户对该云服务的历史完成情况:3)对每一强制义务图,监控其每一义务项所对应属性的属性值,判断该义务项是否完成,并检查所有强制义务图是否已经完成,如果完成则进行步骤4):4)对每一可选义务图,监控其每一义务项所对应属性的属性值,并根据该义务项的历史完成情况判断该义务项的完成概率:然后计算该云服务

二度云:未来的云服务只会越来越便宜,性价比越来越高

我们都知道,无论是BAT,还是传统的云服务器都已经在云服务领域投入已经在该公司占用比例相当高,价格也越来越便宜,当然部分服务器价格还是没有太特别的变化. 当互联网渗透到人们生活的方方面面后,对云服务的需求渐趋旺盛.根据数据统计预计到2017年全球云计算市场规模将达到821亿美元.如此大的一个市场,自然吸引了众多的淘金者,云服务市场的竞争因此加剧.将会带来一场前所未有的云服务价格战. 进入2016年后,  115网盘.UC网盘.新浪微盘.华为网盘等相继关停了个人免费云盘服务,只有为数不多的几家还在

(转)面向移动设备的HTML5开发框架

(原)http://www.cnblogs.com/itech/archive/2013/07/27/3220352.html 面向移动设备的HTML5开发框架 转自:http://blogread.cn/it/article/5449?f=wb 很久以前整理了篇将手机网站做成手机应用的JS框架.时隔一年多,很多新的技术已经出现,下面再来总结下还有哪些框架是适合面向手机设备的开发的. 1.jQuery Mobile jQuery Mobile 是 jQuery 在手机上和平板设备上的版本.jQu

ASP.NET CORE系列【二】使用Entity Framework Core进行增删改查

原文:ASP.NET CORE系列[二]使用Entity Framework Core进行增删改查 介绍 EntityFrameworkCore EF core 是一个轻量级的,可扩展的EF的跨平台版本.对于EF而言 EF core 包含许多提升和新特性,同时 EF core 是一个全新的代码库,并不如 EF6 那么成熟和稳定.EF core 保持了和EF相似的开发体验,大多数顶级API都被保留了下来,所以,如果你用过EF6,那么上手EF core你会觉得非常轻松和熟悉,EF core 构建在一

大话DI依赖注入+IOC控制反转(二) 之 浅析.Net Core中的DI与IOC

原文:大话DI依赖注入+IOC控制反转(二) 之 浅析.Net Core中的DI与IOC   转发时请注明原创作者及地址,否则追究责任.原创:alunchen 在上一篇文章中,我们聊了很多关于定义的方面,比较孤燥,下面我们结合.Net Core聊一下依赖注入&控制反转. 三种对象生命周期 关于.Net Core中的容器,有三种对象的生命周期,这个从网上搜索也有大堆的资料.为了循序渐进,我们这里介绍一下. Transient 称为短暂,意思是需要使用时就创建一个新的对象.从容易层面讲,当从容器取出

pghoard 面向云存储的pg 备份&&恢复工具

pghoard 面向云存储的pg 备份&&恢复工具 包含的特性 自动定期basebackup 自动事务日志(WAL / Xlog软件)备份(使用pg_receivexlog, archive_command或与实验PG本地复制协议支持walreceiver) 云对象存储支持(AWS S3,Google Cloud,OpenStack Swift,Azure,Ceph) 直接从对象存储备份,压缩和加密 时间点恢复(PITR) 从对象存储备份初始化新备用数据库,自动配置为复制热备用数据库 参考

ASP.NET Core Web 应用程序系列(二)- 在ASP.NET Core中使用Autofac替换自带DI进行批量依赖注入(MVC当中应用)

原文:ASP.NET Core Web 应用程序系列(二)- 在ASP.NET Core中使用Autofac替换自带DI进行批量依赖注入(MVC当中应用) 在上一章中主要和大家分享在MVC当中如何使用ASP.NET Core内置的DI进行批量依赖注入,本章将继续和大家分享在ASP.NET Core中如何使用Autofac替换自带DI进行批量依赖注入. PS:本章将主要采用构造函数注入的方式,下一章将继续分享如何使之能够同时支持属性注入的方式. 约定: 1.仓储层接口都以“I”开头,以“Repos