软件架构设计:属性、原则和实践

软件架构设计:属性、原则和实践

ID:38681430

大小:1.42 MB

页数:45页

时间:2019-06-17

软件架构设计:属性、原则和实践_第1页
软件架构设计:属性、原则和实践_第2页
软件架构设计:属性、原则和实践_第3页
软件架构设计:属性、原则和实践_第4页
软件架构设计:属性、原则和实践_第5页
资源描述:

《软件架构设计:属性、原则和实践》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、软件架构设计:属性、原则和实践伍活欣一个人一篇论文RoyThomasFielding博士《架构风格与基于网络的软件架构设计》。Fielding博士是HTTP和URI等Web架构标准的主要设计者。也是Apache服务器的主要开发者。定义和提出Restful架构风格。什么是架构对系统运行时元素的抽象.关于抽象抽象原则是架构设计的核心原则ClientCacheProxySource什么是架构风格一组应用在设计上的约束架构属性性能-Performance可伸缩性-Scalability简单性-Simplicity可修改性-Modi

2、fiability可见性-Visibility可移植性-Portability可靠性-Reliability运维友好性–Operations-friendly安全性-Security架构属性性能Performance性能网络性能–NetworkPerformance吞吐量throughput(TPS)用户可察觉的性能–User-perceivedPerformance延迟latency完成时间completion网络效率–NetworkEfficiency网络交互频率和效率案例1<<1234568910>>点击加载更多性能首先取决于应用的需求,然后是所选择的交

3、互风格,然后是实现的架构,最后是每个组件的实现。案例2小明要给客人沏茶,需要多长时间?用并行代替串行案例3论坛图片加载:点击数更新、个人积分更新、个人列表更新等等推荐列表的获取(同时需考虑SEO的需要)用异步代替同步AMIAMD案例4分流轻事务和重事务排队请取号:现金业务非现金业务公积

4、金业务案例5减少稀缺资源的占用和占用时间启用Nginx传输压缩,降低下行带宽占用;启用独立的静态资源域名,降低上行带宽占用;一段相册的老代码:Connectioncnn=DbService.getConnection();存储原图;制作大中小图;…statement.exec(sql);cnn.close();案例6尽量重用高成本资源数据库连接池;采用长连接;SPDY协议对TCP连接的复用;JVM对域名解析结果的缓存;案例7尽量用内存操作代替磁盘和网络操作各种层级的缓存策略;合并多个点击数更新请求再更新到DB;MQ驱动合并多个消息异步发送;案例8尽量减少网络交

5、互次数就近访问:CDN、浏览器缓存、本地缓存;中央配置本地缓存;批量提交;压缩传输;原则回顾性能优化应首先考虑需求的优化和交互的优化用并行代替串行用异步代替同步分流轻事务和重事务减少稀缺资源的占用和占用时间尽量重用高成本资源尽量用内存操作代替磁盘和网络操作尽量减少网络交互次数架构属性可伸缩性Scalability可伸缩性架构支持大量组件或大量组件之间交互的能力弹性案例9结点数Mod震荡率Ketama震荡率15049267353752548024583176861378713889109901110919取模和一致性哈希的震荡率对比测试NodeIncrement

6、:1,SampleSize:10W,Key:UUID,Hash:Ketama可伸缩性简化组件分布式集群用规则代替映射选用弹性好的路由算法善用负载均衡和代理配置弱中心化实现运维自动化:DNS自助、LB自助、VM自助、运行环境构建、代码部署、监控架构属性简单性Simplicity简单性分离关注点原则-分层设计-面向接口而不是实现-分离对象的使用和创建IOC-分离应用的业务逻辑与系统级服务AOP通用性原则可理解性架构属性可修改性Modifiability可修改性可进化性–Evolvability纵向升级可扩展性–Extensibility横向扩展,添加新能力可定制性

7、–Customizability临时性提供非常规服务的能力可配置性–Configurability部署后对组件修改的能力可重用性–Reusability架构元素被其他应用重用的能力静态动态可修改性版本化一切:接口版本、协议版本、序列化版本、消息版本等等微内核+插件化表达式支持、按需脚本和自定义实现预留Hook和扩展点配置文件、配置接口、控制台响应细粒度切割然后组合成粗粒度解耦合和遵循公共规范,如OSGI、JSON-RPC等架构属性可见性Visibility可见性可调式、可仲裁、可监控、可测试的能力案例10Memcached中存储序列化的Java对象VSBSON

8、VSJSON;RPC序列化对象采用He

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。