荣耀彩票代理

IT技术互动交流平台

OracleCoherence3.5读书笔记之3满足性能 可扩展和可用性目标

来源:IT165收集  发布日期:2016-12-09 21:39:26

满足性能目标

荣耀彩票代理YINGXIANGCAOZUOZHIXINGSHIJIANDEZHONGYAOYINSUYOUSUANFAHESHUJUJIEGOU。ZAIFENBUSHIXITONGZHONG,HAIYOUYIGEZHONGYAODEYINSUJIUSHIWANGLUOYANSHI。

处理延时

KAIFARENYUANZAIKAIFASHITONGCHANGMEIYOUKAOLVYANSHI,CESHISHIYISHIRUCI。

荣耀彩票代理ZUOZHEJILEYIGESHILI,DUIYUYIGE20msDECAOZUO(DIANXINGDEwebCAOZUOWANCHENGSHIJIAN),ZAIBENDIZHIXINGZHIYOU0.067msYANSHI,ERKUAGUOZHIXINGSHI,XUYAO264ms。

荣耀彩票代理ERTONGCHANGYIGEwebQINGQIUXUYAODUOCIWANGFANwebFUWUQI,YANSHIJIUGENGJIAYANZHONG。YINCIYINGJIANSHAOWANGFANCISHU,JISHIDUIYUNEICUNDEFANGWENYEXURUCI。

荣耀彩票代理TONGCHANGTINGDAODEJIANYI”make your remote services coarse grained” HUO “batch multiple operations together” YEHUITONGYANGDEYISI。

减少带宽使用

依据摩尔定律,带宽通常不是问题。
荣耀彩票代理 网络延时与光速有关,不大容易改善。而带宽却在不断增加,但不代表带宽问题可以忽略。

WULUNRUHE,YINGJINLIANGJIANSHAOWANGLUOSHANGDEI/O,ZHIHUOQUBIYAODEXINXI,RUGUOSHUJULIANGGUODA,JIUJIANGCHULIXIAFANGDAOSHUJU,ERFEIXIANGFAN。

Coherence 与性能

荣耀彩票代理Coherence KEYIJIEJUEYANCHIHEDAIKUANWENTI,TONGGUOYIXIAJIGESHOUDUAN:

通过将后端数据库的数据缓存降低延迟 以及通过near-cache缓存最近使用的数据降低延迟 在数据节点可并行执行,降低延迟并减少带宽使用

满足可扩展性目标

荣耀彩票代理KEKUOZHANXINGKETONGGUOLIANGZHONGSHOUDUANSHIXIAN,scaling up HUO scaling out

scale up:
通过添加CPU/磁盘/内存等将小服务器变为大服务器
荣耀彩票代理 问题在于平衡,有时添加完CPU却发现内存成了新的瓶颈,比较昂贵。

scale out:
添加更多的集群,并分享工作负载。更廉价。
荣耀彩票代理 不过设计和管理上更复杂,例如需要从架构上消除单点故障,需要保证服务的无状态化(stateless)

无状态服务并不存在

应用层无状态化时为了更好的扩展。但应用仍然需要状态这点是不变的。
通常,状态会下移到最难扩展的数据库层。

扩展数据库非常困难

SHUJUKUBIXUMANZUACID (atomicity, consistency, isolation, durability) 。

CIPANXITONGFEICHANGZHONGYAO:WEILETIGAOBINGFA,CIPANXUYAOHELIFENBU;WEILEBAOZHENGdurability,SHUJUKUZUIZHONGSHOUXIANYUCIPANXINGNENG。

荣耀彩票代理DANGSHUJULIANGZENGJIA,YONGHUFANGWENZENGJIASHI,SHUJUKUZONGHUIDAODAJIXIAN,ZHEISHIJIUXUYAOKUOZHAN。TONGCHANGCAIYONGscale upFANGFA,DANCIFAANGGUIQIEBUKECHIXU。

ZHEISHI,KEYIZHUANERKAOLVscale outDEFANGFA。

数据库横向扩展方法

荣耀彩票代理CANJIANQIANWEN:GUANXIXINGSHUJUKUHENGXIANGKUOZHANDESANZHONGFANGFA

重新回到状态

从应用端去掉状态极大加重了数据库的负担,为了减轻数据库负担,我们还需要使状态回到应用层。
当然并非加到stateless的服务中,而是在无状态的应用逻辑和数据库间引入一个新的层次。

荣耀彩票代理ZHENGRUBellovin JIAOSHOUSUOSHUO:

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

此新抽象层需要具备以下的能力:
* 管理对象数据,因为应用可以直接操纵对象
* 对象存于内存,以提高性能和减低I/O
* 可以透明的将后端数据库数据加载到内存
* 可以将数据修改持久化到后端,通常是异步的
荣耀彩票代理 * 易于横向扩展,如同无状态的应用层

CoherenceMANZUYISHANGSUOYOUYAOQIU

使用 Coheren减少数据库负担

TONGCHANGDESHUJUKUCHAXUNDOUSHIJIYUZHUJIANDE,JIANGZHEIXIECHAXUNZHUANYIDAOYINGYONGCENGHUANCUNKEYIDADAJIANQINGHOUDUANSHUJUKUDEFUDAN。

荣耀彩票代理CoherenceDEFENBUSHIJIAGOUHAIKEYIZUOGENGDUOFUZADEGONGZUO。

荣耀彩票代理YOULEcoherence,ZHUCONGFUZHIJIUBUBIYAOLE。ZHIDUDECONGKUBEIFENBUSHIHUANCUNTIDAI,TONGSHI,ZHUKUHECONGKUDESHUJUBUYIZHIWENTIYEMEIYOULE。

HOUDUANDESHUJUKURENGXUYAOJIQUN,DANcoherenceJIANGDILEHOUDUANSHUJUKUDEYALI,JIQUNKEYIJIANDAN,JIEDIANKEYIBIANSHAO。

ERFENPIANFANGMIAN,coherenceNEIZHILEdistributed queries HE aggregationsTEXING。SHIDUOJIEDIANDECHAXUNBIANDEJIANDAN,YINGYONGYEWUXUZUOTAIDUOXIUGAI,ERQIETONGGUOFUZHIDUISHUJUJINXINGBAOHU。

Coherence与可扩展性

coherence是理想的可扩展数据管理方案。
通过添加节点就可以添加容量和吞吐量(处理能力)。
当然,应用还是需要好好的设计架构的,把一个好产品用烂的情况太多了。
好的产品 + 差的设计 = 差的产品

满足高可用性目标

为了达到高可用目标,我们需要在架构中去掉所有单点故障。
整体可用性=所有部件可用性的乘积
AS = A1 * A2 * … * An
这同时也意味着,一个部件不可用,整个系统就不可用。
因此我们需要做两件事:
1. 为每一个部件提供冗余
2. 使部件松耦合,而是故障隔离

DIERDIANTONGCHANGTONGGUOYINRUYIBUSHIXIAN,LIRUYINRUXIAOXIDUILIE,WENJIANHUANCUNDENG。ERCoherenceYEKEYIHUANCUNGENGXIN,JISHIHOUDUANSHUJUKUSHIBAIYEMEIYOUYINGXIANG。YIBUHAIKEYITIGAOTUNTULIANG。

为系统添加冗余

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%
可用性提高了。

仅有冗余是不够的

JINYOURONGYUSHIBUGOUDE,HAIXUYAOXITONGYOUZUGOUDERONGLIANGLAIMANZUFENGZHIQINGQIU,BIMIANXITONGBENGKUI。

RUGUOXITONGXUYAONGEFUWUQICHULIFENGZHIQINGQIU,JIASHEXGEFUWUQISHIXIAOHOUXITONGRENGKEYIGONGZUO,NEIMEXITONGXUYAON+XTAIFUWUQI。FOUZE,RUGUOFENGZHISHIFUWUQISHIXIAO,SHENGYUFUWUQIJIANGBUNENGCHULIQINGQIU,CONGERDAOZHIXIANGYINGSHIJIANXIAJIANG,XINGNENGJIANGDI,SHENZHIWUFAFUWU。

Coherence 和 可用性

Coherence在设计上就是高可用的,任何节点失效都不会有影响。这时通过在集群中加入复制来实现的。
每一个对象都在另一个节点有冗余,当然对于对象的更新也会增加开销,不过开销相较于集群数据库还是会小很多。不过Coherence集群的Sizing仍很重要。
另外,Coherence集群的高可用并不意味着整个系统的高可用。其它如负载均衡,路由器荣耀彩票代理,交换机等都需要冗余。

综合考虑

为性能和可用性设计

荣耀彩票代理WEIDADAOXINGNENGHEKEYONGXINGMUBIAO,BIXUDINGWEIXITONGZHONGDEDANDIANGUZHANGHEPINGJINGBINGXIAOCHUTAMEN,ZHEIXUYAOZIXIDESHEJIJIAGOU,BINGZAIJIAGOUDEZUICHUJIUKAOLVKEKUOZHANXING。

荣耀彩票代理We should forget about small efficiencies, say about 97% of the time: premature optimization is the root of all evil.

HENDUORENDUANZHANGQUYI,ZHIKANDAOHOUMIANZHEIJU:premature optimization is the root of all evil,CONGERTAOBIFUZADEJIAGOUSHEJI。ERYANCHIHEKEKUOZHANXINGJUEBUSHIXIAOSHI,BIXUZAIXITONGSHEJIZHICHUJIUTUOSHANKAOLV。

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

Randy Shoup - eBayJIAGOUSHI

在每一层设定性能目标

荣耀彩票代理YONGHUXIANGYINGSHIJIANBUCHAOGUO2MIAO,ZHEIYANGDEMUBIAOSHIBUGOUDE,WOMENXUYAOJIXUFENJIE,RUWANGLUOSHANGHAOSHIDUOSHAO,HOUTAICHULIDUOSHAOSHIJIAN,FANGWENSHUJUKUDUOSHAOSHIJIANDENGDENG。RUCIWOMENCAINENGZHUNQUEDEDINGWEIPINGJING,ZUOXIANGYINGDEYOUHUA。

测量和监测

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

–JIALILVE

YINGYONGSHIFOUMANZUMUBIAO,XUYAOCELIANG。RUCELIANGFUWUZHIXINGDESHIJIAN,CELIANGDANGEFUWUQISUONENGCHENGSHOUDEFUZAI,YIJIKUOZHANHOUSUONENGCHENGSHOUDEFUZAI,RUCICAINENGHELIDEGUIHUAXITONG,YIJIYUQIKUOZHANSUOXUTOURUDECHENGBEN。

在开发阶段可以使用的测量工具包括:
* 服务器端代码 - YourKit (www.yourkit.com),
* 客户端网页测量工具 - 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).

教育你的团队

RANGTUANDUIDACHENGYIZHIDEXINGNENGHEKEYONGXINGMUBIAO,BINGLEJIEDACHENGMUBIAOXUYAOKEFUDEWENTI。

推荐的书有:
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

总结

荣耀彩票代理BENZHANGTAOLUNLERUHESHIXIANXINGNENG,KEYONGXINGHEKEKUOZHANXINGMUBIAO,YIJIcoherenceRUHEBANGZHUWOMENSHIXIANMUBIAO。

荣耀彩票代理WEILETIGAOXINGNENG,XUYAOJIANSHAOYANSHIHEYIDONGDESHUJULIANG。Coherence DE near cachingHE entry processorsKEYIBANGWOMENDADAOZHEIGEMUBIAO。

TONGGUOBAcoherenceYINRUJIAGOU,coherenceKEYISHIXIANZUINANKUOZHANDEYICENG - SHUJUGUANLICENGDEHENGXIANGKUOZHAN,CONGERBIMIANFUZADESHUJUKUKUOZHAN,RUclusterHEsharding。

WEISHIXIANGAOKEYONGXING,NIBIXUXIAOCHURENHEDANDIANGUZHANG,SUIRANCoherenceSHEJISHANGJIUSHIGAOKEYONGDE,DANNIHAIXUBAOZHENGQITABUJIANYESHITONGYANGGAOKEYONG。TONGCHANGKEYIYINRURONGYU,TONGGUOFUZHI。

荣耀彩票代理ZUIHOU,XUYAOQIANGDIAO,XINGNENG,KEKUOZHANXINGHEKEYONGXINGYINGGAICONGXITONGZUICHUSHEJISHIKAOLV,BINGQIEZAIYUNXINGSHIXUYAOCELIANGHEJIANKONG,ERBUNENGKAOHOUQIDEBUJIU。

Tag标签:         
  • 专题推荐

About IT165 - 广告服务 - 隐私声明 - 版权申明 - 免责条款 - 网站地图 - 网友投稿 - 联系方式
本站内容来自于互联网,仅供用于网络技术学习,学习中请遵循相关法律法规