Table of Contents
章 缓存驻留模式 1
背景和问题 1
解决方案 1
相关模式与指南 5
更多信息 5
第2章 断路器模式 6
背景和问题 6
解决方案 6
问题与思考 8
何时使用此模式 10
相关模式和指南 14
第3章 补偿事务模式 15
背景和问题 15
解决方案 16
问题与思考 16
何时使用此模式 17
相关模式和指南 18
第4章 竞争消费者模式 19
背景和问题 19
解决方案 19
问题与思考 20
何时使用此模式 21
第5章 计算资源合并模式 25
背景和问题 25
解决方案 26
问题与思考 26
应用场景 28
相关模式和指南 32
扩展阅读 32
第6章 命令和查询职责分离(CRS)模式 33
背景和问题 33
解决方案 34
问题与思考 35
何时使用此模式 36
第7章 事件溯源模式 41
背景和问题 41
解决方案 41
问题与思考 43
何时使用此模式 44
相关模式和指南 47
第8章 外部配置存储模式 48
背景和问题 48
解决方案 48
问题与思考 49
何时使用此模式 50
关联模式和指南 56
第9章 联合身份模式 57
背景和问题 57
解决方案 57
问题与思考 59
何时使用此模式 59
相关模式和指南 61
更多信息 61
0章 门卫模式 62
背景和问题 62
解决方案 62
问题与思考 63
何时使用此模式 63
相关模式和指南 64
1章 健康终端监控模式 65
背景和问题 65
解决方案 65
问题与思考 67
何时使用此模式 68
相关模式和指南 71
更多信息 71
2章 索引表模式 72
背景和问题 72
解决方案 73
问题与思考 75
何时使用此模式 76
相关模式与指南 77
3章 选举模式 79
背景和问题 79
解决方案 79
问题与思考 80
何时使用此模式 80
相关模式与指南 85
更多信息 85
4章 实体化视图模式 86
背景和问题 86
解决方案 86
问题与思考 87
何时使用此模式 88
相关模式与指南 89
5章 管道过滤器模式 90
背景和问题 90
解决方案 91
问题与思考 92
何时使用此模式 93
相关模式与指南 97
6章 优先队列模式 98
背景和问题 98
解决方案 98
问题与思考 100
何时使用此模式 101
相关模式与指南 103
7章 基于队列的负载均衡模式 105
背景和问题 105
解决方案 105
问题与思考 106
何时使用此模式 107
相关模式和指南 108
8章 重试模式 109
背景和问题 109
解决方案 109
问题与思考 111
何时使用此模式 112
相关模式与指南 114
更多信息 114
9章 运行时重配模式 115
背景和问题 115
解决方案 115
问题与思考 116
何时使用此模式 117
相关的模式和指南 120
更多的信息 121
第20章 调度器代理管理者模式 122
背景和问题 122
解决方案 122
问题与思考 125
何时使用此模式 125
相关模式与指南 128
更多信息 129
2章 分片模式 130
背景和问题 130
解决方案 130
分片策略 131
问题与思考 135
何时使用此模式 136
相关模式与指南 138
第22章 静态内容托管模式 139
背景和问题 139
解决方案 139
问题与思考 139
何时使用此模式 140
相关模式与指南 143
更多信息 143
第章 限流模式 144
背景和问题 144
解决方案 144
问题与思考 146
何时使用此模式 147
相关模式与指南 148
第24章 令牌秘钥模式 149
背景和问题 149
解决方案 149
问题与思考 150
何时使用此模式 152
相关模式和指南 154
更多信息 154
第25章 异步消息传输指南 155
消息队列本质 155
异步消息传递的场景 158
实现异步消息传递的注意事项 159
相关模式和指南 161
更多信息 162
第26章 自动伸缩指南 163
什么是自动伸缩 163
实施自动伸缩的场景 164
实施自动伸缩的注意事项 164
Azure解决方案中的自动伸缩 165
相关模式和指南 167
更多信息 167
第27章 缓存指南 168
云应用程序中的缓存 168
使用缓存的注意事项 170
管理缓存并发 172
相关模式和指南 173
更多信息 173
第28章 计算分区指南 174
Azure计算选项概述 174
计算界限设计指南 174
组件分离计算实例 176
相关模式与指南 177
更多信息 178
第29章 数据一致指南 179
管理数据一致 179
*终一致实现的注意事项 182
相关模式与指南 185
第30章 数据分区指南 186
为什么需要数据分区 186
分区策略 187
设计可扩展的数据分区 190
设计分区以提升查询能 191
分区可用设计 192
问题与思考 192
相关模式与指南 194
更多信息 194
3章 数据复制与同步指南 195
为什么要数据复制及同步 195
复制和同步数据 195
数据复制和同步的注意事项 198
实现同步 200
相关模式与指南 201
更多信息 201
第32章 远程监控指南 202
为什么远程监控很重要 202
监控 202
语义日志记录 204
遥测 205
远程监控的注意事项 205
相关模式与指南 207
更多信息 208
第33章 多数据中心部署指南 209
为什么部署到多个数据中心 209
多数据中心部署的思考 213
相关模式及指南 217
第34章 服务调用统计指南 218
为什么服务调用统计很重要 218
服务调用统计的场景 218
服务调用统计的注意事项 220
示例 221
相关模式及指南 222
更多信息 222
【前言】
(4) 在浏览器里打开Readme.htm。它包含系统和例子的配置信息,在本地Azure模拟器运行例子或者部署到Azure平台上,掌握例子展示的知识点。
本指南与例子的对应关系如下表所示。
主题 描述
竞争消费者 这个例子包含2个组件:Sender worker role负责发送消息到Service Bus队列,Receiver worker role负责从队列接收消息并处理消息。Receiver worker role启动两个实例来模拟消费者竞争
计算资源合并 这个例子展示了如何统一多个独立的任务到单个的worker role中。运行这个例子没有需求
续表
主题 描述
外部配置存储 这个例子展示了在外部存储区保存配置文件而不是使用本地配置文件。在这个例子中,配置保存到Azure Blob Storage存储区。Blob包含的配置信息是通过ExternalConfigurationManager类的实例监控的。当ExternalConfigurationManager对象探测到配置已修改时,它就会提醒应用程序
健康终结点监控 这个例子展示了如何设置检查独立服务健康状态的Web终结点,它可以返回不同的状态码来表示状态。设计终结点的目的是让看门狗监控服务监控的,比如Azure终结点健康监控服务,但是我们也可以在浏览器里打开和调用终结点,查看状态结果。我们还可以部署和配置自己的终结点健康工具来发送请求给服务操作并分析接收到的应答消息
领导选举 这个例子展示了工作角色实例如何变成领导。领导可以协调和控制实例的任务,这些任务应该通过某个工作角色实例执行。领导选举通过获取租赁权来实现
管道和过滤器 这个例子包含两个可以执行整体处理部分操作的过滤器。这两个过滤器组合在一个管道中,一个过滤器的输出结果作为另一个过滤器的输入数据。过滤器作为单独的工作角色实现,Azure Service Bus总线队列提供了管道的基础架构
优先级队列 这个例子展示了如何通过Service Bus主题和订阅实现优先级队列。工作角色负责发送消息给主题,分配优先级给每个消息。接受工作角色从对应优先级订阅者中读取消息。在这个例子中,Priorityeue.High工作角色运行两个实例,Priorityeue.Low只运行一个实例。这样就能确保高优先级消息可以更快速地被读取
运行时重配置 这个例子展示了如何修改云服务的配置而不需要重新启动Web和worker role
静态内容托管 这个例子展示了如何从公共存储服务中快速获取静态内容。这个例子包含了一个Azure Web Role,它托管了包含Javascript文件和图片的,部署到Azure存储区中。这些内容通常部署到存储账号中,作为应用部署的一部分。但是,为了简化例子,启动程序时这些文件会被部署到存储账号中
令牌模式 这个例子展示了客户端程序如何在获取一个带有权限的共享访问前直接向大对象存储区写入数据。为了简单明了,这个例子关注获取和消费令牌秘钥的机制,不会展示如何实现验或者安全通行
这些例子关注演示每个模式的关键功能特,并不可以直接使用到生产环境。
更多信息
反馈和支持
图书团队
创意与项目管理: Masashi Narumoto
作者: Alex Homer、John Sharp、Larry Brader、Masashi Narumoto和Trent Swanson
开发: Julian Dominguez、Trent Swanson (Full Scale 180)、Alejandro Jezierski (Southworks)
测试: Larry Brader、Federico Boerr和Mariano Grande (Digit Factory)
能测试: Carlos Farre、Naveen Pitipornvivat (Adecco)
文档: Alex Homer、John Sharp (Content Master Ltd)
图片艺术家: Chris Burns (Linda Werner & Associates Inc)、Kieran Phelan (Allovus Design Inc)
编辑: RoAnn Corbisier
生产: Nelly Delgado
技术审阅: Bill Wilder (Author, Cloud Architecture Patterns)、Michael Wood (Cerebrata)
贡献者: Hatay Tuna、Chris Clayton、Amit Srivastava、Jason Wescott、Clemens Vasters、Abhishek Lal、Vittorio Bertocci、Boris Scholl、Conor Cunningham、Stuart Ozer、Paolo Salvatori、Shirley Wang、Saurabh Pant、Ben Ridgway、Rahul Rai、Jeremiah Talkar、Simon Gurevich、Haishi Bai、Larry Franks、Grigori Melnik、Mani Subramanian、Rohit Sharma、Christopher Bennage、Andrew Oakley、Jane Sinyagina和Julian Dominguez、Fernando Simonazzi (Clarius Consulting)和Valery Mizonov (Full Scale 180)
微软开发者指南顾问委员会 参与审核成员名单:Carlos dos Santos、CDS Informatica Ltda; Catalin Gheorghiu、I Computer Solutions; Neil Mackenzie、Satory Global; Christopher Maneu、Deezer.com; Paulo Morgado; Bill Wagner、Bill Wagner Software LLC;和Roger Whitehead、ProSource.It
感谢为本书的顺利出版付出心血的每个参与者!
【免费在线读】
【媒体评论】
架构即未来
移动互联网、云计算、大数据时代,面临更多的技术挑战问题,设计模式已经从单一的OO问题领域向外扩张延伸,设计模式的范畴不会局限于语言本身,更多扩展到架构设计领域
我个人对编程语言没有偏见,它们各有所长,大家互相学习。有实力的程序员不需要通过编程语言来找优越感,都在踏实地研究技术。我接触的程序员无论是对C 、Java,还是对C#等都没有编程语言的歧视。况且底层的算法、数据结构和设计模式都没有编程语言限制。
架构师和技术专家 程序员中的精英群体,技术,也是公司中受人尊敬的群体。
十年磨一剑 精华知识
本书介绍了云计算时代、经典的24种架构设计模式,包含基于云平台设计架构面临的问题以及典型的解决方案,另外还有10个架构设计指南。
24种经典的设计模式包括:高并发、健康健康、消息编排、架构伸缩、缓存、消息推送、大数据存储和优化、安全令牌等架构设计的关键问题,是一本近几年难得的架构与设计模式图书。
本书内容不受编程语言限制,可以根据需要使用.NET、Java、PHP、Node.js、Go等。云计算平台可以是Azure、AWS、阿里云等共有云,也可以是私有云平台。
本书给高级、运维、架构师、技术经理、技术总监、CTO学习使用。
微软P&P模式与实践小组
微软P&P小组鼎鼎的大名是微软模式与实践小组亲自打造的,为开发基于云计算架构应用程序遇到的常见问题提供了经典的解决方案,并将常用的经典方案归类为设计模式。
微软模式与实践小组是微软早的开源社区团队之一,主要关注于把行业经典设计模式与实际项目开发相结合的技术研究。
微软早期众多的开源项目都是由该小组完成,同时还编写了许多经典书籍和代码。
如果你坚持研究.NET技术10年以上,就一定看过微软P&P小组的学习资料。
在.NET领域10年以上的程序员应该不会对P&P小组陌生。其技术实力强,国内很多.NET架构师都是看P&P小组的文章和代码成长起来的。
我“菜鸟”阶段,第yi次看完P&P小组的文章就成为其忠实的粉丝,至今依然向技术圈子的朋友和新青年架构班的同学他们的资料。
10年前P&P小组开源的Enterprise Library代码、分布式与安全的文档,到后来的IOC容器Unity等,都是精华知识的沉淀。
种设计模式
Erich Gamma等在《设计模式》一书种介绍了种经典的设计模式。
本书介绍的24种经典设计模式包含高并发、健康健康、消息编排、架构伸缩、缓存、消息推送,大数据存储和优化、安全令牌等架构设计的关键问题,是难得的的设计模式书籍,可以作为经典的Erich Gamma、Richard Helm、Ralph Johnson、John Vlissides 4大金刚的《设计模式》的扩展阅读资料。
24种云计算架构模式
本书介绍的24种经典设计模式包含高并发、健康健康、消息编排、架构伸缩、缓存、消息推送、大数据存储和优化、安全令牌等架构设计的关键问题,是难得的设计模式图书。
(1)缓存驻留模式 (2)断路器模式
(3)事务补偿模式 (4)竞争消费者模式
(5)计算资源合并模式 (6)命令和职责分离(CRS)模式
(7)事件溯源模式 (8)外部配置存储模式
(9)联合身份模式 (10)门卫模式
(11)健康终结点监控模式 (12)索引表模式
(13)领导选举模式 (14)物化视图模型
(15)管道和过滤器模式 (16)优先级队列模式
(17)基于队列的负载均衡模式 (18)重试模式
(19)运行时重配置模式 (20)调度器代理监控模式
(21)分片模式 (22)静态内容托管模式
()限流模式 (24)令牌模式
24种架构设计模式都有对应的例子代码,可以下载参考。Java程序员也可以从中获益良多。
10个架构设计指南
除了详细介绍了24种云计算架构设计模式以外,这里还介绍了实际架构设计中的重要原则,归类为10个方面,可作为大家进行架构设计时的参考。
(1)异步消息传输 (2)自动伸缩指南
(3)缓存指南 (4)计算分区指南
(5)数据一致指南 (6)数据分区指南
(7)数据复制与同步指南 (8)远程监控指南
(9)多数据中心部署指南 (10)服务调用统计指南