没有合适的资源?快使用搜索试试~ 我知道了~
首页cloud-design-patterns微软中文翻译版本
cloud-design-patterns微软中文翻译版本
需积分: 10 14 下载量 105 浏览量
更新于2023-03-16
评论
收藏 1.26MB PDF 举报
cloud-design-patterns微软中文翻译版本,AWS http://en.clouddesignpattern.org/index.php/Main_Page 微软 https://docs.microsoft.com/en-us/azure/architecture/patterns/
资源详情
资源评论
资源推荐
1.1
1.2
1.2.1
1.2.2
1.2.3
1.2.4
1.2.5
1.2.6
1.2.7
1.2.8
1.2.9
1.2.10
1.3
1.3.1
1.3.2
1.3.3
1.3.4
1.3.5
1.4
1.4.1
目錄
Introduction
Patterns
Cache-AsidePattern
Circuit-BreakerPattern
Compensating-TransactionPattern
RetryPattern
SagasPattern
CommandandQueryResponsibilitySegregationPattern
EventSourcingPattern
Materialized-ViewPattern
Health-EndpointMonitoringPattern
SchedulerAgentSupervisorPattern
Guidance
DataConsistencyPrimer
DataPartitioningGuidance
DataReplicationandSynchronizationGuidance
CachingGuidance
InstrumentationAndTelemetryGuidance
RelatedReadings
PessimisticandOptimisticLockingStrategy
1
Cloud-Design-Patterns
CloudDesignPatterns:PrescriptiveArchitectureGuidanceforCloudApplications
ChinesetranslationofCloudDesignPatterns
利用业余时间对《云设计模式:云应用规范架构》进行中文翻译。
Getstart如何开始阅读
https://github.com/SapphireWriter/Cloud-Design-Patterns的SUMMARY.md(源码)
https://www.gitbook.com/book/byp5303628/cloud-design-patterns/details的Read按钮
(同步更新,国内访问速度一般)
Issue意见、建议
如有勘误、意见或建议欢迎拍砖https://github.com/SapphireWriter/Cloud-Design-
Patterns/issues
Introduction
2
Cache-Aside
该模式是从数据仓库中将数据加载到缓存中,从而提高访问速度的一种模式。该模式可以有
效的提高性能,同时也能一定程度上保证缓存中的数据和数据仓库中的数据的一致性,和同
步数据到数据仓库中。
问题
应用通过缓存来优化针对数据仓库的重复访问。当然,令缓存中的数据永远和数据仓库中数
据保持一致是不切实际的。应用中的缓存应该事先一些策略来辅助更新缓存保证数据的一
致,当然,也需要检测数据过期等情况来进行一定的处理。
解决方案
很多商业化的缓存系统都提供read-through和write-through/write-behind的操作。在这些系统
中应用从缓存的引用中获得数据。如果数据不再缓存中,请求将透过缓存到数据仓库来获取
数据,然后将数据写入到缓存中。任何对缓存中的数据的修改,在之后也会写会到数据仓库
之中。
对于那些不提供这个功能的缓存系统,就轮到应用来自己将数据保持在缓存之中了。应用可
以通过实现Cache-Aside策略来实现read-through的功能。这个策略会根据需要来从数据仓库
获取数据。下图则是Cache-Aside模式的基本运行方式:
1. 判断读取的项目是否在缓存中
Cache-AsidePattern
3
2. 如果项目不再缓存中,从数据仓库中将数据读出来
3. 将新的项目写入缓存
如果应用不是读取信息而是更新信息,它可以模仿write-through的策略:
1. 将信息的更新同步到数据仓库
2. 令缓存中关联的过期数据失效
当这个数据在下一次需要的时候,使用Cache-Aside模式将会在获取数据的时候,同时从数据
仓库中获取数据,并且写到Cache之中。
需要考虑的问题
当在实现如下模式的时候,需要考虑一些问题:
1. 缓存数据的生存时间:很多Cache实现了过期的策略的,这些过期的策略可以实现数据的
更新,将旧数据失效化,同事也令一定时间没有访问的数据失效。为了让Cache-Aside模
式能够生效,开发者必须确保过期策略能够正确匹配应用所访问的数据。同时注意不能
让过期时间太短,因为太短的过期时间会令应用频繁的从数据仓库中来获取数据来添加
到Cache之中。当然,也不要配置超时的时间太长,过长的超时时间会让缓存的数据荣
誉。Cache的性能是跟其相关的数据的读取周期等信息高度相关的。
2. 去除数据:绝大多数的缓存跟数据仓库比起来,容量是很有限的,所以,如果可以的
话,Cache会移除数据。多数的Cache会采用LRU的策略来移除缓存中的数据,当然,移
除的策略也是可以自定义的。配置全局的过期属性和缓存的其他属性,可以确保Cache消
耗的内存资源是搞笑的。当然,通常不会只配置一个全局的过期策略,。举例来说,不
同的缓存从数据仓库中获取资源很昂贵的时候而经常访问的话。
3. 准备Cache:很多的解决方案会多数情况在应用启动的过程中,就将数据仓库中的数据
写入到缓存之中。Cache-Aside模式就算在一些数据过期或者移除的情况下仍然很多时候
是很有用的。
4. 一致性:实现Cache-Aside模式并不能保证Cache和数据仓库之间的数据一致性。因为数
据仓库中的数据可能在任何的时候都可能由其他程序锁修改,而这个修改不会及时的反
映到Cache上,只有在下一次Cache从数据仓库中更新数据的时候才会有解决这个数据不
一致的问题。如果数据仓库中数据频繁由非Cahce程序更新的话,这种问题同步问题hi变
得更加明显。
5. 本地(内存)缓存:Cache也是可以做到应用本身里面的。Cache-Aside模式在一些应用
频繁访问相同的数据的时候尤其有效。然而,本地Cache都是应用私有的,是属于每个应
用中独有的额外的拷贝。所以这个数据可能很快在不同的应用中就不一致了,所以刷新
的频率最好更快来保证一致。在有些情况下可以使用共享的缓存,有的时候也可以使用
本地Cache,具体使用哪一种就需要根据实际的场景来判断。
什么时候使用Cache-Aside模式
Cache-AsidePattern
4
什么时候使用:
当Cache不提供原生的Read-Through和Write-Through操作的时候
资源的需求是不可预测的时候。Cache-Aside模式令应用可以根据需求来加载数据。对于
应用需求什么数据,不需要提前做出假设。
代码举例
在WindowsAzure中开发者可以使用WindowsAzureCache来创建一个分布式的由多个应用
实例共享的缓存。下面代码中的 GetMyEntityAsync方法的实现就是一个基于WindowsAzure
Cache的Cache-Aside模式的实现。这个方法通过Read-Through的方式从缓存中获取数据。
一个对象通过一个整数ID作为Key来限定。 GetMyEntityAsync方法根据这个key生成了一个字
符串Key(WindowsAzureCacheAPI是通过字符串来作为Key值的),然后尝试通过这个缓存
来获取对应的对象。如果找到了匹配条目,那么就直接返回匹配条目,如果缓存中没有匹配
条目, GetMyEntityAsync方法会从数据仓库中获取对象,然后将这个对象添加到缓存之中,
然后再返回这个对象(下面代码从数据仓库中获取代码的部分是省略了的,因为整个模式跟
数据仓库的访问是独立的)。需要注意的是,缓存的条目是配置按过期顺序的,防止缓存长
期不更新也不被使用造成资源浪费。
Cache-AsidePattern
5
剩余61页未读,继续阅读
yaofengzhuzhu
- 粉丝: 1
- 资源: 7
上传资源 快速赚钱
- 我的内容管理 收起
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
会员权益专享
最新资源
- RTL8188FU-Linux-v5.7.4.2-36687.20200602.tar(20765).gz
- c++校园超市商品信息管理系统课程设计说明书(含源代码) (2).pdf
- 建筑供配电系统相关课件.pptx
- 企业管理规章制度及管理模式.doc
- vb打开摄像头.doc
- 云计算-可信计算中认证协议改进方案.pdf
- [详细完整版]单片机编程4.ppt
- c语言常用算法.pdf
- c++经典程序代码大全.pdf
- 单片机数字时钟资料.doc
- 11项目管理前沿1.0.pptx
- 基于ssm的“魅力”繁峙宣传网站的设计与实现论文.doc
- 智慧交通综合解决方案.pptx
- 建筑防潮设计-PowerPointPresentati.pptx
- SPC统计过程控制程序.pptx
- SPC统计方法基础知识.pptx
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
评论0