IT技術互動交流平台

OracleCoherence3.5讀書筆記之3滿足性能 可擴展和可用性目標

來源_|-新能量电力商务网:IT165收集  發布日期|--觥:2016-12-09 21:39:26

滿足性能目標

影響操作執行時間的重要因素有算法和數據結構-_青岛开发区十中。在分布式係統中_||医疗政策,還有一個重要的因素就是網絡延時-_|河南高等教育自学考试考生服务平台。

處理延時

開發人員在開發時通常沒有考慮延時|-迅雷电视剧,測試時亦是如此_|全国有多少人叫。

作者給了一個示例-飞天侠女电影,對於一個20ms的操作(典型的web操作完成時間)--此物最相思的上一句,在本地執行隻有0.067ms延時|江苏阜宁,而跨國執行時_|雅漾防晒霜保质期,需要264ms||-男儿当入樽粤语版。

而通常一個web請求需要多次往返web服務器|百事淘宝瓶盖兑奖,延時就更加嚴重||_太湖花亭湖风景区。因此應減少往返次數-|张家口网通,即使對於內存的訪問也需如此--_约彩彩票软件正规吗?。

通常聽到的建議”make your remote services coarse grained” 或 “batch multiple operations together” 也會同樣的意思|-中央一台在线直播观看。

減少帶寬使用

依據摩爾定律__亿博彩观音图,帶寬通常不是問題__-白看电视。
網絡延時與光速有關__陈小春 黄榕,不大容易改善_-|注册认证赠送彩金。而帶寬卻在不斷增加-盈彩是什么平台,但不代表帶寬問題可以忽略_永胜集团微信二维码。

無論如何|-现任国家领导人简历,應盡量減少網絡上的I/O___106福利安卓版,隻獲取必要的信息__qq2011版下载,如果數據量過大|-_熊继柏在哪坐诊,就將處理下放到數據_-139彩票网官网手机版,而非相反-|广西单独二胎细则。

Coherence 與性能

Coherence 可以解決延遲和帶寬問題-|_11选5杀2个100%技巧,通過以下幾個手段_云谷彩票手机版登录:

通過將後端數據庫的數據緩存降低延遲 以及通過near-cache緩存最近使用的數據降低延遲 在數據節點可並行執行-|娱乐天地点检官方下载,降低延遲並減少帶寬使用

滿足可擴展性目標

可擴展性可通過兩種手段實現_菲诗曼尔,scaling up 或 scaling out

scale up_-刘玉浦简历:
通過添加CPU/磁盤/內存等將小服務器變為大服務器
問題在於平衡__|万兽之国(h),有時添加完CPU卻發現內存成了新的瓶頸_|黄牛课件网,比較昂貴_-优衣库视频完整版下载。

scale out:
添加更多的集群-_玛雅wang 发信到,並分享工作負載_||苏州北站在哪。更廉價-_qq互赞群。
不過設計和管理上更複雜|天弘基金余额宝计算器,例如需要從架構上消除單點故障_-浪翻云博客,需要保證服務的無狀態化(stateless)

無狀態服務並不存在

應用層無狀態化時為了更好的擴展_-万年屋日本料理。但應用仍然需要狀態這點是不變的-_信息价值网。
通常-|_105彩票彩票大全,狀態會下移到最難擴展的數據庫層_-|衡水热线欢迎你。

擴展數據庫非常困難

數據庫必須滿足ACID (atomicity, consistency, isolation, durability) --_铁路运输安全保护条例。

磁盤係統非常重要_现任国家领导人:為了提高並發|-正大饲料价格,磁盤需要合理分布|--易发彩票是不是诈骗;為了保證durability-__白酒包装图片,數據庫最終受限於磁盤性能-空军耳鼻喉科。

當數據量增加-__智彩网,用戶訪問增加時|掌上购彩apk,數據庫總會到達極限-_-诗普达,這時就需要擴展_|2011qq免费下载。通常采用scale up方法_|青花瓷琵琶简谱,但此法昂貴且不可持續-|短号查长号。

這時--|freeborn性欧美,可以轉而考慮scale out的方法华为荣耀5c。

數據庫橫向擴展方法

參見前文-|-自由们7 39下载:關係型數據庫橫向擴展的三種方法

重新回到狀態

從應用端去掉狀態極大加重了數據庫的負擔_|计算女生价格的方法,為了減輕數據庫負擔青海明胶股票,我們還需要使狀態回到應用層||3a录取查询。
當然並非加到stateless的服務中||双线盗毒蛾,而是在無狀態的應用邏輯和數據庫間引入一個新的層次||三九祛痘灵。

正如Bellovin 教授所說_花都南湖国旅:

any software problem can be solved by adding another layer of indirection
這裏的indirection可以理解成abstraction

此新抽象層需要具備以下的能力||闸北八中:
* 管理對象數據_|1q币购物券怎么用,因為應用可以直接操縱對象
* 對象存於內存-_初一下册数学期中试卷及答案,以提高性能和減低I/O
* 可以透明的將後端數據庫數據加載到內存
* 可以將數據修改持久化到後端||_陀地位,通常是異步的
* 易於橫向擴展--|掌上足球210版本下载,如同無狀態的應用層

Coherence滿足以上所有要求

使用 Coheren減少數據庫負擔

通常的數據庫查詢都是基於主鍵的_|金星啤酒厂,將這些查詢轉移到應用層緩存可以大大減輕後端數據庫的負擔|镇江舰。

Coherence的分布式架構還可以做更多複雜的工作_众购彩票官方网站。

有了coherence||_铁路安全管理条例,主從複製就不必要了__郭锦瑾。隻讀的從庫被分布式緩存替代_-|金钱豹团购,同時-__四川特色文化,主庫和從庫的數據不一致問題也沒有了_-男科悍医。

後端的數據庫仍需要集群-_英雄联盟定级赛规则,但coherence降低了後端數據庫的壓力__|唯爱侦察,集群可以簡單_-瑞柏儿,節點可以變少|__竹炭产地。

而分片方麵|--云顶娱乐在线登录,coherence內置了distributed queries 和 aggregations特性-||金点子小发明。使多節點的查詢變得簡單_焦点打断宏,應用也無需做太多修改|_雨露文章,而且通過複製對數據進行保護-尹国驹 何鸿燊。

Coherence與可擴展性

coherence是理想的可擴展數據管理方案-||中国电信iphone4。
通過添加節點就可以添加容量和吞吐量(處理能力)__众乐彩票网站。
當然_诺基亚c300主题下载,應用還是需要好好的設計架構的|_2009手机qq,把一個好產品用爛的情況太多了--_qq炫舞答题答案。
好的產品 + 差的設計 = 差的產品

滿足高可用性目標

為了達到高可用目標_亿彩彩票是否合法,我們需要在架構中去掉所有單點故障||234彩票提现多久到账。
整體可用性=所有部件可用性的乘積
AS = A1 * A2 * … * An
這同時也意味著_淄博豪哥健身俱乐部,一個部件不可用八千网,整個係統就不可用|-_棱台体积公式。
因此我們需要做兩件事|||左邦路:
1. 為每一個部件提供冗餘
2. 使部件鬆耦合-游彩网注册,而是故障隔離

第二點通常通過引入異步實現-|重庆厨房制造,例如引入消息隊列|娱乐天地怎么下载,文件緩存等---育儿大全 日本。而Coherence也可以緩存更新_|222彩票注册,即使後端數據庫失敗也沒有影響__众发娱乐是不违法。異步還可以提高吞吐量_|阜阳卫生局网。

為係統添加冗餘

F = F1 * F2 * … * Fn
F是部件失效的可能性
而 Fc = 1 - Ac(可用性)

例如一個係統有3個部件_|保定保洁公司信誉安全,每個部件的可用性為0.99__-阿诺德蓄电池;
As = 0.99 * 0.99 * 0.99 = 97%
每一個部件失效可能性為1-0.99 = 0.01
如果為每一個部件增加一個冗餘部件_欢乐白领。
則每一部件失效可能性為0.01 × 0.01 = 0.0001
新的As = (1-0.0001) * (1-0.0001) * (1-0.0001) = 99.97%
可用性提高了|_|扒糗事地址更新系统。

僅有冗餘是不夠的

僅有冗餘是不夠的|_c720w,還需要係統有足夠的容量來滿足峰值請求---qzone6空间克隆,避免係統崩潰|--水晶船。

如果係統需要N個服務器處理峰值請求_-_诺基亚3110c游戏,假設X個服務器失效後係統仍可以工作_|盈彩app下载,那麼係統需要N+X台服務器-|醉落雪暗香。否則|军刺电视剧,如果峰值時服務器失效_-沈阳洗浴特服,剩餘服務器將不能處理請求--|244影城,從而導致響應時間下降||-芷江房屋出租,性能降低_分水线,甚至無法服務_具人同行家具网购。

Coherence 和 可用性

Coherence在設計上就是高可用的|-_盈众彩票正规吗,任何節點失效都不會有影響--168彩票网官方版。這時通過在集群中加入複製來實現的_-晋城五个人图片。
每一個對象都在另一個節點有冗餘--奶妈贵宾网,當然對於對象的更新也會增加開銷__308k玄机料玄机图,不過開銷相較於集群數據庫還是會小很多|-|美国vivid。不過Coherence集群的Sizing仍很重要-|-陈丽华前夫离婚原因。
另外--|300118,Coherence集群的高可用並不意味著整個係統的高可用__金大班大结局。其它如負載均衡|-_1588彩票官网,路由器-|京东收购一号店,交換機等都需要冗餘|_-比利台球。

綜合考慮

為性能和可用性設計

為達到性能和可用性目標_198彩票怎么样,必須定位係統中的單點故障和瓶頸並消除它們|--顺丰到付价格,這需要仔細的設計架構||绍兴古筝,並在架構的最初就考慮可擴展性|||咬人猫黑历史。

We should forget about small efficiencies, say about 97% of the time: premature optimization is the root of all evil.

很多人斷章取義查网时,隻看到後麵這句|-_15选5复式中奖怎么算:premature optimization is the root of all evil_|长春花卉批发,從而逃避複雜的架構設計_-_殷世航。而延遲和可擴展性絕不是小事-||038彩票10000好提现吗?,必須在係統設計之初就妥善考慮|注册返现金。

Scalability is a prerequisite to functionality, a priority-0 requirement, if ever there was one.

Randy Shoup - eBay架構師

在每一層設定性能目標

用戶響應時間不超過2秒-|甲申日,這樣的目標是不夠的_娱乐天地代理总代理,我們需要繼續分解|_|滤菌器,如網絡上耗時多少-__锰钢属于,後台處理多少時間_-水观音擦皮鞋麦词,訪問數據庫多少時間等等__野山谷团购。如此我們才能準確的定位瓶頸--拉手网团购ktv,做相應的優化_|-舞龙的意义。

測量和監測

Count what is countable, measure what is measurable, and what is not measurable, make measurable.

–伽利略

應用是否滿足目標_|038彩票信誉好不好,需要測量|韩国综艺节目runningman。如測量服務執行的時間_|-年利率是什么意思,測量單個服務器所能承受的負載重庆信鸽信息网,以及擴展後所能承受的負載||-众博彩票为什么能开?,如此才能合理的規劃係統||苏州园林卡景点,以及預期擴展所需投入的成本|_22彩票改名了。

在開發階段可以使用的測量工具包括|-_金池 后知后觉:
* 服務器端代碼 - YourKit (www.yourkit.com)|永胜彩票网APP,
* 客戶端網頁測量工具 - FireBug (getfirebug.com), YSlow (developer.yahoo.com/yslow) 或 Page Speed (code.google.com/p/page-speed)
* 壓力測試工具 - HP LoadRunner, or an open source tool such as Apache JMeter (jakarta.apache.org/jmeter), The Grinder (grinder.sourceforge.net), 或 Pylot (www.pylot.org).

運行階段的監控工具_|_周润发艺术人生:
* JMX, 或 ERMA (erma.wikidot.com),
* coherence監控 - JConsole
* 商用工具 - Evident ClearStone Live (www.evidentsoftware.com) 或 SL RTView (www.sl.com).

教育你的團隊

讓團隊達成一致的性能和可用性目標||杨洋郑爽公开恋情,並了解達成目標需要克服的問題-_|腾讯迷你网页。

推薦的書有||强心脏20110823:
1. Scalable Internet Architectures - Theo Schlossnagle
2. Building Scalable Websites - Cal Henderson
3. High Performance Websites: Essential Knowledge for Front-End Engineers
4. Even Faster Web Sites: Performance Best Practices for Web Developers - Steve Souders

總結

本章討論了如何實現性能_|jindon京东,可用性和可擴展性目標-||教师行为规范,以及coherence如何幫助我們實現目標-_优胜彩票。

為了提高性能|-卓越分分彩计划,需要減少延時和移動的數據量_女性生殖生理外阴写真。Coherence 的 near caching和 entry processors可以幫我們達到這個目標_|长阳奥特莱斯。

通過把coherence引入架構-||出口货物报关单样本,coherence可以實現最難擴展的一層 - 數據管理層的橫向擴展_|-银川到上海火车,從而避免複雜的數據庫擴展_||花都区教育局网,如cluster和sharding___青燕。

為實現高可用性__述职报告结尾,你必須消除任何單點故障-亿客隆彩票是真的吗,雖然Coherence設計上就是高可用的|_海马骑士7,但你還需保證其它部件也是同樣高可用-_|118彩票软件。通常可以引入冗餘-|-上海港湾学校学分制,通過複製_128福彩网站是真的吗。

最後__1956的娱乐平台大全,需要強調--_6120c软件下载,性能_|-金堆城贴吧,可擴展性和可用性應該從係統最初設計時考慮--_让利是什么意思,並且在運行時需要測量和監控_|-1分快3app,而不能靠後期的補救--|花果园退房。

延伸閱讀__原北京市委书记:

Tag標簽_|上海闹市裸拍女种子: 可用性   性能   目標  
  • 專題推薦

  • Directx11 遊戲編程入門教程
  • 專題主要學習DirectX的初級編程入門學習-||诺基亚6120c价格,對Directx11的入門及初學者有...... 詳細
  • Windows7係統入門 優化 技巧技術專題
  • Windows7係統專題 無論是升級操作係統|-|衡阳县红网、資料備份-_魔兽地图大唐双龙传、加強資料的安全及管...... 詳細
About IT165 - 廣告服務 - 隱私聲明 - 版權申明 - 免責條款 - 網站地圖 - 網友投稿 - 聯係方式
本站內容來自於互聯網,僅供用於網絡技術學習,學習中請遵循相關法律法規
滴滴彩票旺旺彩票千禧彩票秒速赛车神州彩神州彩

免责声明: 本站资料及图片来源互联网文章,本网不承担任何由内容信息所引起的争议和法律责任。所有作品版权归原创作者所有,与本站立场无关,如用户分享不慎侵犯了您的权益,请联系我们告知,我们将做删除处理!