原创 【負載均衡】常見的負載均衡算法的實現與應用

所謂負載均衡就是將外部發送過來的請求均勻或者根據某種算法分配到對稱結構中的某一臺服務器中。負載均衡可以分爲硬件負載均衡和軟件負載均衡,常見的硬件負載均衡有F5、Array等,但是這些設備都比較昂貴。相比之下,利用軟件來實現負載均衡就比較簡單

原创 【MySQL】MySQL中的鎖機制

MySQL鎖機制起步 鎖是計算機用以協調多個進程間併發訪問同一共享資源的一種機制。MySQL中爲了保證數據訪問的一致性與有效性等功能,實現了鎖機制,MySQL中的鎖是在服務器層或者存儲引擎層實現的。 行鎖與表鎖 首先我們來了解行鎖與表鎖的基

原创 【Java】final 域的內存語義

文章來源:《Java併發編程的藝術》 final 域的重排序規則 對於 final 域,編譯器和處理器要遵守兩個重排序規則。 1)在構造函數內對一個 final 域的寫入,與隨後把這個被構造對象的引用賦值給一個引用變量,這兩個操作之間不

原创 【Java】Java線程中斷(Interrupt)與阻塞(park)的區別

對於很多剛接觸編程的人來說,對於線程中斷和線程阻塞兩個概念,經常性是混淆起來用,單純地認爲線程中斷與線程阻塞的概念是一致的,都是值線程運行狀態的停止。其實這個觀點是錯誤的,兩者之前有很大的區別,下文就着重介紹兩者之間的區別。 線程中斷

原创 【MySQL】MySQL中的索引原理與索引分類

一、MySQL索引起步 1. 索引的概述 MySQL官方對索引的定義爲:索引(index)是幫助MySQL高效獲取數據的數據結構(有序)。在數據之外,數據庫系統還維護着滿足特定查找算法的數據結構,這些數據結構以某種方式引用(指向)數據,這樣

原创 【Redis】Redis 持久化之 RDB 與 AOF 詳解

Redis 持久化 我們知道Redis的數據是全部存儲在內存中的,如果機器突然GG,那麼數據就會全部丟失,因此需要有持久化機制來保證數據不會因爲宕機而丟失。Redis 爲我們提供了兩種持久化方案,一種是基於快照,另外一種是基於 AOF 日誌

原创 【JUC】從Lock到AQS瞭解Java中的鎖

從Lock到AQS瞭解Java中的鎖 本文主要會從 Lock 接口到 AQS 抽象類的 API 以及源碼分析 Java 中鎖的實現,通過演示相關組件的代碼 Demo 瞭解其使用,以及瞭解如何通過 AQS 實現一個鎖。 Lock Inte

原创 【JVM】GC之垃圾收集算法

GC之垃圾收集算法 垃圾收集算法的實現涉及大量的程序細節,而且各個平臺的虛擬機操作內存的方法又各不相同,所以只介紹幾種算法的思想及其發展過程。 JVM常見的GC算法有以下四種: 標記-清除算法(Mark-Sweep) 標記-整理算法(Ma

原创 【軟件工程】常見的幾種軟件過程模型的比較

幾種常見軟件過程模型的比較 一、瀑布模型(Waterfall Model) 瀑布模型(經典生命模型)提出了軟件開發的系統化的、順序的方法。其流程從用戶需求規格說明開始,通過策劃、建模、構建和部署過程,最終提供一個完整的軟件並提供持續的技術支

原创 【設計模式】適配器模式

文章轉載自:https://www.cnblogs.com/eric-fang/p/9122564.html 適配器模式 假如我的手機是typec類型的充電口,但是現在卻只有個傳統的 MicroUSB 充電線,怎麼辦?很簡單,弄個轉換接頭,

原创 【計算機網絡】網絡的硬件構成要素

網絡的硬件構成要素 互聯網的目的是爲了達到資源共享,使在不同網絡上的用戶可以相互訪問達到信息資源共享的目的。搭建一個網絡環境一般不能簡單地直接連接,這其中涉及到了多種電纜和網絡設備,在此簡單說一下計算機的硬件設備。 一、通信媒介&數據鏈路

原创 【計算機網絡】ISO/OSI 網絡體系結構

ISO/OSI 網絡體系結構 計算機網絡是相當複雜的系統,相互通信的兩個計算機系統必須高度協調才能正常工作。爲了設計這樣複雜的計算機網絡,人們提出了將網絡分層的方法。分層可將龐大而複雜的問題轉換爲若干較小的局部問題進行處理,從而使問題簡單化

原创 【Spring Cloud】Spring Cloud Config 實現分佈式配置中心

Spring Cloud Config 實現分佈式配置中心 一、分佈式配置中心 分佈式系統中,往往擁有大量的服務應用,而每個應用程序都需要有對應的配置文件來協助完成服務環境初始化、運行。因此生產了大量的服務配置文件,Spring Cloud

原创 【持續集成】GitLab CI + Docker 實現持續集成

GitLab CI + Docker 實現持續集成 一、持續集成(Continuous Integration, CI)的基本概念 概述 在傳統軟件的開發中,代碼的集成工作通常是在所有人都將工作完成後在項目即將結束進行時,而這往往會花費大量

原创 【Spring Boot】利用 Spring Boot Admin 進行項目監控管理

利用 Spring Boot Admin 進行項目監控管理 一、Spring Boot Admin 是什麼 Spring Boot Admin (SBA) 是一個社區開源項目,用於管理和監視 Spring Boot 應用程序。應用程序通過