原创 CAS以及在Java併發機制中的使用

Java 併發編程中有介紹CAS實現鎖的機制,後面再看了一些編譯原理方法的書,對鎖的實現有一些基本瞭解。 提高併發減少上下文切換的方法: 無鎖併發編程:按Hash算法取模分段,不同的線程處理不同段數據。 CAS算法:CAS算法更新數據,無

原创 關於灰度發佈的感想

最近在研究springcloud,其中重要的就是服務的治理,各種接口與應用漫天飛,開發人員與運維實施人員不斷的扯皮。曾幾何時內部開發的RPC遠程訪問接口,在實施部署過程中費時勞力。 微服務接口的版本控制,代碼的版本管理,最後到運維實施部署

原创 TCP/IP網絡協議總結

學習TCP-IP詳解一段時間,還有不少疑惑,總結記錄一番,說不定有新發現。 總聽人說5G網絡下一部電影只需要幾秒鐘,疑惑的很 我們普遍網絡使用以太網,通過光纖或者網線連接,其數據封裝格式依據IEEE 802規範,屬於鏈路層數據規範,基於R

原创 Kafka 安裝部署及使用

環境 Java:jdk1.8 操作系統:CentOS ZK:3.4.10 Kafka:2.12-2.0.0 ZK 安裝參考:分佈式ZooKeeper-3.4.10集羣安裝 Kafka配置 # broker的全局唯一編號,不能重複 bro

原创 Java併發機制----同步synchronized以及原子操作

Java併發編程過程中必須接觸synchronized和volatile,以及後來的讀寫鎖ReadWriteLock、重入鎖ReentrantLock等,JVM在編譯synchronized時會生成2個指令集monitorenter和mo

原创 Java鎖及實現方式

鎖的概念在數據庫出現比較多,爲了實現數據庫的不同隔離級別,數據庫會定義不同的鎖類型。Java爲了實現同步及線程安全,也會定義不同的鎖。所謂的同步操作即原子操作(atomic operation)意爲“不可被中斷的一個或一系列操作”,類似數

原创 MySQL 讀提交和重複讀隔離級別測試實驗

Mysql默認隔離級別可重複讀,我們會實驗讀提交和可重複讀。 set tx_isolation='read-committed'; set tx_isolation='repeatable-read'; 紙上得來終覺淺,要理解它們必須實踐

原创 Java內存模型的基礎以及內存語義

Java中多個線程訪問同一變量,對應到硬件上就是內存和CPU緩存,JVM是如何處理數據競爭的,必須瞭解Java的內存模型以及編譯相關的JVM指令,同時還必須瞭解線程的實現方式。 Java語言通過編譯器編譯成JVM認識的class文件,JV

原创 一個城市的溫度

週六參加朋友的晉升分享會,彼此差不多認識了十年,其中她說蘇州是一個有溫度的城市,讓我聯想到自己的過往。 讀大學前沒離開過老家石首,大學四年加上畢業工作三年在武漢,2007年初最後決定來上海工作,40年光景已過。武漢和上海是離開老家居住最長

原创 Java Class 文件結構

Java語言只是我們瞭解編程的基礎語法,最終編譯成的Class文件纔是JVM解讀的二進制文件,瞭解Class文件結構,有助於理解編程原理。通過javap我們將瞭解Class內部結構。 Class文件是一組以8位字節爲基礎單位的二進制流,各

原创 微服務模式總結

現在微服務大行其道,其中必須提到網絡負載均衡,曾經各種負載均衡軟件和硬件如:LVS、Nginx、F5、HAProxy。曾經在項目中爲減少開發量,通過httpclient和proxy實現遠程訪問服務,既沒有服務發現也沒有負載均衡,只是單純的

原创 雙11續費阿里雲之鬧心事

每年雙十一都是程序員節日,阿里承載着多少程序員的夢想,如此複雜的系統包括海量數據、上億訂單、實時計算,各種公衆號。 這個時候難免會湊熱鬧,剛好公司服務器快到期,有優惠券可以使用,滿3500減350。一頓操作登錄阿里雲控制檯,找到ECS點擊

原创 Java集合ArrayList和LinkedList區別

Java的集合類主要由兩個接口派生而出:Collection和Map,Collection和Map是Java集合框架的根接口。 Java集合大致可以分爲Set、List、Queue和Map四種體系,其中Set代表無序、不可重複的集合;Li

原创 2020復工復產後思考

全國已經開始全面復工復產,小微企業在這場“戰役”中的危機時刻圍繞在我們這些個體身邊。此時此刻是覆盤自己在這場“戰役”中所做的事情。 2019年過年前,和朋友出去聚餐,當時新聞有報道說武漢有事情發生,聚餐過程中還談論此事,當時沒太在

原创 Java 主流I/O 模型

JAVA 主流I/O模型比較   同步阻塞(BIO) 僞異步IO 非阻塞IO(NIO) 異步IO(AIO) 客戶端個數:I/O線程 1:1 M:N(M可以大於N) M:1(1個I/O線程處理多個客戶端連接) M:0(不需要啓動額外的I/O