- 博客(26)
- 资源 (16)
- 问答 (3)
- 收藏
- 关注
原创 Cloud Design Pattern - Valet Key Pattern
1.前言前一篇我们讨论了云计算设计模式之节流模式,了解了如何通过设定系统的资源消耗阀值来控制资源使用率及如何快速弹性扩容.这一篇我们了解下如何控制对应用程序依赖但不受
2015-11-30 16:51:23 1354
原创 Cloud Design Pattern - Throttling Pattern(节流模式)
1.前言上一篇我们讨论了云计算设计模式之静态内容托管模式,了解如何使用存储服务来实现静态内容托管,提升网站性能.这一篇我们继续讨论如何提升性能的话题,这一篇我们要讨论的是云计算的节流模式.2.概念
2015-11-30 10:24:09 1212
原创 Cloud Design Pattern - Static Content Hosting Pattern(静态内容托管)
1.前言上一篇我们讨论了云计算设计模式之数据分片模式,介绍了如何根据应用的主要查询需求合理地设计数据分区存储方案,从而有效地提升系统的性能和扩展性.这一篇也是属于提升系统性能有关的,那就是静态内容托管.2.概念顾名思义,静态内容托管就是把动态内容静态化.网页通常都是动态页面,页面加载需要从数据存储中查询数据并加载到前端,然后呈现给用户.然而,云端的应用往往并发量很大,给数据库查询带来很
2015-11-29 20:02:30 1124
原创 Cloud Design Pattern - Sharding Pattern(分片模式) [下篇]
6.需要考虑的问题分片模式需要考虑以下几点:1) 分片机制是对其他形式的分区机制的一种补充,比如垂直分区和函数分区.举例来说,一个分片的数据可能是已经被垂直分区后的数据,多分片的数据可以作为函数分区的一种实现.这个理解起来可能比较抽象,了解垂直分区和函数分区,请点击:Data Partitioning Guidance2) 确保操作各个分片的负载是均衡的,即对于各个分片的操作的I/
2015-11-29 19:21:54 754
原创 Cloud Design Pattern - Sharding Pattern(分片模式) [上篇]
1.前言上一篇我们讨论了云计算设计模式之调度代理主管模式,了解了在多任务处理系统中,如何设计出支持内部异常处理,外部资源访问重试机制的架构.这一篇,我们讨论下数据处理的分片切割模式.该模式的目标是提升系统性能及扩展性,尤其是针对大数据处理方面,能够在不使用Hadoop或者Spark方面最大限度地提升数据处理效率.2.问题存储在单一服务器上的数据会受到以下约束:1)存储空间.大规模的
2015-11-23 22:05:36 996
原创 Cloud Design Pattern - Scheduler Agent Supervisor (调度代理主管模式)
1.前言上一篇我们讨论了云计算设计模式之运行时配置模式,了解了如何设计一个支持运行时修改系统配置的系统架构,从而提升系统高可用性.这一篇我们讨论下分布式任务处理系统中的任务调度,监测,异常处理等问题。2.概念调度主管模式需要处理的事项包括:1)协调分布式环境中的服务(Service)或者资源(Resource)协同工作;2)能够独立处理任务(Job)执行过程中的异常;3)当
2015-11-20 11:20:38 1250
原创 Cloud Design Pattern - Runtime Reconfiguration Pattern(运行时配置)
1.前言上一篇我们讨论了云计算设计模式之重试模式,了解了如何封装一个服务来负责处理瞬时连接失败时的问题.这一篇,我们来讨论下如何在系统运行时对系统进行配置而不需要重启系统,从而提升系统的高可用性.2.概念通常系统配置都是在一个系统配置文件中(app.config/web.config),在系统启动后,配置文件里面的内容会被加载到系统的某个配置对象中,如果修改配置而不重启系统,那么配置是
2015-11-16 15:06:16 1072
原创 Cloud Design Pattern - Retry Pattern(重试模式)
1.前言在上一篇云计算设计模式之基于消息队列的负载均衡模式中,我们讨论了消息队列对于高并发应用的巨大作用.这一篇,我们讨论下重试模式.2.概念准确来说,重试模式只是一个简单的技巧而已.在连接网络、服务的过程中很有可能出现瞬时错误,那么在连接的时候,设计一种内部重试机制就很有必要了.在一定的时间内重试成功,认为连接是成功的,一定时间内重试失败,才认为失败.应用应该在连接网络、服务
2015-11-13 15:13:14 1177
原创 Cloud Design Pattern - Queue-Based Load Leveling(队列负载均衡)
1.前言上一篇我们讨论了云计算设计模式之优先级队列模式,介绍了在消息队列中,按照消息的优先级来决定消息的被处理顺序.这一篇我们来讨论下如何基于队列的负载均衡模式.
2015-11-13 14:54:58 1189
原创 Cloud Design Pattern - Priority Queue Pattern(优先级队列模式)
1.前言上一篇我们讨论了云计算设计模式之管道和过滤器模式 了解了如何使用消息队列来协调多任务系统的执行。这一篇,我们继续深入讨论消息队列的使用,即消息队列中的消息是带有优先级别的,优先级别高的先处理,优先级别低的后处理。2.概念带优先级的消息的处理顺序与正常的顺序会有所不同。在向队列中添加消息时可用指定消息的优先级别,消息队列能够根据优先级重新调整处理顺序。在不支持优先级的
2015-11-13 14:27:03 1115
原创 Cloud Design Pattern - Pipes and Filters Pattern(管道及过滤器模式)
1.前言上一篇我们讨论了云计算设计模式之物化视图模式,介绍了如何构建视图来展示业务数据当前的状态,尤其是在事件溯源模式下,如何提升查询性能。这一篇,我们讨论下多任务处理的应用中,如何提升性能,复用性及扩展性。2.概念了解ASP.NET MVC中的Filter的读者都知道,Filter是一种过滤器,比如做请求的认证,参数的校验等等,上一个filter的逻辑执行完之后,下一个filter接
2015-11-13 10:12:05 2002
原创 Cloud Design Pattern - Materialized View Pattern(物化视图模式)
1.前言上一篇我们讨论了云计算设计模式之领导选拔模式,讨论了分布式环境中的多任务处理系统如何协调任务执行顺序和共享资源调度.这一篇我们来讨论下通过数据预处理来提升数据查询性能的模式,这种方式与之前我们提到的索引表模式的目的是一致的,都是优化数据查询性能.2.概念在SQL Server 数据库中,数据读取存在逻辑读和物理读的概念.逻辑读是从缓存中进行读取,而物理读是从硬盘上读取.通常展示
2015-11-13 09:04:30 1135
原创 Cloud Design Pattern - Leader Election Pattern(领导选拔模式)
1.前言上一篇我们讨论了云计算设计模式之索引表模式,了解了Azure Table Storage 存储的机制及如何在云应用中应用这种模式来提升系统的性能.这一篇我们来讨论下在云端的分布式应用中,我们如何来协调不同的Task的运作.2.概念在同时运行的多个Task中,如果没有一个协调者角色的参与往往会发生抢占共享资源而造成死锁,
2015-11-11 11:44:05 946
原创 Cloud Design Pattern - Index Table Pattern(索引表模式)
1.前言上一篇我们讨论了云计算设计模式之健康端点监测模式,介绍了如何对云上的App的可用性及性能进行监测,这一篇我们将讨论如何通过优化数据查询来优化云上的App性能.2.概念关系数据库中的索引的概念大家都非常熟悉.在SQL Server 数据库中,主键默认就是聚集索引.我们都知道每一个数据表只能由一个聚集索引,但可以建立多个非聚集索引.当查询数据表的时候,不是根据主键进行查询,那么根据
2015-11-11 08:57:42 1105
原创 Cloud Design Pattern - Health Endpoint Monitoring(健康端点监测)
1.前言上一篇我们讨论了云计算设计模式之守门人模式,介绍了通过在服务与客户端之间通过代理来实现请求的过滤的方式来提升系统安全性.这一篇我们讨论下服务的监测的问题.对于任何一个服务来说,监测都是必要的,不仅仅是在服务出问题的时候,我们需要根据监测信息及时追踪问题根源,而且需要跟踪监测信息评估系统性能,做更多的优化工作.2.概念无论是我们自己开发的服务,还是依赖的第三方服务,我们都需要一种
2015-11-10 08:58:16 1644
原创 Cloud Design Pattern - Gatekeeper Pattern(守门人模式)
1.前言上一篇我们讨论了云计算设计模式之联合身份模式,介绍了云计算环境下的多租户应用的身份认证与授权的问题.这一篇我们将深入到应用程序内部,看如何创建安全的请求,尤其是针对敏感信息的请求.2.概念在REST API 的时代,服务暴露出的都是一些EndPoint,调用者通过向这个EndPoint发起请求来调用,正常情形下,收到请求之后,我们的应用程序就开始响应请求了.然而,应用程序应该防
2015-11-09 11:27:57 1343
原创 Cloud Design Pattern - Federated Identity Pattern(联合身份模式)
1.前言传统应用通常都是多个模块运行在一个进程中,而随着云计算架构的不断演化,应用程序的各个模块以微服务的架构运行在多个进程中运行.最常见的就是ASP.NET WebApi,以WebApi构建的服务可以支持PC端,手机端,PAD端及其他任意形式的数据访问请求,那么api请求的认证如何来做呢?ASP.NET 推出了基于OWIN的OAuth2认证与授权中间件,把认证与授权抽象成一个独立的服务,
2015-11-08 18:14:18 1110
原创 Cloud Design Pattern - External Configuration Store(配置外部集中)
1.前言每个系统都会有一些配置信息,比如数据库的连接字符串,日志文件路径等等.
2015-11-08 10:21:30 815
原创 Cloud Design Pattern - Event Sourcing Pattern(事件溯源模式)
1.前言上一篇我们讨论了云计算设计模式之读写隔离模式,讨论了在读写隔离在云计算架构的设计,这一篇要讨论的设计模式和上一篇有一点关联,即Event Sourcing(事件溯源)模式.我看到网上有作者也在总结归纳这两个模式,并且讨论了二者之间的关联,大多数博客里面都将这二者一起来讨论,个人认为确实能起到承上启下,融会贯通的效果.2.概念传统的应用中,数据库里存的是Domain Model的
2015-11-07 23:09:06 1997
原创 Cloud Design Pattern - CQRS Pattern (读写隔离模式)
1.前言上一篇我们讨论了云计算设计模式之服务聚合,这一篇我们来讨论下云计算设计模式之读写分离模式.在传统的应用中我们通过DBContext操作数据库都是在同一个Repository中对数据执行CRUD操作.我们都知道,数据库读写操作的I/O效率有较大差异的.发送到数据库的读写请求,会因为某些耗时的写入操作影响读取数据操作的效率,从而降低了系统吞吐量.另外,从安全的角度来说,读写采用同一个接
2015-11-07 15:05:02 1351
原创 Cloud Design Pattern - Compute Resource Consolidation(服务聚合)
1.前言上一篇中讲到竞争消费模式,这一篇我们讨论下计算资源整合模式.在如今流行的软件设计架构中,微服务架构备受推崇.微服务架构是单一职责原则在架构方面的具体实践,这种架构模式的原则是将服务拆分成单个的独立单元,明确服务的边界,尽量减小微服务之间的耦合,这种做法是完全符合面向对象设计的基本原则的,因为各个服务都是可以独立替换的,整个系统的架构变得更加松散,扩展性更强,完全符合面向新增开放,面
2015-11-06 22:14:49 1130
原创 Cloud Design Pattern - Competing Consumers(竞争消费模式)
1.前言在上一篇中我们讲到云计算设计模式之事务修正,我们分析了云环境中的事务的特点,遇到的问题及解决方案.这一篇我们聊聊竞争消费模式.在云环境中,一个服务可能接收到过多的请求,导致服务延迟,甚至崩溃.这时候就需要更多的负载来异步完成请求的处理,这时候每一个负载相当于一个请求的消费者,各个消费者之间是竞争关系。这也就是竞争消费模式.2.概念基于消息的中间件是分布式系统中经常使用的组件
2015-11-06 15:48:13 1171
原创 Cloud Design Pattern - Compensating Transaction(事务修正)
1.前言上一篇我们讲到了云计算设计模式之断路器模式 今天我们来聊聊云计算设计模式之Compensating Transaction Pattern(事务修正模式).关于这个模式的中文翻译,网上有很多,有的翻译成补偿模式,个人认为也没有什么不妥,个人在阅读了官方材料后,结合模式的特点,翻译成事务修正模式.个人认为这个模式是云计算设计模式中,与云环境结合最紧密的模式,也是构建大型分布式应用最
2015-11-06 13:16:09 1110
原创 Cloud Design Pattern - Circuit Breaker Pattern(断路器模式)
1.前言上一篇,我们讲了云计算设计模式之缓存设计模式,这一篇我们来聊聊云计算设计模式之断路器模式.断路器是一个电路中的元器件,作用是当电路中出现了短路或者瞬间电流过大等问题,断路器直接跳闸,当修复电路中的问题后,必须手动拨动断路器的开关到联通状态,整个电路才恢复正常通电。在云环境中,通常都是微服务的架构,各个服务往往运行在不同的进程中,而且很可能是不同的服务器,甚至是不同的数据中心,服务调用通
2015-11-05 20:39:07 1669
原创 Cloud Design Pattern - Cache Aside Pattern(缓存模式)
1.开篇运行在云中的应用和运行在本地的应用由于环境的不同,通常会带来一些差异,最常见的差异就是性能.安全性要求也比本地应用要高一些,并且由于运行在云端,系统之间的交互更加频繁了,消息队列也被列入系统架构需要考虑的清单之中,并且还需要考虑第三方接入的认证机制.诸如此类的不同,带来的是更多新的思考,如何设计出适应云环境的应用,是一个亟待思考的命题,微软的Design Pattern团队专门针对
2015-11-03 11:11:49 2826
原创 ASP.NET Identity Authentication
ASP.NET 认证与授权机制从基本的Form认证到后来的Membership认证,为ASP.NET应用构建了一个关于认证与授权的解决方案,开发者可以方便快捷地使用这个框架去解决应用认证与授权的问题.Memership解决的是应用的角色,用户及角色与用户的关联的问题,随着ASP.NET的深入发展,OWN产生了。OWIN的基本思想是提供一种标准化的WEB通信的接口,将ASP.NET的一些基本组件(比
2015-11-02 13:45:06 2789
Windows Azure 获创建container报错
2015-02-01
求CXF对象传递的完整示例
2015-01-24
大家来说说Entity Framework有哪些问题?
2015-01-19
TA创建的收藏夹 TA关注的收藏夹
TA关注的人