ASP.NET Web Game 架构设计1--服务器基本结构

ASP.NET Web Game 架构设计1--服务器基本结构

 

1.     基本结构图

 

File?id=dgsr497v_207f4qn6cff_b

 

 

 

2.      系统组成与角色

    整个系统大体上分为三个部分:1.网页客户端。2.IIS Web服务器。3.数据库及逻辑服务器。其中Web服务器不处理任何逻辑,它的作用只有两点:1.承载用户。2.中转数据,利用ADO.NET Data Service以及调用其他的WCF,使得Web服务器成为一个数据代理服务器。

   经过失败经验的论证,让IIS承载过多的逻辑,绝对是一个烂想法,应用系统应该在一开始设计的时候就彻底屏蔽这种方案,从上面图中也不难看出来,逻辑的处理应该是一部分放在网页中使用JS来实现,另外一部分放在应用系统的逻辑服务器上实现的。

    另外,如果简单的将网页部署到IIS上,性能指标总上不去,典型的体现在要么内存占用很高,CPU上不去,要么是CPU上去了,内存又占用的太小,这样很难将服务器的能力发挥到极致。为了应对这个问题,一个非常理想的方案是使用IIS中的WebGarden技术,可以启动多个w3wp.exe,即多个IIS服务进程。这样作的好处是将CPU资源以及内存资源均匀的分配到多个服务进程上去,以提升服务器资源的利用效率。但是,这同样也带来了一些问题,因为要将同一个网站的资源分配到多个进程,这样内存就无法共享,再加上HTTP协议本身就是短连接,所以每次客户端发出请求的时候,都有可能被不同的服务进程所接收,这样就是导致Session无法使用,很头疼吧。为了应对这个问题,我们又需要去配置应用程序的状态服务器,说白了,就是将Session统一存储到一个服务器上,通常是将其以二进制方式存储到SQL Server中。当然,这时要求存储在Session中的数据必须是可以串行化的。

    上面说的,可以提高服务器的利用效率以外,在IIS上配置WebGarden还有什么优点呢?从上面的说明中不难看出,因为状态是存储在统一的SQL Server中的,所以用户状态是与网站配置到哪一台Web服务器是无关的。因此,我们可以大量添加Web服务器,同时,位于不同Web服务器上的用户可以共享相同的SQL Server状态管理,这样可以大大提高在同服、同世界的用户数量。

    Web服务器,我们再来看一下应用程序的逻辑服务器和数据库服务器。这两个服务器通常在运营成本有限的情况下,是放在同一台服务器上的(当然,能分开是最好的)。应用程序服务器一般会在 某一个时间间隔下出现一个CPU使用的高峰,内存占用一般都很小,而对于SQL Server来讲,因为要提供大量的缓存,所以对于内存的消耗是比较大的。

   辑服务程序,是整个系统最容易出现性能瓶颈的地方,可以使用C++或者C#来编写,然后提供一个WCFTCP方式的)的外部接口,以便Web服务器调用。值得重点强调的,无论是利用C++还是C#来编写该程序,都一定要考虑好资源释放问题(JavaC#开发人员更应该注意这一点,千万别想着什么垃圾自动回收,很多资源是回收不了的),包括数据库连接的释放,数据结构(临时数据的储存体)的释放,以及无用线程的释放。

       这次先聊到这里,在后面的BLog中我们会对整个构架中的每一个技术点进行详细说明的。如何大家需要技术支援,请给我发Email:warensoft@foxmail.com

 

转载于:https://www.cnblogs.com/warensoft/archive/2010/03/26/1697293.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/262964.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

人人网 Windows Phone 7 应用开发起步

目前,人人网在国内高校学生中的普及率非常高。前段时间,大概是11月下旬的样子,人人网发布了Windows Phone 7客户端的公测版。我想,Windows Phone 7本地化的优劣,直接关系到其将来在国内的市场份额。而诸如人人等针对学…

XP Sp2下双机通过无线网卡实现Internet共享

两台均有无线网卡、装有XP SP2系统的计算机如何实现共享Internet上网呢,请参考一下步骤: 1、打开两台计算机的无线网络连接属性,并切换至“无线网络配置”页签。2、点中右下角的高级按钮设置,选中最下面的“仅计算机到计算机” 和…

C#面向对象设计模式第九讲:Composite 组合模式(结构型模式)

(根据MSDN Webcast相关课程整理) 由俄罗斯套娃讲起。娃娃里又包含另一个娃娃,最后那个不包含任何娃娃。 组合模式,采用树型结构来实现普遍存在的对象容器,将本原一对多的复杂的关系,转换成一对一的简单关系…

Docker for Windows

安装条件:必须是 Win10 Pro 或者 Enterprise version. 转载于:https://www.cnblogs.com/qijiage/p/9261258.html

《火影忍者:究级风暴》渲染技术究极解析!

http://www.opengpu.org/forum.php?modviewthread&tid6609 与Takara Tomy公司的《火影忍者》系列游戏不同,初次登陆PS3平台的本作是由日本CyberConnect2制作的对战格斗游戏《火影忍者:终极英雄》系列的最新作。虽然游戏的开发商仍然是CyberConnect2…

工程中新增Properties

如一开始工程中是没有Properties文件夹的! 但工程目录文件夹下却有一个Properties: 现在要向这个Properties文件夹中添资源文件。操作步骤: [添加新项]->[资源文件] 再将Resource.resx文件拉到Properties DONE!!!

Django:序列化的几种方法

前言 关于序列化操作,就是将一个可迭代的数据结构,通过便利的方式进行我们所需要的操作。 今天历来归纳一下,Django中的几种不同得分方法,已经Django-restframework提供的方法 创建一个Django的项目 再新建一个app 创建一个模型&a…

c#通过app.manifest使程序 右键 以管理员身份运行

c#通过app.manifest使程序以管理员身份运行 时间:2013-06-27 22:47来源:网络收集本站整理 作者:jtydl 点击: 1175 次微软在Windows Vista开始引入了UAC(用户帐户控制)新技术(点击这儿了解什么是UAC)。当程序执行时需要权限的话&am…

25款操作系统全面接触 [2]

Sun Solaris Sun Microsystems公司早期的操作系统版本Sun OS是基于BSD的。在1993年,他们与AT&T合作,转向了UNIX System V,并发布了称作Solaris.System V release 4的系统,这是一个UNIX System V和BSD的整合体。Solaris系统主…

Nuget发布Dll

今天要开始写ViewModel了,写完之后系统里的ViewModel都汇总到我这里,然后由我负责ViewModel的发布跟维护,所以Nuget发布Dll就要熟练啦~ 一,安装工具 1,Nuget Package Manager 2,NuGet.exe 下载地址为:http:…

技巧/诀窍:在ASP.NET中重写URL(转)

技巧/诀窍:在ASP.NET中重写URL 【原文地址】Tip/Trick: Url Rewriting with ASP.NET 【原文发表日期】 Monday, February 26, 2007 9:27 PM 经常有人请我指导应该如何动态地“重写”URL,以在他们的ASP.NETweb应用中发布比较干净的URL端点。这个博客帖…

妙趣横生算法 3:寻找相同元素的指针

实例说明 在已知两个从小到大的有序的数表中寻找出现的相同元素在第一个数表中的指针。 运行结果 实例解析 设两个数表的首元素指针分别为pa和pb,两个数表分别有元素an和bn个。另外,引入两个指针变量ca和cb,分别指向两个数表的当前访问元素。由于两个数表从小到大有…

Nginx 笔记与总结(14)expires 缓存设置

设置缓存,可以提高网站性能。 当网站的部分内容,比如新闻站的图片,一旦发布就不太可能发生更改,此时需要用户在访问一次页面之后,把该页面的图片缓存在用户的浏览器端一段时间,就可以用到 nginx 的 expires…

WP7应用开发笔记(8) IP输入框控件

因为需要在手机上配置IP,我需要一个界面输入IP地址,虽然直接使用TextBox,但是这样不太友好,我希望能够有和Windows网络设置上一样的IP输入框。所以决定写一个自定义控件。 设计控件外观 4个TextBox和3个显示“.”的TextBlock就可以…

C#并发实战Parallel.ForEach使用

前言:最近给客户开发一个伙食费计算系统,大概需要计算2000个人的伙食。需求是按照员工的预定报餐计划对消费记录进行检查,如有未报餐有刷卡或者有报餐没刷卡的要进行一定的金额扣减等一系列规则。一开始我的想法比较简单,直接用一…

[MSDN]ASP.NET MVC2(5)MVCRoute和urls

说明:本内容来自微软的webcast,讲师为苏鹏。视频没有书方便(想看哪页就看哪页),所以抄录要点和老师语录。 内容介绍 - url和routes介绍 - routes匹配url的工作方式 - 使用routes Router对象mvc运转的核心。 预备知…

一个、说到所有的扩展指标

版权声明:本文博客原创文章,博客,未经同意,不得转载。

网络通信和网络编程

一、软件结构 C/S Client/Server B/S Browser/Server 二、网络通信协议 1、协议分类 UDP 应用: TCP/IP 三、网络编程三要素 1、协议(UDP、TCP/IP) 2、IP地址 3、端口号 转载于:https://www.cnblogs.com/wmqiang/p/11333351.html

[Android] 输入系统(二)

在上一篇文章的最后,我们发现InputDispatcher是调用了InputChannel->sendMessage把键值发送出去,那么相应的,也有接收键值的地方。接收函数是InputChannel->receiveMessage。 在InputConsumer::consume内找到了receiveMessage&#xff…

TCP协议和套接字

一、TCP通信概述,逻辑连接就是三次握手 二、客户端和服务端实现TCP协议通信基本步骤 1、客户端套接字对象 Socket 2、服务端套接字ServerSocket 客户端补充完整代码:除了创建各自的Socket对象有关代码,其他代码一样,就输出流的输出…