原创 分佈式事務精華總結篇

-     總述     - 咱們前面分別對分佈式事務的幾個分支:XA、2PC、3PC、TCC、Saga、事務消息、最大努力事務進行的詳細介紹。本篇作爲分佈式事務設計的收尾篇,講對前面的內容查缺補漏和總結,最後對市面的一些開源框架做一些介

原创 Java併發之AQS原理淺析

 鎖是最常用的同步方法之一,在高併發的環境下激烈的鎖競爭會導致程序的性能下降,所以我們自然有必要深入的學習一下鎖的相關知識。        在介紹Lock之前,我們需要先熟悉一個非常重要的基礎組件,JUC包下的核心基礎組件。也是實現大部分

原创 Java線程池【二】深入分析,Java線程池實現原理及其在美團業務中的實踐

一、寫在前面 1.1 線程池是什麼 線程池(Thread Pool)是一種基於池化思想管理線程的工具,經常出現在多線程服務器中,如MySQL。 線程過多會帶來額外的開銷,其中包括創建銷燬線程的開銷、調度線程的開銷等等,同時也降低了計算機的

原创 Java線程池【一】實現原理

1.深入源碼分析Java線程池的實現原理   程序的運行,其本質上,是對系統資源(CPU、內存、磁盤、網絡等等)的使用。如何高效的使用這些資源是我們編程優化演進的一個方向。今天說的線程池就是一種對CPU利用的優化手段。 通過學習線程池原理

原创 負載均衡比較:LVS,HAProxy和Nginx

負載均衡(Load Balance)是應用於互聯網後臺系統架構設計中的各層,它將請求均勻分攤到多個操作單元上執行。 目前,在線上環境中應用較多的負載均衡器硬件有F5 BIG-IP,但是硬件設備昂貴,不如軟件適應互聯網公司的快速發展。最常

原创 java爲什麼還需要分佈式鎖?鎖的演進

原文:https://baijiahao.baidu.com/s?id=1655515801283332550&wfr=spider&for=pc       目前的項目單體結構的基本上已經沒有了,大多是分佈式集羣或者是微服務這些。既然是

原创 Linux中top命令參數詳解、常用快捷鍵

1、命令 1.簡介 top命令是Linux下常用的性能分析工具,能夠實時顯示系統中各個進程的資源佔用狀況,類似於Windows的任務管理器。  顯示系統當前的進程和其他狀況; top是一個動態顯示過程,即可以通過用戶按鍵來不斷刷新當前狀態

原创 ※HashMap底層實現原理(全)

HashMap底層實現原理(上) 本來想先在專欄裏簡單的說一下二叉樹,紅黑樹的內容後再說HashMap的,但看到評論區裏不斷的出現HashMap這個詞,怕大家等得着急,本篇文章就先說說HashMap吧,前面講ArrayList和Linke

原创 什麼是內存屏障(Memory Barrier)以及在java中的應用

1. 指令重排序 程序在運行時內存實際的訪問順序和程序代碼編寫的訪問順序不一定一致,這就是內存亂序訪問。內存亂序訪問行爲出現的理由是爲了提升程序運行時的性能。這種內存亂序問題主要是由兩種原因引起的: 編譯器在編譯時進行了編譯優化,導致指令

原创 深入理解HashMap底層原理剖析(JDK1.8) 擴容方法resize()

接下來會從以下幾個方面介紹 HashMap 源碼相關知識:   1、HashMap 存儲結構   2、HashMap 各常量、成員變量作用   3、HashMap 幾種構造方法   4、HashMap put 及其相關方法   5、Has

原创 Java中的BlockingQueue

  1 Java中的阻塞隊列 1.1 簡介 一種支持兩個附加操作的隊列,是一系列阻塞隊列類的接口 當存取條件不滿足時,阻塞在操作處 隊列滿時,阻塞存儲元素的線程,直到隊列可用 隊列空時,獲取元素的線程會等待隊列非空 阻塞隊列常用

原创 Keepalived簡介、雙機熱備

Keepalived簡介 Keepalived是Linux下一個輕量級別的高可用解決方案。高可用(High Avalilability,HA),其實兩種不同的含義:廣義來講,是指整個系統的高可用行,狹義的來講就是之主機的冗餘和接管, 它與

原创 Redis的併發競爭問題的解決方案總結【參考】

什麼是Redis的併發競爭問題 Redis的併發競爭問題,主要是發生在併發寫競爭。 考慮到redis沒有像db中的sql語句,update val = val + 10 where ...,無法使用這種方式進行對數據的更新。 假如有某個k

原创 JAVA中的阻塞隊列和非阻塞隊列-簡介

隊列是一種數據結構,它有兩個基本操作:在隊列尾部加入元素和從隊列頭部移除元素。在我們日常開發中,經常用來併發操作數據。java包中有一些應用比較廣泛的特殊隊列:一種是以ConcurrentLinkedQueue爲代表的非阻塞隊列;另一種是

原创 常見排序算法和搜索算法——時間和空間複雜度

排序方法        平均情況        最好情況        最壞情況        輔助空間        穩定性 冒泡排序         O(n^2)           O(n)              O(n^2)