原创 (十)關於final實現的底層原理

(1)對於final域,編譯器和處理器要遵守兩個重排序規則 在構造函數內對一個final域的寫入,與隨後把這個被構造對象的引用賦值給一個引用變量,這兩個操作之間不能重排序 初次讀一個包含final域的對象的引用,與隨後初次讀這個

原创 (九)聊一下併發中的自增原子操作的AtomicLong在JDK1.8之後是如何優化成LongAdder的,爲什麼要優化自增原子類?

(一)先聊聊AtomicLong的基本概念,然後聊一下他的缺陷問題,然後引出LongAdder的優點 (1)大家都使用過AtomicInteger、AtomicLong等這幾類原子性的工具類,具體怎麼用我就不說了,就說一下他們的大

原创 (三)Dubbo是如何進行遠程服務調用的?(源碼流程跟蹤)

首先會分析Dubbo是如何進行遠程服務調用的,如果不瞭解dubbo的服務暴露和服務調用,請去看前兩篇dubbo的文章,然後後面我還會說一下dubbo的SPI機制 Dubbo的遠程服務調用 Dubbo中的SPI機制的使用和分析

原创 如何用Redis實現分佈式鎖的(含和Zookeeper分佈式鎖實現的對比)?

首先你得知道什麼是分佈式鎖吧?,然後你得知道在什麼場景下需要去用到分佈式鎖吧?,然後你應該知道如何在你的業務中去利用Redis的分佈式鎖吧?,最後你得知道Redis的分佈式鎖的實現方式和其他的Zookeeper或則數據庫實現分佈式

原创 如何通過Docker啓動Nginx部署前端項目,包括Nginx的詳細配置和踩坑教程?

首先說明一下,我的目標是要通過Docker拉取一個新的Nginx鏡像然後啓動Nginx,然後映射出來的瀏覽器的地址端口要爲http://10.1.2.10:8989,當如果需要請求後端數據的時候,需要把數據轉發到後端的ip端口爲:

原创 爲什麼MySQL使用B+而不是使用B樹、二叉樹、AVL樹呢?(來龍去脈的去理解)

當你回答使用B+ 怎麼怎麼好的時候,其實這道面試題你就註定答不滿分了,你應該是從一步步如果演變到使用B+來做MySQL的數據結構,下面就一步一步從二叉樹——>AVL(平衡二叉樹)——>B Tree(多路平衡查找樹)——>B+ Tr

原创 如何通過Dockerfil製作出一個鏡像,然後完整的通過鏡像部署後端項目?

如何通過Dockerfil製作出一個鏡像,然後完整的通過鏡像部署項目到Linux上的整個流程? (1)首先你得先有一個自己寫好的Dockerfile,這裏我就不具體細說Dockerfile怎麼編寫了,大概說一下思路: 首先編寫D

原创 (二)在項目中如何使用ActiveMQ的具體用法(一些常見的踩坑)?

(1)首先一般在項目中的使用無非不就是把消息發送到ActiveMQ中的消息隊列中去,先要考慮是使用點對點的模式,還是使用topic發佈訂閱的模式來進行發送的。然後就是結合自己的業務,看你放到ActiveMQ中的是什麼類型的數據,然

原创 (二)Netty中的Channel和ChannelPipeline的運行流程和底層原理

(1)Netty中的ChannelPipeline和Channel分別在Netty中起到什麼作用 首先你需要知道在BIO中是面向字節流或者字符流進行傳輸的,而且BIO中的數據傳輸還是單向的 而在NIO中傳輸數據的時候是面向塊的效率比較

原创 SpringBoot底層的啓動原理的流程是如何實現的呢?

SpringBoot的啓動原理的底層流程 這個是如何按到Spring.factories的這個文件的 這個是和上面的那個圖是對應的: 圖片來自大佬的:http://www.cnblogs.com/xiaoxi/p/7999885

原创 (一)先簡單使用和了解一下Netty的基本原理架構

Netty是基於CS架構的一種模式,分爲Client端和Server端 (1)先從Server端開始,先看一下Netty服務端的運行原理圖: 首先你得知道下面的幾個主要的角色: serverBootstrap NioEventLo

原创 爲什麼kafka效率這麼高?

kafka的IO效率這麼高的原因:

原创 分佈式相關-----真實面試彙總

面試題1. 說一下TCC補償機制,具體流程?

原创 操作系統相關-----真實面試題彙總

面試題1. 講下操作系統中的分頁? 面試題2. 分頁的頁較大時的優缺點與較小時的優缺點? 面試題3. 分區,分段,分頁,段頁式存儲管理以及頁面置換算法?

原创 如何在IDEA中導入一個項目中的多個不同的modules?

如果你想在IDEA中導入springcloud項目中的過個module的話或者是多個不同的服務,從github上導入的話,可以參考 首先第一步先在本地建立一個總的項目工程文件夾,然後直接在本地創建的這個文件夾中進行clone這個項目