
I. 设计目的
它已经从事.Net平台的开发超过8年,并且一直在考虑构建.Net分布式系统架构. 在窗口平台上构建的大型分布式系统并不多. 我以前知道大型网站.net分布式系统,例如myspace和stackoverflow. 构建大型平台需要综合考虑多个方面,不仅包括软件体系结构,还包括网络和硬件设备. 由于大多数现代应用程序结构都面临着许多用户的需求,高并发性和高可用性,因此传统的软件体系结构已无法满足需求. 它需要支持分布式软件架构,可以支持水平扩展,并且具有高可用性,可扩展性和稳定性的特点. . 结合我多年的开发和设计经验,构建了以下系统架构.
第二,系统软件结构

系统软件

该系统基于SOA体系结构设计. 整个系统分为不同的组件或应用程序服务,支持分布式部署和扩展,并通过Nginx组件实现负载平衡. 根据逻辑关联,它分为: 表示层,应用程序层和数据层. 表示层负责与用户或外部系统的系统交互;应用层为表示层服务,主要实现业务逻辑处理以满足表示层的需求. 数据层负责系统数据的存储.
(1)表示层
主要负责与用户和外部系统的交互,特别是提供系统可操作的WEB功能,数据交换程序或数据接口. 满足不同的情况. Web层主要使用asp.net mvc5技术实现;数据交换根据需求实施数据交换程序;数据接口主要基于http协议,并通过Web API技术实现.
(2)应用层
主要负责系统逻辑计算的实现,提供表示层使用的服务接口. 这两层之间的通信是基于系统内部的局域网tcp / ip协议,以提高数据传输效率. 根据应用程序服务职责的不同,它将分为两类,即业务应用程序服务和基本应用程序服务. 业务应用程序服务实现了业务所需的功能服务,例如某些类型商品的用户订单和管理功能. 基本应用程序服务实现系统的基本公共功能服务,例如: 日志服务,缓存服务,用户身份验证服务功能等. 该系统的应用程序服务通常使用.NET平台的通信框架WCF技术来实现. ,除了某些其他组件(例如MQ组件和Redis缓存组件).

(3)数据层
主要负责系统数据的存储,同步,缓存和备份管理. 系统数据分为结构化数据和非结构化数据. 对于使用MSSQL2008或更高版本存储的结构化数据,基于MSSQL复制同步机制,可以实现数据读写分离以改善数据级别的优化. 对于本系统中业务日志数据的存储选择,由于业务日志数据结构的多样性和数据量的庞大,选择了MongoDB的Nogo技术,系统面临着较高的并发访问,并采用了缓存机制来改进性能,使用Redis缓存组件实现数据缓存存储. 对于非结构化数据存储,如文档,图片等数据,本系统基于Windows平台的NTFS文件系统.net分布式系统,实现了文档存储和读写功能.
三,系统物理结构

系统物理

系统网络分为: 内部LAN和Internet. 该服务器位于内部LAN中,并通过反向代理服务器将系统发布给Internet,用户可以通过Internet访问该系统. 从网络级别安全隔离. 用户访问系统基于http协议,并且系统之间的服务器通信基于tcp / ip协议. 根据已部署应用程序的划分,服务器分为四类: 负载平衡服务器,Web服务器,应用程序服务器和数据服务器.
(1)负载平衡服务器
基于Linux的CentOS平台构建Nginx服务作为负载平衡.
(2)Web服务器
基于Windows平台下的IIS Web服务器. 部署基于asp.net mvc和Web api技术的程序.

(3)应用程序服务器
部署基于.net平台通信框架的WCF技术的服务接口,以提供和显示层调用. 根据组件的要求部署了一些通用组件,例如MQ.
(4)数据服务器
该系统的数据存储选择: mssql,MongoDB,Redis缓存和文件存储. 根据项目情况,可以将与读写分离,并与redis结合使用,作为一种缓存策略,可以提高系统性能.
本章首先简要介绍系统框架和物理结构. 由于涉及多个技术要点,例如: nginx负载平衡,asp.netmvc和WCF服务调用,redis分布式缓存使用,MongoDB存储日志,MQ日志数据的异步传输和文件服务实现. 逐步进行后续操作.
本文来自电脑杂谈,转载请注明本文网址:
https://www.pc-fly.com/a/jisuanjixue/article-202128-1.html
存款会缩水
很有可比性
为什么还会失败