http://www.reibang.com/p/8e510857e23f
一榜配、為什么要集群?
A:并發(fā)處理能力有限(一般單臺服務(wù)器處理的并發(fā)量為250左右,超過250贞远,可能會出現(xiàn)數(shù)據(jù)丟失,鏈接不穩(wěn)定的情況)笨忌。因為單服務(wù)器的性能有限制蓝仲。所以單臺Tomcat的最大連接數(shù)有限制,
B:容錯率低官疲,一旦服務(wù)器故障袱结,整個服務(wù)就無法訪問了。
eBay于 1999年6月停機22小時的事故途凫,中斷了約230萬的拍賣垢夹,使eBay的股票下降了9.2個百分點。
C:單臺服務(wù)器計算能力低维费,無法完成復(fù)雜的海量數(shù)據(jù)計算果元。
二促王、什么是集群
集群是是指將多臺服務(wù)器集中在一起,每臺服務(wù)器都實現(xiàn)相同的業(yè)務(wù)而晒,做相同的事情蝇狼。
但是每臺服務(wù)器并不是缺一不可,存在的作用主要是緩解并發(fā)壓力和單點故障轉(zhuǎn)移問題倡怎。
可以利用一些廉價的符合工業(yè)標(biāo)準(zhǔn)的硬件構(gòu)造高性能的系統(tǒng)迅耘。
實現(xiàn):高擴展、高性能监署、低成本豹障、高可用!
2.1伸縮性(Scalability)
在一些大的系統(tǒng)中焦匈,預(yù)測最終用戶的數(shù)量和行為是非常困難的血公,伸縮性是指系統(tǒng)適應(yīng)不斷增長的用戶數(shù)的能力。提高這種并發(fā)會話能力的一種最直觀的方式就增加資源(CPU缓熟,內(nèi)存累魔,硬盤等),
集群是解決這個問題的另一種方式够滑,它允許一組服務(wù)器組在一起垦写,像單個服務(wù)器一樣分擔(dān)處理一個繁重的任務(wù),我們只需要將新的服務(wù)器加入集群中即可彰触,對于客戶來看梯投,服務(wù)無論從連續(xù)性還是性能上都幾乎沒有變化,好像系統(tǒng)在不知不覺中完成了升級
2.2高可用性(High availability)
單一服務(wù)器的解決方案并不是一個健壯方式况毅,因為容易出現(xiàn)單點失效分蓖。
像銀行、賬單處理這樣一些關(guān)鍵的應(yīng)用程序是不能容忍哪怕是幾分鐘的死機尔许。它們需要這樣一些服務(wù)在任何時間都可以訪問并在可預(yù)期的合理的時間周期內(nèi)有響應(yīng)么鹤。高可用性集群的出現(xiàn)是為了使集群的整體服務(wù)盡可能可用,以便考慮計算硬件和軟件的易錯性味廊。
如果高可用性集群中的主節(jié)點發(fā)生了故障蒸甜,那么這段時間內(nèi)將由次節(jié)點代替它。次節(jié)點通常是主節(jié)點的鏡像余佛,所以當(dāng)它代替主節(jié)點時柠新,它可以完全接管其身份,并且因此使系統(tǒng)環(huán)境對于用戶是一致的辉巡。
2.3負載均衡(Load balancing)
負載均衡集群為企業(yè)需求提供了更實用的系統(tǒng)恨憎。如名稱所暗示的,
該系統(tǒng)使負載可以在計算機集群中盡可能平均地分攤處理红氯。
該負載可能是需要均衡的應(yīng)用程序處理負載或網(wǎng)絡(luò)流量負載框咙。這樣的系統(tǒng)非常適合于運行同一組應(yīng)用程序的大量用戶咕痛。每個節(jié)點都可以處理一部分負載,并且可以在節(jié)點之間動態(tài)分配負載喇嘱,以實現(xiàn)平衡茉贡。
2.4高性能 (High Performance )
通常,第一種涉及為集群開發(fā)并行編程應(yīng)用程序者铜,以解決復(fù)雜的科學(xué)問題腔丧。這是并行計算的基礎(chǔ),盡管它不使用專門的并行超級計算機作烟,這種超級計算機內(nèi)部由十至上萬個獨立處理器組成愉粤。但它卻使用商業(yè)系統(tǒng),如通過高速連接來鏈接的一組單處理器或雙處理器 PC拿撩,并且在公共消息傳遞層上進行通信以運行并行應(yīng)用程序衣厘。因此,您會常常聽說又有一種便宜的 Linux 超級計算機問世了压恒。但它實際是一個計算機集群影暴,其處理能力與真的超級計算機相等
三、為什么要進行分布式
傳統(tǒng)的項目中探赫,我們將各個模塊放在一個系統(tǒng)中型宙,系統(tǒng)過于龐大,開發(fā)維護困難伦吠,各個功能模塊之間的耦合度增高妆兑,無法針對單個模塊進行優(yōu)化,也無法進行水平擴展毛仪。
四搁嗓、什么是分布式
分布式是指將多臺服務(wù)器集中在一起,
每臺服務(wù)器都實現(xiàn)總體中的不同業(yè)務(wù)潭千,做不同的事情谱姓。
并且每臺服務(wù)器都缺一不可,如果某臺服務(wù)器故障刨晴,則網(wǎng)站部分功能缺失,或?qū)е抡w無法運行路翻。
存在的主要作用是大幅度的提高效率狈癞,緩解服務(wù)器的訪問和存儲壓力。
注意:該圖中最大特點是:每個Web服務(wù)器(Tomcat)程序都負責(zé)一個網(wǎng)站中不同的功能茂契,缺一不可蝶桶。如果某臺服務(wù)器故障,則對應(yīng)的網(wǎng)站功能缺失掉冶,也可以導(dǎo)致其依賴功能甚至全部功能都不能夠使用真竖。
五脐雪、分布式和集群的關(guān)系。
在開發(fā)中我們可以將分布式和集群分開嗎恢共?
針對這個問題战秋,我們可以根據(jù)分布式的介紹看出,其主要的功能是用了將我們的系統(tǒng)模塊化讨韭,將系統(tǒng)進行解耦的脂信,方便我們的維護和開發(fā)的,但是其并不能解決我們的并發(fā)問題透硝,也無法保證我們的系統(tǒng)在服務(wù)器宕機后的正常運轉(zhuǎn)狰闪。
而集群呢?其恰好彌補了分布式的缺陷濒生,
集群埋泵,就是多個服務(wù)器處理相同的業(yè)務(wù),這在一方面可以解決或者說改善我們系統(tǒng)的并發(fā)問題罪治,一方面可以解決我們服務(wù)器如果出現(xiàn)一定數(shù)量的宕機后丽声,系統(tǒng)仍然可以正常運轉(zhuǎn)。
因此我說规阀,分布式和集群式一堆好基友恒序,誰也離不開誰。谁撼。歧胁。。
服務(wù)器最低配置:
pinyougou項目業(yè)務(wù)就需要30臺左右的服務(wù)器厉碟;
工具服務(wù)器還要加 zookeeper(3臺) redis(6臺) solr(6臺)
nginx(2臺) activemq(3臺) cas(2臺)
mysql(10臺+)
fastdfs(2臺)
一個pinyougou項目要65臺以上喊巍。
測試并發(fā)量2000-3000
(接口)單元測試,集成測試
測試服務(wù)器:保證測試環(huán)境和線上環(huán)境是一致的箍鼓。
git+maven+docker+jekins(持續(xù)集成測試環(huán)境)
svn+maven+hudson+jekins(持續(xù)集成測試環(huán)境)
c)責(zé)任描述:你干了什么崭参?
i.后臺系統(tǒng):運營商系統(tǒng)維護
1.商品管理
a)品牌管理
b)規(guī)格屬性管理
c)模版維護
d)商品類別維護
e)貨品—商品維護
2,表之間關(guān)系
3,權(quán)限—spring security實現(xiàn)安全認證
4,活動管理—秒殺活動,團購管理
5,積分管理
ii.報表
1.(今日熱銷商品,周熱銷商品,月銷售情況)
2.今日用戶活躍數(shù)
3.周用戶活躍數(shù)
4.月用戶活躍數(shù)
5.今日銷售金額
6.周銷售金額
7.月銷售金額
8.并發(fā)數(shù)統(tǒng)計
廣告管理:
1,表設(shè)計
2,廣告維護
3,廣告緩存—spring data redis
iii.Poi
iv.后臺系統(tǒng):商家系統(tǒng)維護
1.商品入駐申請
2.商品審核
3.商家商品維護
4.商品審核上架
搜索: spring data solr
1,主關(guān)鍵詞搜索
2,分類搜索
3,屬性搜索
4,價格搜索
5,品牌搜索
6,排序搜索
7,面包屑導(dǎo)航-----數(shù)據(jù)雙向綁定實現(xiàn)面包屑導(dǎo)航
8,同步索引庫
activeMQ同步索引庫
匹配生成索引庫數(shù)據(jù)
MQ同步索引庫
消息持久化
消息重發(fā)機制
連接池
頁面靜態(tài)化技術(shù): 提高訪問速度,提高并發(fā)能力
1,freemarker實現(xiàn)頁面靜態(tài)化
2,把生成頁面靜態(tài)化html直接上傳linux,實現(xiàn)動靜分離
3,linux靜態(tài)頁面使用nginx訪問,nginx作為http服務(wù)器
4,mq同步靜態(tài)頁面(業(yè)務(wù)流程)
購物車系統(tǒng):
1,未登錄
2,登錄
訂單系統(tǒng):
1,提交訂單—把購物車數(shù)據(jù)保存訂單表
2,生成訂單號
3,生成總金額
支付系統(tǒng):
微信支付
技術(shù):
1,dubbo+zookeeper實現(xiàn)面向服務(wù)分布式架構(gòu)
2,spring security 安全認證框架
3,spring data redis ---- redis服務(wù)器操作
4,spring data solr ------ solr
5,nginx
6,freemarker
7,activeMQ
8,cas 單點登錄框架
9,zookeeper
10,springboot
………