码迷,mamicode.com
首页 > 其他好文 > 详细

系统构架

时间:2015-08-17 13:42:30      阅读:129      评论:0      收藏:0      [点我收藏+]

标签:

摘要: 转自:http://www.cnblogs.com/shanyou/archive/2007/09/09/887698.html在现行的许多网络应用中,有时一台服务器往往不能满足客户端的要求,此时只能通过增加服务器来解决问题。 那么,有没有一个办法或者技术来解决此类问题呢?使用Windows 2000或Windows Server 2003中的网络负载平衡群集就可以(本文将介绍Windows Server 2003中的网络负载平衡技术的实现方法)。 一、网络负载平衡的优点 1.网络负载平衡允许你将传入的请求传播到最多达32台的服务器上,即可以使用最多32台服务器共同分担对外的网络请求服务。网络阅读全文
posted @ 2012-12-19 21:27 指尖流淌 阅读(156) | 评论 (0) 编辑
 
摘要: 在分布应用程序中,不可避免的经常会使用到事务控制。事务有一个开头和一个结尾,他们指定了事务的边界,事务的其他边界之内可以跨越进程和计算机。事务边界的所有资源都参与了同一个事务。事务要符合ACID属性,即原子性、一致性、隔离性和持续性。 本地事务和分布式事务 本地事务是其范围为单个可识别事务的数据资源的事务(例如,Microsoft SQL Server数据库或MSMQ消息队列)。例如,当单个数据库系统拥有事务中设计的所有数据时,就可以遵循ACID规则。在SQL Server的情况下,由内部事务管理器来实现事务的提交和回滚操作。 分布式事务可以跨越不同种类的可识别事务的数据资源,并且可以包括多.阅读全文
posted @ 2012-04-28 23:04 指尖流淌 阅读(370) | 评论 (0) 编辑
 
摘要: 为保障原创权益,连接为:http://www.agilesharp.com/u/yanyangtian/Blog.aspx/t-198均衡算法设计的好坏直接决定了集群在负载均衡上的表现,设计不好的算法,会导致集群的负载失衡,一般的均衡算法主要的任务是决定如何选择下一个集群结点,然后将新的服务请求转发给他。有些简单均衡算法可以独立使用,有些必须和其他简单或高级算法组合使用。 而一个好的负载均衡算法也并不是万能的,他一般只在某些特殊的应用环境下才发挥最大效用,因此在考察负载均衡算法的同时,也要注意算法本身的使用面,并在采取集群部署的时候根据集群自身的特点进行综合考虑,把不同的算法和技术结合起来使用阅读全文
posted @ 2012-04-03 15:49 指尖流淌 阅读(304) | 评论 (0) 编辑
 
摘要: 首相我们讨论一下并发性问题,然后讨论处理乐观锁的3种方法,乐观锁不能从根本上解决并发问题,由此而产生了悲观锁,我们对各个级别列举了实例进行说明,使概念更清晰。为什么使用锁? 在多用户环境下,在同一时间可能会有很多个用户跟新相同的记录,就会产生冲突。这个就是就是并发性问题,我们图来展示下:并发性问题会造成什么矛盾?并发性一般会造成四种常见的矛盾1、更新丢失(Lost Update) :两个会话都同时更新同一个资源,但是第二个会话却覆盖了第一个会话事务的更新结果。 比如,两个用户A,B同时要修改值5,A将5改成3,B用户将5改成了2,然后A先提交了结果,B后提交,这样就造成了A用户更改丢失了。2、阅读全文
posted @ 2012-03-17 22:25 指尖流淌 阅读(1108) | 评论 (4) 编辑
 
摘要: 1、什么是集群集群(cluster)就是一组计算机,他们作为整体向用户提供一组网络资源。这些单个的计算机系统就是集群的节点(node)。一个理想的集群是,用户从不会意识到集群系统底层的节点,在他/她们看来,集群是一个系统,而非多个计算机系统。并且集群系统的管理员可以随意的增加和删除集群系统的节点。2、集群的优点<1>高扩展性<2>高可用性HA:集群中的一个节点失效,它的任务可传递给其他节点。可以防止单点失效<3>高性能:负载平衡集群允许系统同时接入更多的用户<4>高性能价比:可以采用廉价的复合工业标准的硬件来构造高性能的系统。3、集群系统的分类虽阅读全文
posted @ 2012-03-05 22:15 指尖流淌 阅读(682) | 评论 (0) 编辑
 
摘要: 基础代码复用性技巧之:混入(MiXin)和拦截器类 通过上一篇的介绍,我们基本能够建立出来一个有效率、可访问的基础架构来实行运行时的领域管理,在前篇的例子中我们为延迟加载功能设置的加载标记必须添加到需要支持懒加载的每个类的子类中。而且,在我们的例子中,如果你观察下加载标记是一次写入的,也就是说在变成true之后就不能再切换回来。我们在Setter方法中,我们有一些代码来实施这个规则——需要懒加载的每个领域模型类的子类中,我们都要为每个领域模型类的子类中,我们都要在setter方法中重复那些代码。 为了近大限度的实现基础架构的重用,我们就应该创建一个可重用的类来包含这种逻辑。但是,我们已经使用了阅读全文
posted @ 2012-02-27 15:04 指尖流淌 阅读(128) | 评论 (0) 编辑
 
摘要: 在我们使用领域模型的时候,很少会创建实际领域模型类,然后使用去使用它们那么简单。我们会使用相当数量的基础架构代码来支持领域模型之间的领域逻辑关系。在这里运行的基础架构的这部分称为领域模型管理(Domain Model Management)简称:DMM。问题一、基础架构代码放在那里? 随着基础架构代码的增长,找到一个处理它的优良架构越来越重要,在架构系统中,基础架构代码该如何放置,可以把一些基础代码放在我们的领域类里面,当然这是我们所尽量避免的。因为领域模型应该表示应用程序所处理的核心业务概念,对于对于想大量使用其领域模型的应用来说,保持这些类干净、轻量级、易于维护是我们所共同追求的。保持领.阅读全文
posted @ 2012-02-26 17:01 指尖流淌 阅读(132) | 评论 (0) 编辑
 
摘要: 在DDD领域构架系统中,为了将领域模型从领域逻辑层中和数据映射层之间解耦出来,我们引用到了Repository模式,属于属于泛型编程中一个比较常用的模式,尤其应用到MVC构架中更为常见,我们来简单的介绍几个概念:1、在《领域驱动设计:软件核心复杂性应对之道》,将Repository翻译为仓储,说明为:一种用来封装存储,读取和查找行为的机制,它模拟了一个对象集合。2、在《企业构架模式》中,译者对其翻译为:资源库,说明如下:通过用来访问领域对象的一个类似集合的接口,在领域与数据映射层之间进行协调下面通过一个案例才详细说明该解耦过程一、新建应用程序,添加Linq To Sql,新建两个领域模型,用.阅读全文
posted @ 2012-02-24 23:30 指尖流淌 阅读(2731) | 评论 (0) 编辑
 
摘要: 应用系统设计应该遵循一些的设计的基本原则,其实这些思想也是源于GOF的设计模式的总结,在创建一个低成本,高可用、高扩展性、低耦高内聚的应用程序,我们需要遵循的一套规范性的东西,简称SOLID,SOLID由可分为以下几点:1、Single Responsibility Principle(单一职责原则)2、Open Close Principle(开-闭原则)3、Liskov Substitution Principle(里氏代换原则)4、Interface Segregation Principle(接口分离原则)5、Dependency Inversion Principle(依赖反转原则.阅读全文
posted @ 2012-02-19 21:03 指尖流淌 阅读(607) | 评论 (0) 编辑
 
摘要: 延迟加载(lazy load)也成为懒加载,基本用于ORM中数据对象的一种默认加载方式,简单点讲延迟加载机制是为了避免无所谓的性能开销而提出来的,所谓延迟加载就是当真正需要数据的时候,才真正的执行数据加载操作。可以简单的理解为,只有使用的时候,才会实例化对象。 最大的有点就是能够大大的提高系统的性能。 通过一个案例来讲解,举一个很大众的应用场景,在大多的B2C应用中会设计到到用户开店的情况,这样我们就设计一个会员表,一个店铺表,当然一个会员可以开很多歌店铺,也就是说这里面一对多的映射。看一下类图:两个实体类,聚合关系,下面看一下第一种代码结构:using System;using Syste.阅读全文
posted @ 2012-02-15 23:02 指尖流淌 阅读(290) | 评论 (0) 编辑
 
摘要: 一个小型的网站,比如个人网站,可以使用最简单的html静态页面就能实现了,配合一些图片达到美化的效果,所有的页面均放在一个目录下,这样的网站对系统架构、性能的要求都很简单,随着互联网业务的不断丰富,网站相关的技术经过这些年的发展,已经细分到很细的方方面面,尤其对于大型网站来说,所采用的技术更是涉及面非常广,从硬件到软件、编程语言、数据库、webServer、防火墙等各个领域都有了很高的要求,已经不是原来的简单的html静态网站的所能比拟的。 大型网站,比如门户网站。在面对大量用户访问、高并发性请求方面,基本的解决方案集中在这样几个环节:使用高性能的服务器、高性能的数据库、高效率的编程语言、..阅读全文
posted @ 2011-12-25 13:34 指尖流淌 阅读(382) | 评论 (0) 编辑
 
摘要: Ioc(依赖倒转)概念:不创建对象,但是描述创建它们的方式。在代码中不直接与对象和服务连接,但在配置文件中描述哪一个组件需要哪一项服务。容器负责将这些联系在一起。也就是说在项目中相关联类实例化的时候统一进行管理,客户端不需要关注类之间关联,只需要通过名称,就能获取实例化对象,记得在Pet shop中对于DAL层的实例是通过抽象工厂,通过客户端配置web.config文件反射得到,当然这样也能实现实例化对象的解耦,但是这种方式也有很多弊端,比如:反射性能、产品类复杂导致实例化麻烦等,Ioc就是解决这些问题,所以说Ioc是抽象工厂的升级。参考院子(李会军)老师的文章,先把.net平台下的几种优秀.阅读全文
posted @ 2011-12-14 11:24 指尖流淌 阅读(228) | 评论 (0) 编辑
 
摘要: 从架构上看,Microsoft NLayerApp对“复杂的业务系统应用程序”这样一种应用程序的架构设计提供了一系列的设计准则。所谓“复杂的业务系统应用程序”是指这样一类业务系统应用程序,这类应用程序具有相对较长的生命周期,在其生命周期中,将发生一些可预计的“革命性变更”(比如,所使用的技术/框架的版本升级甚至替换),因此后期维护会变得非常重要。于是,针对这种类型应用程序的设计,我们应该做到,当“革命性变更”来临时,将这种变更对应用程序其他部分的影响减少到最小程序,例如,我们要确保基于基础架构层的设施变更不会影响到其上层的各个部分。更确切的说,应用程序的领域模型部分应该只关注领域本身,变更应.阅读全文
posted @ 2011-12-14 11:05 指尖流淌 阅读(222) | 评论 (0) 编辑
 
摘要: 分层构架 在分析领域驱动设计之前,我们需要先回顾以前的分层架构。“层”是一种体系结构模式,也是被广大软件从业人员用的最为广泛而且最为灵活的模式之一。其中最为大家所熟知的就是三层架构,那分层是什么?为什么要分层?传统的三层架构就是:表现层、业务逻辑层和数据访问层;其实所谓的分层要达到的目的就是,将具有不同的职责的组件分离开来,组成一套层内部高聚合,层于层之间低耦合的软件系统,这就是分层的目的; 在领域驱动设计的讨论同样也是建立在层模式的基础上的,但与传统的分层架构相比,它更注重领域架构和技术架构的分离。传统的三层架构我们所熟知的三层架构,自然就是有:表现层、业务逻辑层和数据访问层,我们用一个图来阅读全文
posted @ 2011-12-13 21:56 指尖流淌 阅读(164) | 评论 (0) 编辑
 
摘要: 首先声明此文章是源自博客园:http://www.cnblogs.com/huangxincheng/archive/2011/11/13/2246934.html加上个人总结..先整理如下:在wcf集群中,高性能的构架中一种常用的手法就是在内存中维护一个叫做“索引”的内存数据库,在实战中利用“索引”这个概念做出“海量数据的”秒杀。首先,先上架构图:大体讲解下该系统流程;所谓的Search集群就是图中WCF模块,它分布于不同的服务器上,为了提供高效率的数据检索,我们分步骤进行:1、我们将数据库中的数据通过程序加载到内存数据库中2、通过各个服务器中的WCFSearch服务为IIS提供内存数据中的阅读全文
posted @ 2011-11-22 15:06 指尖流淌 阅读(2115) | 评论 (5) 编辑
 
摘要: 三层构架一般的是只界面层、业务层、数据层。界面层就是系统的操作界面,和用户直接交互的地方,业务层又称逻辑层,英文名称是Business Logic Layer;简称BLL,是执行业务逻辑的地方,也就是业务逻辑规则都在这个层中体现,数据层也称为数据访问层,英文名称是Database Access Layer,简称DAL,这里是直接和数据库进行交互的地方,也是整个系统里唯一允许访问数据库的地方,除此之外,还有一个业务实体层,这个层比较特殊,就是定义实体类的地方,有些人把这个层归属业务层,有些人把这个层对立出来,变成一个公共层。各个层次之间的访问关系,界面层只能只能单向访问业务逻辑层,业务逻辑层只能阅读全文

 

系统构架

标签:

原文地址:http://www.cnblogs.com/zzw1986/p/4736193.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!