分散式計算,核心知識點
最近在學習和總結,分散式相關的一些技術知識。
讀了幾本書,感覺內容比較多,需要梳理下。
在知乎等地方,也找到了一些寫得比較好的文章。
以下為轉載內容
以下為轉載內容
分散式計算就是通過計算機網路將計算工作分佈到多臺主機上,多個主機一起協同完成工作。
我試著列一下相關知識吧。
我試著列一下相關知識吧。
- 網路通訊,網路是分散式的基礎,對分散式的理解建立在對網路的理解上,包括:
- OSI模型的7層
- TCP/IP,DNS,NAT
- HTTP,SPDY/HTTP2
- Telnet
- 網路程式設計,是通過程式在多個主機之間通訊。包括:
- Socket
- 多執行緒
- 非阻塞IO
- 網路框架
- Netty
- Mina
- ZeroMQ
- 作業系統的網路部分
- RPC,Socket使用不是很方便,很多分散式應用是基於RPC的,包括:
- 同步RPC
- 非同步RPC
- 主要的一些RPC協議
- RMI
- Rest API
- Thrift
- 叢集,分散式計算離不開叢集。叢集就是多臺主機被當作一個系統
- 叢集型別
- 高可用,如主機備機切換,冷備,熱備,雙活
- 伸縮性,如Web伺服器叢集,資料庫伺服器的Sharding
- 平行計算,如網格,大資料
- 叢集相關技術,包括:
- 高可用性,保證服務一直能夠被訪問,延長MTBF,縮短MTTR
- 冗餘的裝置
- 多副本,為了避免單點失效
- 負載均衡,如何將大量工作負載分配到多個主機上,最大化吞吐量,最小化平均響應時間,最大化資源利用率。
- 伸縮性(橫向),能夠新增計算機和裝置來應對增長的計算壓力
- 分片(Sharding),把資料分成多個資料集,由多個伺服器來分別處理。
- 自動分片
- 容錯性,當硬體或軟體發生故障,能夠繼續運轉
- 故障檢測,以及故障預測
- 心跳包
- 告警
- 效能預警
- 故障轉移,當出現錯誤,如何解決,為了高可用性和容錯性
- 分散式一致性,在分散式環境中如何維持狀態的一致性,嚴格一致性,還是最終一致性
- 叢集狀態協調,如Zookeeper,etcd等。
- 分散式鎖,在分散式環境中如何進行加鎖
- 選主,當Master當機,如何選擇出新的Master,協議如Raft
- 一致性雜湊,如何將資料分佈到叢集中的多個主機。
- 分散式事務,保證在多臺伺服器上完成的操作符合事務的ACID屬性。
- 高可用性,保證服務一直能夠被訪問,延長MTBF,縮短MTTR
- 叢集型別
- 安全,網路通常需要保證安全。
- 身份認證,如何驗證人或機器是他們宣告的身份
- 基於使用者名稱/口令
- 基於數字證書
- 私密性,如何防止竊聽和嗅探
- 對稱加密
- 非對稱加密
- 完整性,如何保證資料不被篡改
- 安全雜湊
- 訊息認證碼(MAC)
- 不可否認性
- 基於數字證書的數字簽名和驗籤
- 基於金鑰的雜湊,如HMAC
- 身份認證,如何驗證人或機器是他們宣告的身份
- 網際網路站的基本架構
- 頁面快取
- 負載均衡器,如HAProxy,Nginx
- 分散式快取,如Memcache,Redis
- 訊息佇列,如ActiveMQ,Kafka
- 頁面快取
- 分散式框架
- 關係型資料庫(Sharding,主從同步)
- NoSQL
- HBase,基於HDFS和Zookeeper的NoSQL
- Cassandra,無主叢集
- 大資料
- HDFS,分散式檔案系統
- MapReduce,將資料處理任務拆分為多個工作,通過叢集來完成。
- Spark,提供分散式的資料集抽象
連結:https://www.zhihu.com/question/22764869/answer/68879509
來源:知乎
來源:知乎
相關文章
- Java 核心知識點整理Java
- [分散式]分散式計算系統淺析分散式
- 分散式雲端計算分散式
- 分散式計算與Map Reduce分散式
- 理解JavaScript的核心知識點:作用域JavaScript
- 一文吃透Tomcat核心知識點Tomcat
- 詳解 MySQL 面試核心知識點MySql面試
- Nginx 實戰核心知識點整理(上)Nginx
- 一文讀懂分散式架構知識體系(內含超全核心知識大圖)分散式架構
- Cocos Creator 3.8.x bundle核心知識點
- JavaWeb核心知識JavaWeb
- flask核心知識Flask
- JavaSE核心知識Java
- 專案管理PRINCE2核心知識點整理專案管理
- 計算機網路知識點計算機網路
- Vue核心知識-Vue的元件之render函式Vue元件函式
- 分散式系統關注點——初識「高可用」分散式
- 分散式計算技術(上):經典計算框架MapReduce、Spark 解析分散式框架Spark
- 詳解 Apache SkyWalking OAP 的分散式計算Apache分散式
- 分散式計算的八個謬誤 - Ably分散式
- 分散式服務介面設計注意點分散式
- 福利來啦~跟戴銘學 iOS 程式設計:理順核心知識點iOS程式設計
- 分散式 - 分散式系統的特點分散式
- 溫溼度計算露點函式函式
- 雲原生時代|分散式系統設計知識圖譜(內含 22 個知識點)分散式
- FPGA的時鐘IP核知識點FPGA
- Hadoop 三劍客之 —— 分散式計算框架 MapReduceHadoop分散式框架
- 關於分散式計算的一些概念分散式
- 分散式系統中的自主自治計算 - pathelland分散式
- 核函式 多項式核函式 高斯核函式(常用)函式
- 2019年Spring核心知識點整理,看看你掌握了多少?Spring
- PHP 核心知識點(一)異常和錯誤處理PHP
- 計算機網路知識點總結計算機網路
- Objective-C 核心知識Object
- RabbitMQ必備核心知識MQ
- Docker 核心知識回顧Docker
- 什麼是分散式計算系統?—Vecloud微雲分散式Cloud
- [原始碼解析] TensorFlow 分散式之 MirroredStrategy 分發計算原始碼分散式
- 雲原生時代,分散式系統設計必備知識圖譜(內含22個知識點)分散式