jk 自慰 .NET 散播式系统架构
一、遐想蓄意jk 自慰
搭建一个大型平台需要概述商量好多方面,不只纯是软件架构,还包括会聚和硬件开采等。由于当代大部分诓骗建设皆濒临用户多、高并发、高可用的需求,传统软件架构已不可空闲需求,需要接济散播式软件架构,能接济横向膨胀,具有高可用、伸缩性、富厚性等性格。搭建如下系统架构。
二、系统软件结构
系统软件结构暗示图
系统基于SOA架构遐想,系统全体永别为不同组件或者诓骗劳动,接济散播式的部署及膨胀,并通过Nginx组件达成负载平衡。笔据逻辑有关永别为:弘扬层、诓骗层和数据层。弘扬层认真系统与用户或者外部系统交互;诓骗层是劳动于弘扬层,主要达成业务逻辑处理空闲弘扬层的需求;数据层是认真系统数据的存储。
2.1、弘扬层
主要认真与用户和外部系统交互,具体提供系统可操作WEB功能、数据交换尺度或者数据接口。空闲不同的场景使用。Web Layer主要用asp.net mvc5本领达成;Data Exchange笔据需求达成数据交换尺度;Data Interface主要基于http公约,用Web API本领达成。
2.2、诓骗层
主要认真系统逻辑计议的达成,提供劳动接口给展现层使用。此两层之间通讯基于系统里面局域网tcp/ip公约,为了提高数据传输后果。笔据诓骗劳动使命不同,将分两大类,分别为业务诓骗劳动和基础诓骗劳动。业务诓骗服求达成业务需求的功能劳动,比如用户
订单、某类商品的照管功能等。基础诓骗服求达成系统基础公用的功能劳动,比如:日记劳动、缓存劳动、用户认证劳动功能等。本系统诓骗劳动一般使用.NET平台的通讯框架WCF本领达成,个别其他组件之外,比如MQ组件、Redis缓存组件。
2.3、数据层
主要认真系统数据存储、同步、缓存和备份照管。本系统数据分为结构化数据和非结构化数据。对于结构化数据使用MSSQL2008以上数据库存储,基于MSSQL复制同步的机制,不错进行数据读写分离的达成,晋升数据层面的优化。对于本系统业务日记数据的存
储选型,由于商量到业务日记数据结构各样化、数据量较大,是以选用MongoDB的NoSQL本领,同期系统面对着高并发的造访,遴选了缓存的机制晋升性能,选用Redis缓存组件达成数据缓存存储。对于非结构化数据存储,比如文档、图片jk 自慰等数据,本系统基于
Windows平台NTFS文献系统达成文档存储和读写功能。
三、系统物理结构
系统物理结构暗示图
本系统会聚分为:里面局域网和互联网。劳动器位于里面局域网,通过反向代理劳动器对互联网公布系统,用户通过互联网造访系统。从会聚层面安全进行结巴。用户造访系统基于http公约,系统里面之间劳动器通讯基于tcp/ip公约。笔据部署诓骗的永别,将劳动器分
为负载平衡劳动器、Web劳动器、诓骗劳动器、数据劳动器四大类。
(1)负载平衡劳动器
基于Linux之CentOS平台搭建Nginx劳动,作Load Balance。
(2)Web劳动器
基于window平台下IIS web劳动器。部署基于asp.net mvc、web api本领达成的尺度。
(3)诓骗劳动器jk 自慰
部署基于.net平台通讯框架之WCF本领达成的劳动接口,提供与展现层调用,其中部分公用组件,如MQ则笔据组件的条款部署。
(4)数据劳动器
本系统数据存储选用:mssql数据库、MongoDB、Redis缓存和文献存储。笔据形势情况数据库可作念读写分离,同期连合redis作念缓存战略提高系统性能。
本章节先大致先容系统框架及物理结构情况,由于触及几个本领点,比如:nginx负载平衡搭建、asp.netmvc与WCF劳动之间调用、redis散播式缓存使用、MongoDB存储日记、MQ异步传输日记数据、文献服求达成。后续迟缓先容。
3.1、Net散播式系统之二:CentOS系统搭建Nginx负载平衡
3.1.1、对于CentOS系统先容
CentOS(Community Enterprise Operating System,汉文瞻仰是:社区企业操作系统)是Linux刊行版之一,它是来自于Red Hat Enterprise Linux依照灵通源代码步伐释出的源代码所编译而成。基于Red Hat握续升级,和对已知BUG建造,是以CentOS更多
用于搭建大型企业级劳动器。现在较新版块为7.0,本文使用CentOS7 64bit进行搭建系统负载平衡。
3.1.2、装配VMWare
VMWare (Virtual Machine ware)是一个“虚构PC”软件公司.它的产物不错使你在一台机器上同期脱手二个或更多Windows、DOS、LINUX系统。与“多启动”系统比拟,VMWare袭取了全皆不同的认识。多启动系统在一个时刻只可脱手一个系统,在系统切换时
需要重新启动机器。本文使用VMWare WorkStation12装配CentOS操作系统。详备装配景况参考:稽查, 百度软件下载点击。
3.1.3、装配CentOS系统
领先需要下载CentOS装配包,下载IOS景况,本文使用CentOS7 64bit 版块,下载
详备装配景况请点击稽查
堤防事项:
1、分区的时候,接管EXT4景况,boot分区为400m,/分区为8G,/home分区为7G,var分区为6G,swap分区为2G
2、用户和组ID,皆设为 1000
3、装配完成重启后指示License的,输入:1、2、r、yes 完成参预到手参预系统
4、ctrl alt 鼠标切回本机电脑,不在虚构机里
3.1.4、装配Nginx和成就
1、Nginx先容
Nginx是一款轻量级的Web 劳动器/反向代理劳动器及电子邮件(IMAP/POP3)代理劳动器,并在一个BSD-like 公约下刊行。由俄罗斯的工程师Igor Sysoev研发,供俄国大型的进口网站Rambler使用。其性格是占有内存少,并发才能强,事实上nginx的并
发才能如委果同类型的网页劳动器中弘扬较好。
2、装配部署
在CentOS7通过大叫行装配Nginx劳动器。
(1)添加Nginx仓储,添加 epel repository
sudo yum install epel-release
(2)检查是否已装配过nginx
find -name nginx
(3)淌若有装配则删除
yum remove nginx
(4)装配nginx
伦理片在线免回看3sudo yum install nginx
(5)启动nginx
sudo systemctl start nginx sudo systemctl enable nginx #可用
(6)将nginx 成立为启动系统自动启动nginx
echo '/usr/local/nginx/sbin/nginx' >> /etc/rc.local
(7)稽查本机IP,为了后续成就nginx.conf所用
ifconfig
(8)修改nginx.conf成就文献
cd /etc/nginx/ #定位到nginx装配目次 vim nginx.conf #通过vim掀开nginx.conf成就文献进行成就
(9)主要成就节点,192.168.119.1:8081 和 192.168.119.1:8082 分别部署在 IIS7的两个ASP.NET MVC 开发的站点(在另一台电脑),遐想软件架构惩处决策后续先容。
upstream 192.168.119.128{ server 192.168.119.1:8081; server 192.168.119.1:8082; }
server{ listen 80; server_name 192.168.119.128; location /{ proxy_pass http://192.168.119.128; } }
(10)重启nginx劳动
service nginx restart
以上记载在CentOS7操作系统搭建Nginx负载平衡惩处决策记载。后续简介通过Keepalived搭建Nginx负载高可用惩处决策。
3.2、Net散播式系统之二:CentOS系统搭建Nginx负载平衡(下)
上一篇著述先容了VMWare12虚构机、Linux(CentOS7)系统装配、部署Nginx1.6.3代理劳动作念负载平衡。接下来先容通过Nginx将苦求分发到各web诓骗处理劳动。
3.2.1、Web诓骗开发
1、asp.net mvc5开发
(1)新建一个MVC5工程,新建一个Controller,在Index形态达成将现时常间保存到Session['mysession'],并写Cookies['mycookies']存储主机名和现时常间。
图片
图片
1 public ActionResult Index() 2 { 3 if (this.HttpContext.Session['mysession'] == null) 4 { 5 this.HttpContext.Session['mysession'] = DateTime.Now.ToString('yyyy-MM-dd hh:mm:ss'); 6 } 7 8 this.HttpContext.Response.Cookies.Add(new HttpCookie('mycookies') 9 { 10 Expires = DateTime.Now.AddDays(1), 11 Value = HttpContext.Server.MachineName '