原创 Kafka學習之旅(十一): 消費組

前兩章講述比較重要的一個特性就是Kafka 的消費位移 其中包含 位移的含義,位移的發展史 和位移的提交方式。本文接下來繼續講述另外一個特性那就是消費組。 分組消費時Kafka 一個比較具有亮點的一個特性,那什麼時消費組呢 大概就

原创 ThreadLocal類爲什麼要加上private static修飾

無法解決共享對象的更新問題。(引用於《阿里巴巴JAVA開發規範》) 個人理解: 首先加不加 private 個人覺得是一種編程規範吧 類中的變量需要用private 來修飾。 我們知道對於static 修飾的變量在類的裝載時候

原创 https原理及其中所包含的對稱加密、非對稱加密

一、爲什麼要使用https 使用https的原因其實很簡單,就是因爲http的不安全。 當我們往服務器發送比較隱私的數據(比如說你的銀行卡,身份證)時,如果使用http進行通信。那麼安全性將得不到保障。首先數據在傳輸的過程中,數據

原创 RPC與Http的區別

一.遠程調用方式 無論是微服務還是分佈式服務(都是SOA,都是面向服務編程),都面臨着服務間的遠程調用。那麼服務間的遠程調用方式有哪些呢? 常見的遠程調用方式有以下幾種: RPC:Remote Produce Call遠程過程調用

原创 TCP和UDP的區別超完整版本

TCP的優點: 可靠,穩定 TCP的可靠體現在TCP在傳遞數據之前,會有三次握手來建立連接,而且在數據傳遞時,有確認、窗口、重傳、擁塞控制機制,在數據傳完後,還會斷開連接用來節約系統資源。 TCP的缺點: 慢,效率低,佔用系統資源

原创 理解 JAVA BIO與NIO、AIO

IO的方式通常分爲幾種,同步阻塞的BIO、同步非阻塞的NIO、異步非阻塞的AIO。 看起來比較難理解, 首先我們看一下 什麼是同步,異步,阻塞,非阻塞 就舉個栗子,以銀行取款爲例: 同步 : 自己親自出馬持銀行卡到銀行取錢(使

原创 編譯zookeeper源碼

一般學習 某個框架基本都是從編譯源碼開始的, 於是那就來吧 首先先clone 官方的源碼 https://github.com/apache/zookeeper.git 放到idea 編譯 mvn clean package -

原创 HTTP請求與響應步驟

HTTP請求與響應步驟 http請求和響應,說白了就是計算機之間的問答對話。http請求是提問者,http響應是回答者。詳細步驟如下所示。 建立連接 先解析DNS,例如把localhost變成ip(127.0.0.1),然後根

原创 ZooKeeper源碼解析:Leader選舉

Leader選舉又稱爲master選舉是zookeeper中最爲經典的應用場景了。那爲什麼需要leader 選舉呢。 ZooKeeper需要在所有的服務(可理解爲服務器)中選舉出一個Leader,然後讓這個Leader來負責管理集

原创 線程的幾種狀態以及sleep/wait/yield/join的區別

一.線程通常有五種狀態: 新建狀態(New):新創建了一個線程對象。 就緒狀態(Runnable):線程對象創建後,其他線程調用了該對象的start()方法。該狀態的線程位於可運行線程池中,變得可運行,等待 獲取CPU的使用權。

原创 Leetcode 數組生成二叉樹的工具

在刷leetcode 很多樹題目的時候經常遇到這種情況, For example: Given BST [1,null,2,2], 1 \ 2 / 2 發現測試的例子給的是一個數組 然而

原创 Java volatile 有什麼作用

在由Java語言編寫的程序中。有時候爲了提高程序的執行效率,編譯器會自己主動對其進行優化,把經常被訪問的變量緩存起來,程序在讀取這個變量的時候有可能會直接從緩存(比如寄存器)中來讀取這個值。而不會去內存中讀取。這樣做的一個優點是提

原创 synchronized在JDK6做了哪些優化

記得在大學中那個時候剛開始學習java, 需要遇到多線程需要加鎖的操作時,不管不顧全部都用synchronized,相對於當時的我們來說synchronized是這麼的神奇而又強大,那個時候我們賦予它一個名字“同步”,也成爲了我們

原创 Java都有哪幾種鎖

一、公平鎖/非公平鎖 公平鎖是指多個線程按照申請鎖的順序來獲取鎖。 非公平鎖是指多個線程獲取鎖的順序並不是按照申請鎖的順序,有可能後申請的線程比先申請的線程優先獲取鎖。有可能,會造成優先級反轉或者飢餓現象。 對於Java Reen

原创 Https的數字證書與數字簽名

本文介紹一下 爲了解決非對稱加密中公匙來源的不安全性。我們可以使用數字證書和數字簽名來解決。 1.數字證書的申請 在現實中,有一些專門的權威機構用來頒發數字證書,我們稱這些機構爲認證中心(CA Certificate Author