分布式学习基础知识
- 網(wǎng)絡(luò)通訊,網(wǎng)絡(luò)是分布式的基礎(chǔ),對(duì)分布式的理解建立在對(duì)網(wǎng)絡(luò)的理解上,包括:
- OSI模型的7層
- TCP/IP,DNS,NAT
- HTTP,SPDY/HTTP2
- Telnet
- 網(wǎng)絡(luò)編程,是通過(guò)程序在多個(gè)主機(jī)之間通信。包括:
- Socket
- 多線程
- 非阻塞IO
- 網(wǎng)絡(luò)框架
- Netty
- Mina
- ZeroMQ
- 操作系統(tǒng)的網(wǎng)絡(luò)部分
- RPC,Socket使用不是很方便,很多分布式應(yīng)用是基于RPC的,包括:
- 同步RPC
- 異步RPC
- 主要的一些RPC協(xié)議
- RMI
- Rest API
- Thrift
- 集群,分布式計(jì)算離不開集群。集群就是多臺(tái)主機(jī)被當(dāng)作一個(gè)系統(tǒng)
- 集群類型
- 高可用,如主機(jī)備機(jī)切換,冷備,熱備,雙活
- 伸縮性,如Web服務(wù)器集群,數(shù)據(jù)庫(kù)服務(wù)器的Sharding
- 并行計(jì)算,如網(wǎng)格,大數(shù)據(jù)
- 集群相關(guān)技術(shù),包括:
- 高可用性,保證服務(wù)一直能夠被訪問(wèn),延長(zhǎng)MTBF,縮短MTTR
- 冗余的設(shè)備
- 多副本,為了避免單點(diǎn)失效
- 負(fù)載均衡,如何將大量工作負(fù)載分配到多個(gè)主機(jī)上,最大化吞吐量,最小化平均響應(yīng)時(shí)間,最大化資源利用率。
- 伸縮性(橫向),能夠添加計(jì)算機(jī)和設(shè)備來(lái)應(yīng)對(duì)增長(zhǎng)的計(jì)算壓力
- 分片(Sharding),把數(shù)據(jù)分成多個(gè)數(shù)據(jù)集,由多個(gè)服務(wù)器來(lái)分別處理。
- 自動(dòng)分片
- 容錯(cuò)性,當(dāng)硬件或軟件發(fā)生故障,能夠繼續(xù)運(yùn)轉(zhuǎn)
- 故障檢測(cè),以及故障預(yù)測(cè)
- 心跳包
- 告警
- 性能預(yù)警
- 故障轉(zhuǎn)移,當(dāng)出現(xiàn)錯(cuò)誤,如何解決,為了高可用性和容錯(cuò)性
- 分布式一致性,在分布式環(huán)境中如何維持狀態(tài)的一致性,嚴(yán)格一致性,還是最終一致性
- 集群狀態(tài)協(xié)調(diào),如Zookeeper,etcd等。
- 分布式鎖,在分布式環(huán)境中如何進(jìn)行加鎖
- 選主,當(dāng)Master宕機(jī),如何選擇出新的Master,協(xié)議如Raft
- 一致性哈希,如何將數(shù)據(jù)分布到集群中的多個(gè)主機(jī)。
- 分布式事務(wù),保證在多臺(tái)服務(wù)器上完成的操作符合事務(wù)的ACID屬性。
- 高可用性,保證服務(wù)一直能夠被訪問(wèn),延長(zhǎng)MTBF,縮短MTTR
- 集群類型
- 安全,網(wǎng)絡(luò)通常需要保證安全。
- 身份認(rèn)證,如何驗(yàn)證人或機(jī)器是他們聲明的身份
- 基于用戶名/口令
- 基于數(shù)字證書
- 私密性,如何防止竊聽和嗅探
- 對(duì)稱加密
- 非對(duì)稱加密
- 完整性,如何保證數(shù)據(jù)不被篡改
- 安全散列
- 消息認(rèn)證碼(MAC)
- 不可否認(rèn)性
- 基于數(shù)字證書的數(shù)字簽名和驗(yàn)簽
- 基于密鑰的散列,如HMAC
- 身份認(rèn)證,如何驗(yàn)證人或機(jī)器是他們聲明的身份
- 互聯(lián)網(wǎng)站的基本架構(gòu)
- 頁(yè)面緩存
- 負(fù)載均衡器,如HAProxy,Nginx
- 分布式緩存,如Memcache,Redis
- 消息隊(duì)列,如ActiveMQ,Kafka
- 頁(yè)面緩存
- 分布式框架
- 關(guān)系型數(shù)據(jù)庫(kù)(Sharding,主從同步)
- NoSQL
- HBase,基于HDFS和Zookeeper的NoSQL
- Cassandra,無(wú)主集群
- 大數(shù)據(jù)
- HDFS,分布式文件系統(tǒng)
- MapReduce,將數(shù)據(jù)處理任務(wù)拆分為多個(gè)工作,通過(guò)集群來(lái)完成。
- Spark,提供分布式的數(shù)據(jù)集抽象
- 網(wǎng)絡(luò)通訊,網(wǎng)絡(luò)是分布式的基礎(chǔ),對(duì)分布式的理解建立在對(duì)網(wǎng)絡(luò)的理解上,包括:
轉(zhuǎn)載于:https://www.cnblogs.com/minjay/p/6742953.html
總結(jié)
- 上一篇: linux的history命令设置
- 下一篇: node+mongoose使用例子