總結-Java分散式概念簡述
本文是基於個人學習理解的簡單總結,有非專業地方,還望指教
1、分散式是什麼?
分散式是一種架構模式,是將公有模組進行提取,構建成單獨的模組,部署在不同伺服器上進行呼叫。
2、為什麼要用分散式?
從系統架構的演進過程來看,總體方向都是功能模組細分化,業務細化拆分。隨之系統的整體是逐步複雜化,模組和業務方向更清晰化,更利於維護。降低了耦合度,而不用牽一髮而動全身。所以,所有的架構演進思想,都是在為提升工作效率,提高系統的整體效能,提高系統的可維護性著手的。
3、分散式有哪些特性?
可擴充套件性高;可用性與可靠性高;高效能;一致性
4、分散式常用的框架有哪些?
4.1、Apache ActiveMQ:訊息框架,訊息中介軟體
4.2、RabbitMQ:訊息框架,持久化、高可用、高可靠 的企業級訊息佇列系統,整合強大的監控、限流、負載均衡等功能
4.3、RocketMQ:訊息框架,國內開源專案,訊息中介軟體
4.4、Apache Kafka:訊息框架,訊息中介軟體
4.5、Hadoop:大資料計算
4.6、Spark:大資料計算
4.7、Apache HBase:分散式儲存,非關係型分散式資料庫
4.8、Memcache:分散式記憶體快取,用於減輕資料庫負載
4.9、Redis:非關係型Key-Value資料庫
4.10、MongoDB:分散式檔案儲存資料庫
4.12、Zookeeper:分散式服務協調框架
4.13、Nginx:高效能HTTP和反向代理伺服器
4.14、SpringBoot : 類似於SpringMVC的框架,將配置(XML,Annotation等)操作進行簡化的框架
4.15、RPC: 遠端過程呼叫,常見的開源RPC有gRPC,Dubbo,bRPC
5、分散式架構基本思想:分拆(系統分拆,子系統分拆,儲存分拆,計算分拆);併發(多執行緒);快取;線上VS離線;同步VS非同步;Push VS Pull;批量;重讀輕寫VS重寫輕讀;讀寫分離(對資料庫而言);動靜分離(對前端介面而言);冷熱分離(對資料備份而言);限流;服務熔斷與降級;CAP理論(C:資料一致性;A:穩定性和效能;P:分割槽容錯性);最終一致性