欧美性猛交XXXX免费看蜜桃,成人网18免费韩国,亚洲国产成人精品区综合,欧美日韩一区二区三区高清不卡,亚洲综合一区二区精品久久

打開(kāi)APP
userphoto
未登錄

開(kāi)通VIP,暢享免費電子書(shū)等14項超值服

開(kāi)通VIP
分布式架構理論篇

大型分布式系統原理概述

分布式系統三要素

? CPU:處理器

? Memory:內存

? IO:外存

? MultiCore:多核心

? LocalDisk:本地磁盤(pán)

? Networker:網(wǎng)絡(luò ),網(wǎng)絡(luò )存儲

? RDMA:遠程內存直接訪(fǎng)問(wèn)

? NUMA:分布式系統CPU和內存進(jìn)行整合,對內存進(jìn)行捆綁,是硬件層級的,(相似與ThreadLocal,將數據和實(shí)時(shí)運行線(xiàn)程綁定到一起),網(wǎng)卡直接繞過(guò)CPU共享內存,速度非???/p>

?

分布式系統三要素的進(jìn)化

? 桌面級八核心十六線(xiàn)程CPU于2014年誕生,2015年Intel預計發(fā)布18核心桌面級CPU

? NUMA在大中型系統上一直非常盛行,NUMA能很好提升系統吞吐能力,特別對于Java以及數據這樣占用大內存的系統,但一直以來(lái)沒(méi)有得到 DBA 們足夠的重視、 Java領(lǐng)域也很少有人研究

? RDMA(遠程內存直接訪(fǎng)問(wèn),網(wǎng)絡(luò )傳輸協(xié)議,類(lèi)似TCP,更低延遲)是超高性能計算UHPC的重要基礎之一,而Direct Socket Protocol (SDP)作為RDMA的傳輸協(xié)議已經(jīng)在很多關(guān)鍵領(lǐng)域取代了TCP,Java7也正式開(kāi)始支持SDP,跨入了UHPC的領(lǐng)地。

? IO方面,萬(wàn)兆網(wǎng)正在崛起,萬(wàn)兆網(wǎng)的ISCSI存儲, 單通道可達到500MB/s, 每秒500,000個(gè)IO能力,而目前主流的SSD硬盤(pán)的速度是400-550MB/s。

? ===>虛擬化,大勢所趨

NUMA與RMDA(Java)

?

? 兩個(gè)核心的CPU,里面有自己的本地線(xiàn)程,內存塊整個(gè)分為兩塊,Memory1和Memory2,每個(gè)內存核心綁定它的內存和IO的PC卡劃成兩個(gè)Domain域,這兩個(gè)通過(guò)總線(xiàn)通信,這是一個(gè)典型的分布式系統,將計算能力和內存進(jìn)行了分布,BUS相當于總線(xiàn),這是一個(gè)經(jīng)典的分布式架構,它把軟件架構思想用到了硬件中

RMDA可以用InfiniBand也可以用專(zhuān)用網(wǎng)卡,SDP通信的時(shí)候應用端程序把數據寫(xiě)到緩沖區,緩沖區直接到網(wǎng)卡傳輸出去,OS旁路,CPU就是旁路,CPU不涉及到數據的傳輸,比如說(shuō)現在要傳輸一個(gè)流量,OS不會(huì )產(chǎn)生傳輸的中斷,應用緩沖區放到OS中,這是一個(gè)零拷貝的技術(shù),所以它延遲非常低, 它把OS、CPU旁路了,所以響應性能是非常高的

? 這個(gè)技術(shù)會(huì )在大數據時(shí)代發(fā)揮非常重要的作用,這種情況下,如果有硬件大的要求,那么實(shí)際網(wǎng)絡(luò )傳輸會(huì )很快從一個(gè)節點(diǎn)到另一個(gè)節點(diǎn),那么它的計算會(huì )加快很多

硬盤(pán)成了主角?

? 這種硬盤(pán)把CPU、內存、網(wǎng)卡綁定在自身上,這種硬盤(pán)已經(jīng)構成了一個(gè)小型的計算機,而且直接提供了因特網(wǎng)的傳輸節點(diǎn),這樣就可以在1U和2U的機架里面放很多塊硬盤(pán),很多小塊密集在一起就構成了一個(gè)大的密集存儲,它是一個(gè)嵌入的定制系統,它的IO傳輸效率非常高,它是TCP的網(wǎng)絡(luò )節點(diǎn),如果在之上放一個(gè)萬(wàn)兆交換機就直接構成了存儲模塊,而且價(jià)格低廉性能高,拓展性高,專(zhuān)供云計算

最成功的企業(yè)級分布式系統架構——J2EE

? Java在很多人看來(lái)等同于J2EE(企業(yè)級的應用開(kāi)發(fā)框架),這是其他任何語(yǔ)言都沒(méi)有過(guò)的奇跡

? 1999年J2EE誕生,J2EE一出臺就能夠為人們提供一幅完整、直觀(guān)而不失深邃的圖景

? 到2000年底為止,共有15家廠(chǎng)商能夠提供完整的J2EE解決方案,這些中的大多數都是IT界的大佬

? 2008年J2EE里的實(shí)力派BEA公司被Oracle 85億收購, 對比2009年74億收購了SUN

? J2EE規范是一系列符合工業(yè)級技術(shù)和質(zhì)量標準的規范,學(xué)術(shù)機構、業(yè)內廠(chǎng)商都廣泛參與討論和規劃,擁有一個(gè)龐大的社區

? 直到今天,J2EE里的JDBC、 Servlet/JSP等技術(shù)仍然是企業(yè)級應用開(kāi)發(fā)必不可缺少的關(guān)鍵技術(shù)

奠定分布式系統架構基礎的那些組件


? 三層結構,客戶(hù)端、中間層(WEB(servlet)/EJB),

JNDI:提供查詢(xún)服務(wù),服務(wù)定位,技術(shù)中間件,比如說(shuō)協(xié)議+IP+端口,基礎設施

JMS:消息中間件

RMI:RPC遠程服務(wù)調用,兩者通信,相當于訪(fǎng)問(wèn)本地方法一樣訪(fǎng)問(wèn)遠程方法,基礎設施

大數據和移動(dòng)互聯(lián)網(wǎng)引發(fā)的革新


? 移動(dòng)互聯(lián)網(wǎng)=用戶(hù)數據,特點(diǎn)就是隨時(shí)接納用戶(hù)數據,所有互聯(lián)網(wǎng)公司競爭燒錢(qián)就是為了攢用戶(hù),用戶(hù)會(huì )產(chǎn)生很多數據,這些數據非常有價(jià)值,這種價(jià)值挖掘經(jīng)過(guò)大數據處理,這種數據處理規模非常大,跟傳統的企業(yè)級開(kāi)發(fā)不一樣,它需要專(zhuān)用的軟件和算法來(lái)處理這些數據,這些數據處理的目的就是預測機會(huì )商機,這些機會(huì )商機意為著(zhù)更早的轉化更多的金錢(qián),這些圍繞著(zhù)大數據, 這里面有一個(gè)很重要的因素叫做時(shí)間,如果一個(gè)人 一周后得到結果和另一個(gè)人一周后得到結果,這種數據就喪失更多的價(jià)值, 因此時(shí)間是非常關(guān)鍵制約點(diǎn),導致大數據發(fā)生了很多變動(dòng),就是實(shí)時(shí),像Hadoop這種批處理的離線(xiàn)數據處理更多了轉向了Spark和Storm這種實(shí)時(shí)性,數據上往往加上時(shí)間的緯度,可以把不同的數據根據不同的數據進(jìn)行處理,快速高效的進(jìn)行處理,可以做行為軌跡分析

云計算所引導的軟件定義世界,意味著(zhù)什么


? 云計算的三個(gè)突出特點(diǎn),硬件虛擬化、軟件定義網(wǎng)絡(luò )、軟件定義存儲,這意味一個(gè)軟件架構師可以從軟件角度架構整個(gè)項目,從部署到上線(xiàn)

一切都在悄然進(jìn)化著(zhù),一個(gè)我們熟悉而又陌生的新世界

? 開(kāi)源、分布式系統中重要的中間件或基礎設施

分布式系統之網(wǎng)絡(luò )篇

80%的程序員所欠缺的網(wǎng)絡(luò )知識

服務(wù)器網(wǎng)卡的一些秘密

? 硬件不同

? 傳統的PC機器的PCI接口66MHz 133Mb/s而服務(wù)器的主板支持PCI-E X16 8bit 2.5GHz 8Gb/sTCP/IP卸載引擎(TOE)技術(shù)

? 價(jià)格昂貴

? 性能出眾

? Intel x520-t2 10Gbase-t萬(wàn)兆網(wǎng)卡(4800元報價(jià))測試,單端口單向實(shí)際測試結果是1248MB/s(9984Mbps), 達到理論峰值的99.84%

? 技術(shù)門(mén)檻高

? intel、BROADCOM、H3C(新IT基礎架構領(lǐng)導者)

MAC地址、 IP、子網(wǎng)掩碼、網(wǎng)關(guān)及路由

![MAC地址、 IP、子網(wǎng)掩碼、網(wǎng)關(guān)及路由](C:\Users\linyi\Desktop\我的博客資料\MAC地址、 IP、子網(wǎng)掩碼、網(wǎng)關(guān)及路由.png)

VLAN的原理

管理網(wǎng)絡(luò )、業(yè)務(wù)網(wǎng)絡(luò )、存儲網(wǎng)絡(luò )

網(wǎng)絡(luò )的最前沿技術(shù)之網(wǎng)絡(luò )虛擬化

服務(wù)器虛擬化技術(shù)與網(wǎng)絡(luò )虛擬化技術(shù)相輔相成

Open vswitch

![Open vswitch](C:\Users\linyi\Desktop\我的博客資料\Open vswitch.png)

SDN&網(wǎng)絡(luò )虛擬化

關(guān)于NIO與AIO的那些小秘密

Linux AIO的奇葩十年路

![Linux AIO的奇葩十年路](C:\Users\linyi\Desktop\我的博客資料\linux AIO的奇葩十年路.png)

Java NIO VS AIO

? AIO帶來(lái)了編程的大幅簡(jiǎn)化和優(yōu)化
? AIO性能目前不如NIO
? AIO當前比較適合大文件的讀寫(xiě)
? 現階段網(wǎng)絡(luò )編程主要還是NIO

NIO最佳實(shí)踐

Reactor線(xiàn)程的數量

Direct Buffer Pool的使用

Reactor線(xiàn)程與異步線(xiàn)程池的合理使用

國內最好的NIO實(shí)踐,就在開(kāi)源項目Mycat里

Java AIO編程框架

![Java AIO編程框架](C:\Users\linyi\Desktop\我的博客資料\java AIO編程框架.png)

網(wǎng)絡(luò )編程中的一朵金花之Netty

為什么選擇Netty

? NIO入門(mén)門(mén)檻高,精通很困難

? 除了NIO本身,企業(yè)級的Socket Server還需要大量外圍代碼開(kāi)發(fā)

? Netty是業(yè)界最流行的NIO框架之一,幾乎沒(méi)有對手

? Netty的作者也是開(kāi)發(fā)了大名鼎鼎的Apache Mina的作者

Netty的優(yōu)勢

? 多種Reactor線(xiàn)程池模式

? 網(wǎng)絡(luò )數據串行處理,減少線(xiàn)程切換

? 強大的Buffer池

? 嫻熟的高并發(fā)編程技巧(Volatile、CAS、 ThreadLocal等的使用)

? 作者很多年網(wǎng)絡(luò )編程經(jīng)驗的積累與提升

Netty默認提供了對Google Protobuf的支持,通過(guò)擴展Netty的編解碼接口,用戶(hù)可以實(shí)現其它的高性能序列化框架,例如Thrift的壓縮二進(jìn)制編解碼框架

![Netty默認提供了對Google Protobuf的支持,通過(guò)擴展Netty的編解碼接口,用戶(hù)可以實(shí)現其它的高性能序列化框架,例如Thrift的壓縮二進(jìn)制編解碼框架 ](C:\Users\linyi\Desktop\我的博客資料\Netty默認提供了對Google Protobuf的支持,通過(guò)擴展Netty的編解碼接口,用戶(hù)可以實(shí)現其它的高性能序列化框架,例如Thrift的壓縮二進(jìn)制編解碼框架 .png)

Vert.x—— JVM上的Node.js

![Vert.x—— JVM上的Node.js](C:\Users\linyi\Desktop\我的博客資料\Vert.x—— JVM上的node.js.png)

網(wǎng)絡(luò )編程中的瑞士軍刀之Zookeeper

Zookpeer能做什么

? 類(lèi)似JNDI的命名服務(wù)

? 實(shí)現分布式系統中的配置服務(wù)

? 提供簡(jiǎn)單好用的分布式同步服務(wù)

? 提供簡(jiǎn)單好用的分布式協(xié)調框架

? 可以作為一個(gè)簡(jiǎn)單的可靠的消息隊列

Zookpeer的原理

? ZK提供類(lèi)似文件目錄樹(shù)的數據結構,每個(gè)節點(diǎn)可以設置byte[]數據

? 節點(diǎn)類(lèi)型可以是持久化保存的,也可以是臨時(shí)的(EPHEMERAL)

Zookeeper 特點(diǎn)

? 原子性:更新要么成功,要么失敗,不會(huì )出現部分更新

? 可靠性:一旦數據更新成功,將一直保持,直到新的更新

? 單一性 :無(wú)論客戶(hù)端連接哪個(gè)server,都會(huì )看到同一個(gè)視圖

? 及時(shí)性:客戶(hù)端會(huì )在一個(gè)確定的時(shí)間內得到最新的數據。

? 等待無(wú)關(guān):慢的或者失效的client不得干預快速的client的請求,使得每個(gè)client都能有效的等待

? 順序一致性:按照客戶(hù)端發(fā)送請求的順序更新數據,包括全局有序和偏序兩種:全局有序是指如果在一臺服務(wù)器上消息a在消息b前發(fā)布,則在所有Server上消息a都將在消息b前被發(fā)布;偏序是指如果一個(gè)消息b在消息a后被同一個(gè)發(fā)送者發(fā)布,a必將排在b前面

ZK應用場(chǎng)景之命名服務(wù)

? ZK創(chuàng )建一個(gè)節點(diǎn)后,節點(diǎn)的路徑就是全局唯一的,可以作為全局名稱(chēng)使用

?

ZK應用場(chǎng)景之分布式配置管理

?

ZK應用場(chǎng)景之分布式集群管理

? 每個(gè)節點(diǎn)(進(jìn)程)啟動(dòng)的時(shí)候在ZK路徑GroupMembers下建立子路徑(節點(diǎn)ID為路徑名),通信地址Endpoint則寫(xiě)到路徑的Data中

? 每個(gè)節點(diǎn)監聽(tīng)ZK路徑GroupMembers,當集群中增加新節點(diǎn)或故障節點(diǎn)下線(xiàn),每個(gè)節點(diǎn)都會(huì )獲得通知

?

ZK應用場(chǎng)景之消息隊列

? 消息發(fā)送方在ZK上創(chuàng )建一個(gè)Path,發(fā)送消息時(shí),將消息信息設置為該Path的內容,而消息接收方則監聽(tīng)此Path,實(shí)現了簡(jiǎn)單可靠的發(fā)布訂閱模式的消息隊列

?

ZK應用場(chǎng)景之分布式鎖

? Zookeeper能保證數據的強一致性,用戶(hù)任何時(shí)候都可以相信集群中每個(gè)節點(diǎn)的數據都是相同的。一個(gè)用戶(hù)創(chuàng )建一個(gè)節點(diǎn)作為鎖,另一個(gè)用戶(hù)檢測該節點(diǎn),如果存在,代表別的用戶(hù)已經(jīng)鎖住,如果不存在,則可以創(chuàng )建一個(gè)節點(diǎn),代表?yè)碛幸粋€(gè)鎖

Zookeeper的性能調優(yōu)和規模

? ZK的日志文件和snapshort文件分別放在兩塊硬盤(pán)上

? Leader節點(diǎn)不允許Client連接

? 網(wǎng)上所能見(jiàn)到的信息,最大為1萬(wàn)個(gè)連接(客戶(hù)端),
5節點(diǎn)的ZK集群

Zookeeper客戶(hù)端Curator

? “Guava is to Java what Curator is to Zookeeper Patrick Hunt,Zookeeper committer”

? Fluent Style風(fēng)格

? ![Zookeeper客戶(hù)端Curator之Fluent Style風(fēng)格](C:\Users\linyi\Desktop\我的博客資料\Zookeeper客戶(hù)端Curator之Fluent Style風(fēng)格.png)

? NetFlix出品

? 極大程度上減少了程序猿的負擔
? 接管了Client與Server的連接重連問(wèn)題
? 提供了各種常用ZK應用場(chǎng)景的抽象封裝(如共享鎖服務(wù)、 Leader選舉)

Curator的關(guān)鍵用法

? 列出子目錄: CuratorFramework.getChildren().forPath(path)

?

public boolean exists(String parentPath,String path) throws Exception{    Stat stat = zk.checkExists().forPath(parentPath+"/"+path);    return (stat != null );}
  • 1
  • 2
  • 3
  • 4
  • 1
  • 2
  • 3
  • 4

? 創(chuàng )建目錄

? result = zk.create().withMode(createMode).forPath(path,nodeData);

? 監聽(tīng)ZK節點(diǎn)的變化并做出相應的處理

?

Curator的幾個(gè)問(wèn)題

若ZK Server還未啟動(dòng),用戶(hù)程序先啟動(dòng)了,則雖然Curator能夠后來(lái)自動(dòng)重連上,但之前的創(chuàng )建節點(diǎn)和監聽(tīng)事件將不會(huì )起效.

List<PathChildrenCache> allZKWathers = new LinkedList<PathChildrenCache>();PathChildrenCache cache = new PathChildrenCache(zk, path, false);cache.getListenable().addListener(plis);cache.start();allZKWathers.add(cache);
  • 1
  • 2
  • 3
  • 4
  • 5
  • 1
  • 2
  • 3
  • 4
  • 5

方法一:

? org.apache.zookeeper.Watcher來(lái)監聽(tīng)Connection的狀態(tài),CuratorZookeeperClient(connectString,TimeoutMs, int connectionTimeoutMs,watcher, retryPolicy)
當連接建立后觸發(fā)PathChildrenCache的rebuild方法,重新監聽(tīng)路徑
方法二:定時(shí)線(xiàn)程,每隔幾分鐘調用PathChildrenCache的rebuild方法

Netty+Zookeeper實(shí)踐項目分析

分布式系統之文件

Linux文件系統的進(jìn)化

? 兩種文件系統

? 日志型的與非日志型的

? 非日志型文件系統

? ext2、 FAT、 VFAT、 HPFS(OS/2)、 NTFS、 Sun的UFS等

? 日志型文件系統

? ext3 許多流行的Linux發(fā)行版默認的文件系統

? ext4 由ext3增加許多顯著(zhù)特性和擴展進(jìn)化而來(lái)的文件系統

? ReiserFS 全新設計的文件系統

? JFS IBM移植的UNIX文件系統

? XFS 為高性能和大文件設計的文件系統

? Btrfs 校檢copy-on-write(寫(xiě)入時(shí)復制)文件系統

? ext4(6) —–> XFS(7)

? 當前文件系統中的幾個(gè)強者

? Facebook已經(jīng)開(kāi)始全線(xiàn)換用btrfs

? 紅帽的Red 6使用ext4, 7則使用了XFS

? 浙江省十二五重大科技專(zhuān)項資助項目研究了ZFS在基于hadoop的視頻存儲系統中的應用

? 經(jīng)典的第一代分布式文件系統NFS

傳統的分布式文件系統

經(jīng)典的第一代分布式文件系統NFS

?

? 一個(gè)分布式文件系統中有兩種不同的軟件:客戶(hù)端文件系統
和文件服務(wù)器。它們的行為共同決定分布式文件系統的行為

對后來(lái)的分布式文件系統有重要影響的AFS

新型分布式文件系統

PVFS, Linux開(kāi)源的并行虛擬文件系統

? ![PVFS, Linux開(kāi)源的并行虛擬文件系統](C:\Users\linyi\Desktop\我的博客資料\PVFS, Linux開(kāi)源的并行虛擬文件系統.png)

? 管理節點(diǎn): 即元數據服務(wù)器,負責管理所有的文件元數
據信息;

? I/O節點(diǎn): 運行I/O服務(wù)器,負責分布式文件系統中數據
的存儲和檢索;

? 計算節點(diǎn): 處理應用訪(fǎng)問(wèn),通過(guò)PVFS專(zhuān)有的libpvfs接口
庫,從底層訪(fǎng)問(wèn)PVFS服務(wù)器。

Lustre ,專(zhuān)門(mén)針對高性能計算的基于對象存儲的分布式文件系統

![Lustre ,專(zhuān)門(mén)針對高性能計算的基于對象存儲的分布式文件系統](C:\Users\linyi\Desktop\我的博客資料\Lustre ,專(zhuān)門(mén)針對高性能計算的基于對象存儲的分布式文件系統.png)

條帶化

gluster fs:代替Lustre的開(kāi)源的分布式文件系統

Google文件系統(GoogleFS)

HDFS(Hadoop)

ceph:新一代的復合型分布式文件系統

? Ceph是統一存儲系統,支持三種接口。

? Object: 有原生的API, 而且也兼容Swift和S3的API

? Block: 支持精簡(jiǎn)配置、快照、克隆

? File: Posix接口,支持快照

互聯(lián)網(wǎng)領(lǐng)域中的小文件系統

? MogileFS——影響最大的互聯(lián)網(wǎng)小文件系統

? FastDFS——窮人的解決方案(國產(chǎn)小有名氣)

? TFS——淘寶的HDFS Copy版本

? GridFS——

MogileFS架構和原理

?

? 在MogileFS分布式文件存儲系統中,文件通過(guò) KEY 來(lái)引用, KEY 在同一個(gè)domain(存儲域)下是唯一的,每個(gè)存儲域可以定義不同的文件類(lèi)別Class,可以針對不同的存儲類(lèi)別設置存儲不同份數的文件副本

MogileFS的特性

? 應用層 — 不需要特殊的核心組件

? 無(wú)單點(diǎn)失敗 — MogileFS分布式文件存儲系統安裝的三個(gè)組件(存儲節點(diǎn)、跟蹤器、跟蹤用的數據庫),均可運行在多個(gè) 機器上,因此沒(méi)有單點(diǎn)失敗, 推薦至少兩臺機器。

? 自動(dòng)的文件復制 — 基于不同的文件“分類(lèi)” ,文件可以被自動(dòng)的復制到多個(gè)有足夠存儲空間的存儲節點(diǎn)上,這樣可以滿(mǎn)足這個(gè)“類(lèi)別”的最少復制要求.比如你有一個(gè)圖片網(wǎng)站,你可以設置原始的JPEG圖片需要復制 至少三份,但實(shí)際只有1or2份拷貝,如果丟失了數據,那么MogileFS分布式文件存儲系統可以重新建立遺失的拷貝數

? “比RAID好多了” —RAID磁盤(pán)是冗余的,但主機不是,如果你整個(gè)機器壞了,那么文件也將不能訪(fǎng)問(wèn). MogileFS分布式文件存儲系統在不同的機器之間進(jìn)行文件復制,因此文件始終是可用的

? 不需要RAID — 在MogileFS中的磁盤(pán)可以是做了RAID的也可以是沒(méi)有,如果是為了安全性著(zhù)想的話(huà)RAID沒(méi)有必要買(mǎi)了,因為MogileFS分布式文件存儲系統已經(jīng)提供了.

? 簡(jiǎn)單的命名空間 –文件通過(guò)一個(gè)給定的key來(lái)確定,是一個(gè)全局的命名空間

? 不用共享任何東西 — MogileFS分布式文件存儲系統不需要依靠昂貴的SAN來(lái)共享磁盤(pán),每個(gè)機器只用維護好自己的磁盤(pán).

? 傳輸中立,無(wú)特殊協(xié)議 — MogileFS分布式文件存儲系統客戶(hù)端可以通過(guò)NFS或HTTP來(lái)和MogileFS的存儲節點(diǎn)來(lái)通信,但首先需要告知跟蹤器一下

MogileFS+Nginx的負載均衡部署方案

FastDFS架構和原理

每個(gè)存儲服務(wù)器都需要定時(shí)將自身的信息上報給tracker,這些信息就包括了本地同步時(shí)間(即,同步
到的最新文件的時(shí)間戳)。而tracker根據各個(gè)存儲服務(wù)器的上報情況,就能夠知道剛剛上傳的文件,在該存儲組中是否已完成了同步

FastDFS的FID

? 精巧的FID:

FastDFS的特性

? FastDFS和MogileFS相比,沒(méi)有文件索引數據庫,C語(yǔ)義開(kāi)發(fā),TCP Socket方式,整體性能更高

? 相對于MogileFS更為簡(jiǎn)單

? FastDFS的日志記錄非常詳細,便于排除問(wèn)題

? 安裝配置相對簡(jiǎn)單

? 目前只有一個(gè)人維護,是潛在的風(fēng)險

TFS原理和架構

?

TFS文件名的結構

?

TFS的特性

? 總體參考HDFS架構和原理,細節方面則考慮的是小文件(<1M)的優(yōu)化訪(fǎng)問(wèn)

? 在TFS的設計里面對應著(zhù)是一個(gè)block同時(shí)只能有一個(gè)寫(xiě)或者更新操作。

? 隨著(zhù)寫(xiě)壓力的增加,讀文件的TPS會(huì )大幅下滑。

TFS的淘寶部署案例

? 淘寶網(wǎng)圖片存儲與處理系統全局拓撲

圖片服務(wù)器前端還有一級和二級緩存服務(wù)器,盡量讓圖片在緩存中命中,最大程度的避免圖片熱點(diǎn),實(shí)際上后端到達TFS的流量已經(jīng)非常離散和平均。

分布式系統之內存

內存計算

服務(wù)器內存究竟能多大、能多貴、能多快

?

預計未來(lái)5到10年,關(guān)系數據庫將徹底消失,屆時(shí)所有的SAP產(chǎn)品都將使用HANA——2011年

? 內存計算的模式將能幫助企業(yè)分析數據的速度提升10萬(wàn)倍(相比傳統關(guān)系數據庫)。這也就意味著(zhù)以前需要數小時(shí)的分析現在幾秒鐘內就可以完成?!?
? Bussmann所在的團隊在2010年10月份的時(shí)候,通過(guò)概念證明SAP數據分析速度有望提升14000倍,以前需要花費5小時(shí)分析處理完數據,現在僅需要1秒鐘則可以迅速完成。

SAP HANA超級內存數據庫

![SAP HANA超級內存數據庫](C:\Users\linyi\Desktop\我的博客資料\SAP HANA超級內存數據庫.png)

分布式內存整合計算的典型代表Pivotal GemFire

![分布式內存整合計算的典型代表Pivotal GemFire](C:\Users\linyi\Desktop\我的博客資料\分布式內存整合計算的典型代表Pivotal GemFire.png)

Gemfire+12306讓中國人回家過(guò)年更方便?

部署數百個(gè)Pivotal Gemfire節點(diǎn)

![部署數百個(gè)Pivotal Gemfire節點(diǎn)](C:\Users\linyi\Desktop\我的博客資料\部署數百個(gè)Pivotal Gemfire節點(diǎn).png)

在2015年春運購票高峰之前,考慮到超大并發(fā)會(huì )造成網(wǎng)絡(luò )流量大以及阻塞的問(wèn)題,今年特別在阿里云建立一個(gè)數據中心,由阿里云提供“虛擬機”
的租賃服務(wù),將基于Gemfire實(shí)現余票查詢(xún)功能的系統以及Web服務(wù)部署在這些虛擬機上,以分流“余票查詢(xún)”請求Gemfire+12306讓中國人回家過(guò)年更方便?部署數百個(gè)Pivotal Gemfire節點(diǎn)技術(shù)改造之后,在只采用10幾臺X86服務(wù)器實(shí)現了以前數十臺小型機的余票計算和查詢(xún)能力,單次
查詢(xún)的最長(cháng)時(shí)間從之前的15秒左右下降到0.2秒以下,縮短了75倍以上。 2012年春運的極端高流量并發(fā)情況下,系統幾近癱瘓。而在改造之后,支持每秒上萬(wàn)次的并發(fā)查詢(xún),高峰期間達到2.6萬(wàn)個(gè)查詢(xún)/秒吞吐量,整個(gè)系統效率顯著(zhù)提高。舊系統每秒只能支持300-400個(gè)查詢(xún)/秒的吞吐量

內存計算為什么這么快

? 當前計算架構的瓶頸在存儲,處理器的速度按照摩爾定律翻番增長(cháng),而磁盤(pán)存儲的速度增長(cháng)很緩慢,由此造成巨大高達10萬(wàn)倍的差距

IMDG

? In Memory Data Grid(“內存數據網(wǎng)格”)

? 首先自然是網(wǎng)格式分布式存儲

? 所有數據存于內存(RAM)

? 存儲服務(wù)器數量可隨時(shí)增減

? 數據模型是非關(guān)系模型, 而是基于對象模型

? 在網(wǎng)格內的某一臺存儲服務(wù)器的啟動(dòng)和關(guān)閉不會(huì )影響到網(wǎng)格內的其他服務(wù)器

IMDG產(chǎn)品

Hazelcast & GridGain

Hazelcast是什么

? 2008年開(kāi)源項目,目標是一個(gè)簡(jiǎn)單的分布式Java Map

? 目前的定位是Java分布式內存網(wǎng)格

Hazelcast架構

Hazelcast企業(yè)版的最強特性之堆外緩存

默認512M OS的內存池,分為默認4M大小的管理單元,默認采用ThreadLocal方式管理內存單元。
存在用來(lái)存放Index、偏移量等Metadata信息的內存單元, MetaData的占用空間默認是12%

GridGain

? 作為另一款主流的開(kāi)源數據網(wǎng)格產(chǎn)品,GridGain是Hazelcast的強有力競爭者。同樣提供了社區版和商業(yè)版,近日GridGain的開(kāi)源版本已經(jīng)進(jìn)入Apache孵化器項目Ignite(一款開(kāi)源的內存計算(In-MemoryComputing)IMC中間件),目前Apache正在遷移GridGain開(kāi)源版本的代碼到Ignite項目

? GridGain在開(kāi)源版本中就提供了堆外存儲功能, 當堆和非堆內存都不足時(shí),還可以開(kāi)啟SWAP,將數據溢出到磁盤(pán)

? GridGain使用2PC(兩階段提交)協(xié)議實(shí)現分布式事務(wù),事務(wù)級別支持三種事務(wù)隔離級別

? GGFS(GridGain In-Memory File System), 類(lèi)似Spark生態(tài)圈中的Tachyon, 能夠加速MapReduce任務(wù)的執行

? 流式數據/事件處理,可以作為CEP事件處理器

Apache Ignite項目憑借其業(yè)界領(lǐng)先的事務(wù)處理能力在新興的混合型的OLTP/ OLAP用例方面更勝一籌。特別是針對Hadoop, Apache Ignite將為現有的Map/Reduce, Pig或Hive作業(yè)提供即插即用式的加速,避免了推倒重來(lái)的做法
Apache Ignite成為未來(lái)的快速數據世界(Fast Data world),如同Hadoop是今天的大數據。

GridGain是一個(gè)融合了各種實(shí)時(shí)/內存計算技術(shù)的平臺

Memcached

? Web系統中使用最為廣泛的分布式Key/value緩存中間件

Memcached最佳實(shí)踐

? 最適合存儲小數據,并且存儲的數據是大小一致的

? Memcached在很多時(shí)候都是作為數據庫前端cache使用

? 虛機上不適合部署Memcached

? 確保Memcached的內存不會(huì )被Swap出去

? 不能便利所有數據,這將導致嚴重性能問(wèn)題

? Local Cache+ Memcached這種分層Cache還是很有價(jià)值

? Memcached啟動(dòng)預熱是一個(gè)好辦法

Redis

? 是Memcached的一個(gè)強有力的補充,同時(shí)也是一個(gè)有顯著(zhù)
不同的新產(chǎn)品

? Redis擴展了key-Value的范圍, Value可以是List, Set,Hashes, Sorted Set等數據結構,同時(shí)增加了新指令針對這些數據結構:如Set的union, List的pop等操作指令

? 比如Subscribe/publish命令,以支持發(fā)布/訂閱模式這樣的通知機制等等

? redis通過(guò)Multi / Watch /Exec等命令可以支持事務(wù)的概念,原子性的執行一批命令。

? Redis 3.0開(kāi)始實(shí)現Cluster方案,但沒(méi)有采用一致性Hash

Redis事務(wù)問(wèn)題

?

redis 數據集結構體 redisDB 和客戶(hù)端結構體 redisClient
都會(huì )保存鍵值監視的相關(guān)數據

一個(gè)Redis集群包含16384個(gè)哈希槽(hash slot),數據庫中的每個(gè)鍵都屬于這個(gè)16384個(gè)哈希槽的其中一個(gè),集群使用公式CRC16(key) % 16384來(lái)計算鍵key屬于哪個(gè)槽,其中CRC16(key)語(yǔ)句用于計算鍵key的CRC16校驗和。

Redis vs Memcache

? 簡(jiǎn)單數據結構下Memcache的多線(xiàn)程架構有優(yōu)勢

? 僅僅從用做緩存的角度, Memcache還是無(wú)法被替代

? Redis具備向數據庫考慮的能力,但這些方面并沒(méi)有特別強的優(yōu)勢

? 不要求關(guān)系數據庫質(zhì)量級別的交易時(shí), Redis可以取代一些特定場(chǎng)合的數據庫操作,比如秒殺這樣的系統

分布式系統存儲之基于內存的兩表Join

A表為Person { id、 name }
B表為Order{id,orderId,amount(金額) }
關(guān)聯(lián)關(guān)系為order.orderid=person.id
求計算結果 select p.id,sum(o.amount),count(*) from person p ,order o where
order.orderid=person.id order by sum limit 1000
Person、 Order的數據分別存在CSV文件中 ,數量各自是1億、 10億,數據隨機制造,保證基本都有關(guān)聯(lián)
采用Hazelcast或GridGain的API完成,需要找出這兩個(gè)產(chǎn)品中最合適的API來(lái)完成Join、 Group、 Order等操作

分布式系統之分布式數據庫篇

分布式數據庫那點(diǎn)事

Oracle怎么實(shí)現分布式——Oracle Rac

![oracle怎么實(shí)現分布式——Oracle Rac](C:\Users\linyi\Desktop\我的博客資料\Oracle怎么實(shí)現分布式——Oracle Rac.png)

?

? 1.多節點(diǎn)負載均衡;

? 2.通過(guò)并行執行技術(shù)提高事務(wù)響應時(shí)間—-通常用于數據分
析系統;

? 3.通過(guò)橫向擴展提高每秒交易數和連接數 ;—-通常對于聯(lián)

機事務(wù)系統;

? 4.節約硬件成本,可以用多個(gè)廉價(jià)PC服務(wù)器代替昂貴的小
型機或大型機,同時(shí)節約相應維護成本;
? 5.可擴展性好,可以方便添加刪除節點(diǎn),擴展硬件資源;

往往人們會(huì )認為RAC有2個(gè)節點(diǎn)性能就會(huì )提升2倍,這是一個(gè)誤區,由于要保證數據的一致性往往性能會(huì )消耗在內存間的數據塊相互拷貝和交叉上,因此不一定性能會(huì )好于單
節點(diǎn),而且節點(diǎn)越多性能曲線(xiàn)就會(huì )下降越快

Oracle Rac的緩存融合技術(shù)(Cache fusion)

![Oracle Rac的緩存融合技術(shù)(Cache fusion)1](C:\Users\linyi\Desktop\我的博客資料\Oracle Rac的緩存融合技術(shù)(Cache fusion)1.png)

1.保證緩存的一致性
2.減少共享磁盤(pán)IO的消耗
3.在RAC環(huán)境中多個(gè)節點(diǎn)保留了同一份的DB CACHE

![Oracle Rac的緩存融合技術(shù)(Cache fusion)2](C:\Users\linyi\Desktop\我的博客資料\Oracle Rac的緩存融合技術(shù)(Cache fusion)2.png)

Oracle Rac雙節點(diǎn)HA的原理和流程

![Oracle Rac雙節點(diǎn)HA的原理和流程](C:\Users\linyi\Desktop\我的博客資料\Oracle Rac雙節點(diǎn)HA的原理和流程.png)

在生產(chǎn)使用中,突然instance1 shutdown,那么在其上面沒(méi)有完成的事物如何處理呢。
? 1)當實(shí)例1 crash后,實(shí)例2通過(guò)VIP就可以知道實(shí)例1已經(jīng)down了。
? 2)此時(shí)需要處理的有2部分數據,一部分是commit的數據,一部分非commit數據
? 3)對于已經(jīng)commit寫(xiě)入redo日志但是還沒(méi)有來(lái)得及寫(xiě)入數據文件的記錄,實(shí)例2可以訪(fǎng)問(wèn)實(shí)例1的redo log并從最后一次check point之后的信息開(kāi)始實(shí)例恢復。把數據同步到最新?tīng)顟B(tài)。
? 4)對于沒(méi)有commit的數據利用undo舊映像進(jìn)行回滾事物。

MySQL Cluster

MySQL集群是一種在無(wú)共享架構(SNA, Share NothingArchitecture)系統里應用內存數據庫集群的技術(shù)。這種無(wú)共享的架構可以使得系統使用低廉的硬件獲取高的可擴
展性。 mysql集群是一種分布式設計,目標是要達到?jīng)]有任何單點(diǎn)故障點(diǎn)。因此,任何組成部分都應該擁有自己的內存和磁盤(pán)。

![MySQL Cluster](C:\Users\linyi\Desktop\我的博客資料\MySQL Cluster.png)

優(yōu)點(diǎn):
? 1) 99.999 %的高可用性
? 2) 快速的自動(dòng)失效切換
? 3) 靈活的分布式體系結構,沒(méi)有單點(diǎn)故障
? 4) 高吞吐量和低延遲
? 5) 可擴展性強,支持在線(xiàn)擴容

VoltDB

VoltDB Streaming Data Pipeline

![VoltDB Streaming Data Pipeline](C:\Users\linyi\Desktop\我的博客資料\VoltDB Streaming Data Pipeline.png)

分布式數據庫熱點(diǎn)技術(shù)

數據分片與擴容

CAP理論

CA,沒(méi)有擴展性,如MySQL、 Oracle等
CP ,不能忍受節點(diǎn)宕機,有Oracle RAC、 Sybase集群等
AP,犧牲數據一致性,多數NoSQL系統采用

ACID vs BASE

BASE, 最終一致性這個(gè)理論由 B asically A vailable, S oftstate, E ventual consistency 組成。核心的概念是Eventual consistency ——最終一致性。它局部的放棄了 CAP 理論中的“完全”一致性,提供了更好的可用性和分區容忍度。RYW ( Read-Your-Writes ) consistencyRYW consistency 是最終一致性的補充,它保證業(yè)務(wù)在會(huì )話(huà)中一定能讀到上一次寫(xiě)入的數據

分布式事務(wù)——跨多個(gè)資源保證事務(wù)一致性

X/Open DTP模型

![XOpen DTP模型1](C:\Users\linyi\Desktop\我的博客資料\XOpen DTP模型1.png)

![XOpen DTP模型2](C:\Users\linyi\Desktop\我的博客資料\XOpen DTP模型2.png)

淘寶XA案例分析

事務(wù)補償機制——避免XA的低性能

跨節點(diǎn)查詢(xún)和Join

? 當兩個(gè)表的數據分布在多個(gè)節點(diǎn)上時(shí),這兩個(gè)表之間的Join就是一個(gè)困難的事情

Mycat入門(mén)

? 分布式數據庫中間件
? 基于阿里開(kāi)源的Cobar
? 被用于眾多互聯(lián)網(wǎng)項目
? 中國最活躍的Mycat社區

Mycat原理

Mycat全局表

Mycat ER分片

![Mycat ER分片](C:\Users\linyi\Desktop\我的博客資料\Mycat ER分片.png)

跨分片解決方案匯總

打造完美高可靠業(yè)務(wù)系統


本站僅提供存儲服務(wù),所有內容均由用戶(hù)發(fā)布,如發(fā)現有害或侵權內容,請點(diǎn)擊舉報。
打開(kāi)APP,閱讀全文并永久保存 查看更多類(lèi)似文章
猜你喜歡
類(lèi)似文章
開(kāi)源分布式文件系統FastDFS和MogileFS
海量圖片存儲--MogileFS分布式存儲集群的實(shí)現
Ceph,TFS,FastDFS,MogileFS,MooseFS,GlusterFS 對比
深入淺出分布式文件系統MogileFS集群
Java整體知識架構詳解之分布式架構
分析Zookeeper的一致性原理
更多類(lèi)似文章 >>
生活服務(wù)
分享 收藏 導長(cháng)圖 關(guān)注 下載文章
綁定賬號成功
后續可登錄賬號暢享VIP特權!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服

欧美性猛交XXXX免费看蜜桃,成人网18免费韩国,亚洲国产成人精品区综合,欧美日韩一区二区三区高清不卡,亚洲综合一区二区精品久久