




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
人人網(wǎng)技術(shù)架構(gòu)介紹人人網(wǎng)·人人網(wǎng)架構(gòu)發(fā)展NuclearRose2006Let’s
Get
it
startedResin
ProMySQLInnoDB主從結(jié)構(gòu)單Storage+Squid2007突飛猛進(jìn)LVSResin
Web集群大量使用Memcached中間層,基于ICEMySQL集群,垂直分區(qū)簡單分布式StorageLucence搜索2008繼續(xù)突破開放API,SOAMySQL集群,水平分區(qū)加強(qiáng) 和安全DFS,2009
~
2010穩(wěn)健發(fā)展緊耦合=>松耦合,SOAGraceful
degradationMySQL=>NoSQL多數(shù)據(jù)中心,可擴(kuò)展,災(zāi)備關(guān)注TCO人人網(wǎng)架構(gòu)發(fā)展NuclearRose分布式key-value數(shù)據(jù)自動(dòng) 到多個(gè)節(jié)點(diǎn)數(shù)據(jù)自動(dòng)分區(qū)到不同節(jié)點(diǎn)容量無限擴(kuò)展CAP
-CAC可用性可寫入(Hinted
Handoff)不存在單點(diǎn)風(fēng)險(xiǎn)C多一致性選項(xiàng)DISCARDMINQUOROMDISCARDUOROMALL提供最終一致性Eventually
Consistent構(gòu)建NIO
NettyProtocol
BuffersSpring富數(shù)據(jù)模型Key=>List弱結(jié)構(gòu)化查詢B分區(qū)-Hash
RingC
ANode
A0~5Node
B5~10NodeC10~16增加節(jié)點(diǎn)Node
NNode
ANode
BNode
CNodeN0~2Node
A2~5Node
B5~10Node
C10~16增加節(jié)點(diǎn)A
{[c,a],[b,
c],[a,b]}B
{[a,b],[c,a],[b,c]}C
{[b,c],[a,b],[c,a]}N
{[c,n],[b,c],[a,b]}A
{[n,a],[c,n],[b,c]}B
{[a,b],[n,a],[c,n]}C
{[b,c],[a,b],[n,a]}A
[a,b]
=>
NB
[b,c]
=>
NC
[c,n]
=>
N替換節(jié)點(diǎn)A
{[d,a],[c,d],[b,c]}B
{[a,b],[d,a],[c,d]}C
{[b,c],[a,b],[d,a]}D
{[c,d],[b,c],[a,b]}N
{[d,n],[c,d],[b,c]}B
{[n,b],[d,n],[c,d]}C
{[b,c],[n,b],[d,n]}D
{[c,d],[b,c],[n,b]}B
[d,a]
=>
NC
[b,c]
=>
ND
[c,d]
=>
N刪除節(jié)點(diǎn)A
{[d,a],[c,d],[b,c]}B
{[a,b],[d,a],[c,d]}C
{[b,c],[a,b],[d,a]}D
{[c,d],[b,c],[a,b]}B
{[d,b],[c,d],[b,c]}C
{[b,c],[d,b],[c,d]}D
{[c,d],[b,c],[d,b]}C
[b,c]
=>
BD
[c,d]
=>
CB
[d,a]
=>
D節(jié)點(diǎn)狀態(tài)遷移圖Consistency和NWRW+R>NW=2
R=2
N=3系統(tǒng)保障最終的一致性Merkle
Tree系統(tǒng)組件普通節(jié)點(diǎn)(Node)接收Client請(qǐng)求提供數(shù)據(jù)中心節(jié)點(diǎn)(Seed)整個(gè)Nuclear
Instance的拓?fù)潢P(guān)系健康檢測客戶端(Nuclear
Client)提供CRUD
APINuclear
InstanceNodeANodeBNodeZ……Seed節(jié)點(diǎn)變更增加sh
node.sh
new
A刪除delete
node
A
(manage.sh)替換replace
A性能單節(jié)點(diǎn)處理最高2.5Wreq/s典型應(yīng)用環(huán)境:4
NodeMysqlN=3
W=2
R=2100
Client
Write
Request
單個(gè)Node
15862req/s
平均單次請(qǐng)求耗時(shí)5ms
99.51%請(qǐng)求耗時(shí)<50ms性能010000002000000300000040000005000000600000017
19
21
23
25
27
29
31
33
35
37
39
41
43
45
47
49
51timesClient
Write
QpstimesNuclear
Client
APIGet@param
key<String>@param
dataID<Long>@param
consistencyLevelList@param
key<String>@param
Condition<?>@param
consistencyLevelNextDataIDPut@param
key<String>@param
dataID<Long>@param
value<ByteString>@param
consistencyLevelReplace同PutdataID可選Delete@param
key<String>@param
dataID<Long>@param
consistencyLevelCode
ExampleDataIDProtocol
BufferNuclear
Manage
Client–QPS查看–Node接收請(qǐng)求總數(shù)–Node處理請(qǐng)求耗時(shí)數(shù)據(jù)–節(jié)點(diǎn)信息查看–集群拓?fù)湫畔⒉榭川C動(dòng)態(tài)更改節(jié)點(diǎn)處理線程數(shù)–Eventually
Consistent–Vector
Clock–Async
Store–Read
Cache–Balance
Monitor–BigTable
?Amazon's
Dynamo–/2007/10/amazons_dynamo.htmlCassandra–Voldemort–
/主創(chuàng)
: +人人網(wǎng)UGC團(tuán)隊(duì)–
htt
人人網(wǎng)架構(gòu)發(fā)展NuclearRoseRose人人網(wǎng)釋出的開源Web開放框架(Java)主創(chuàng): +人人網(wǎng)架構(gòu)組REST式Web開發(fā)基于Spring技術(shù)支持服務(wù)端portal100%覆蓋人人網(wǎng)Web首頁、個(gè)人主頁狀態(tài)、日志、公共主頁開放平臺(tái)人人網(wǎng)支持全線使用不斷更新穩(wěn)定發(fā)布開源路線Wiki資源假設(shè)有2個(gè)只讀資源GET
/blog/251375230/459764084這是一篇日志的URL251375230是作者的ID459764084是該日志的IDGET
/blog/251375230這是某個(gè)人的日志的URL251375230是作者的ID控制器骨架package
com.renren.blog.controllers.blog;@ReqMappublic
class("{userId:[0-9]+}")ogController
{@Getpublic
String
list(@Param("userId")
long
userId)
{return
"blog-list";}@Get("{entryId:[0-9]+}")public
String
show(@Param("userId")
long
userId,@Param("entryId")
long
entryId)
{return
"blog-show";}}視圖文件骨架根存放地址:{webapp}/viewsBlogController視圖地址:{webapp}/views/blogo
blog-list.jspo
blog-show.vmmodel:控制器-->視圖@AutowiredBlogService
blogService;@Getpublic
String
list(Invocation
inv,
@Param("userId")
long
userId){List<Entry>
entries
=
blogService.findUserEntries(userId);inv.addModel("entries",
entries);return
"blog-list";}使@Autowired工作實(shí)現(xiàn)步驟創(chuàng)建com.renren.blog.service.BlogService及其實(shí)現(xiàn)在WEB-INF下創(chuàng)建spring配置文件:applicationContext-blog.xml把BlogService實(shí)現(xiàn)配置到該文件中BlogController將自動(dòng)通過類型找到BlogService實(shí)例并注入
(dependecy
injection)@autowired機(jī)制在純粹spring中默認(rèn)是關(guān)閉的在rose下默認(rèn)是打開的,而且無法關(guān)閉部署在sourceFolder/META-INF/
下創(chuàng)建perties,寫上rose=controllers,messages,applicationContext,daojar包發(fā)布,確認(rèn)perties存在于目標(biāo)jar的META-INF下web.xml配置roseFilter<filter><filter-name>roseFilter</filter-name><filter-class>net.paoding.rose.RoseFilter</filter-class></filter><filter-map
><filter-name>roseFilter</filter-name><url-pattern>/*</url-pattern><dispatcher>REQUEST</dispatcher><dispatcher>FORWARD</dispatcher><dispatcher>INCLUDE</dispatcher></filter-map
>./start.sh可擴(kuò)展、可訂制參數(shù)解析器參數(shù)驗(yàn)證器o器錯(cuò)誤處理器flash:在重定向前后傳遞信息簡單、可層級(jí)化的
支持rose重量級(jí)插件:服務(wù)端portal技術(shù)調(diào)試工具:/rose-i
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 康復(fù)醫(yī)學(xué)試題庫(附答案)
- 《望海潮》《揚(yáng)州慢》聯(lián)讀教學(xué)設(shè)計(jì) 2023-2024學(xué)年統(tǒng)編版高中語文選擇性必修下冊(cè)
- 第6單元第3節(jié)第4課時(shí)《解決問題》導(dǎo)學(xué)案設(shè)計(jì)
- 2025年廣東環(huán)境保護(hù)工程職業(yè)學(xué)院單招職業(yè)技能測試題庫附答案
- 湖南省湘陰縣2023-2024學(xué)年高二上學(xué)期期末教學(xué)質(zhì)量監(jiān)測地理試題(解析版)
- 3 認(rèn)識(shí)方向 第二課時(shí)(教學(xué)設(shè)計(jì))-2023-2024學(xué)年二年級(jí)下冊(cè)數(shù)學(xué)蘇教版
- 2025年湖南機(jī)電職業(yè)技術(shù)學(xué)院單招職業(yè)傾向性測試題庫及答案一套
- 2025至2030年中國方形電子觸發(fā)器數(shù)據(jù)監(jiān)測研究報(bào)告
- 機(jī)械原理 CH02學(xué)習(xí)資料
- 商業(yè)銀行移動(dòng)支付業(yè)務(wù)發(fā)展情況調(diào)查報(bào)告
- 企業(yè)安全文化建設(shè)導(dǎo)則
- 職業(yè)技能等級(jí)認(rèn)定管理制度匯編
- 八年級(jí)語文上冊(cè)第六單元作業(yè)設(shè)計(jì) 品格與志趣
- C++面向?qū)ο蟪绦蛟O(shè)計(jì)雙語教程(第3版)課件全套 ch01Introduction-ch08Templates
- 電機(jī)與電氣控制技術(shù)(第2版)全套完整教學(xué)課件
- 掘進(jìn)機(jī)液壓培訓(xùn)課件
- 2023年vfp表單所有習(xí)題參考答案
- 麻醉科臨床技術(shù)操作規(guī)范2022版
- CEP注冊(cè)eCTD格式遞交的具體方法和收費(fèi)程序
- 電工維修必備基礎(chǔ)知識(shí)(圖文詳解)
- 支氣管鏡吸痰操作考核評(píng)分標(biāo)準(zhǔn)
評(píng)論
0/150
提交評(píng)論