原创 Shiro實現Basic認證
前言 今天跟小夥伴們分享一個實戰內容,使用Spring Boot+Shiro實現一個簡單的Http認證。 場景是這樣的,我們平時的工作中可能會對外提供一些接口,如果這些接口不做一些安全認證,什麼人都可以訪問,安全性就太低了,所以我們的目
原创 架構師基礎技能-搭建gitLab
前言 想要成爲一名架構師,一定要有從無到有搭建環境的能力,這是作爲架構師的基礎技能,而gitLab服務器的搭建一定又是重中之重。 相信很多小夥伴的公司也在使用gitLab,但都是你們公司的架構師搭建好的,你是否好奇它是怎麼搭建的呢? 今天王
原创 synchronized底層揭祕
前言 上篇文章我們從硬件級別探索,對可見性和有序性的認識上升了一個高度,卻遲遲沒有介紹原子性的解決方案。 今天我們就來聊一聊原子性的解決方案,鎖。 引入鎖機制,除了可以保證原子性,同時也可以保證可見性和有序性。 相信小夥伴們對於sync
原创 Oracle數據泵的導入和導出
前言 今天王子要分享的內容是關於Oracle的一個實戰內容,Oracle的數據泵。 網上有很多關於此的內容,但很多都是複製粘貼別人的,導致很多小夥伴想要使用的時候不能直接上手,所以這篇文章一定能讓你更清晰的理解數據泵。 開始之前王子先介
原创 從硬件級別再看可見性和有序性
前言 王子之前的文章對於併發編程中的可見性問題已經有了一個初步的介紹,總結出來就是CPU的緩存會導致可見性問題。 這樣的解釋其實是沒有問題的,但這裏說的“緩存”其實一個籠統的概念,緩存其實指的是寄存器、高速緩存和寫緩衝器。 今天我們就從
原创 JAVA內存模型和Happens-Before規則
前言 上一篇文章王子給大家介紹了併發編程中比較關心的三個核心問題,可見性、有序性和原子性。 今天我們繼續來探索併發編程的內容,聊一聊JAVA的內存模型和Happens-Before規則。 JAVA內存模型 這裏的JAVA內存模型指的
原创 你還不懂可見性、有序性和原子性?
前言 今天開始,王子準備開始一個新的專欄:併發編程專欄。 併發編程無論在哪門語言裏,都屬於高級篇,面試中也嚐嚐會被問到。想要深入理解併發編程機制確實不是一件容易的事,因爲它涉及到計算機底層和操作系統的相關知識,如果對這部分知識不是很清楚
原创 探索RocketMQ的重複消費和亂序問題
前言 在之前的MQ專題中,我們已經解決了消息中間件的一大難題,消息丟失問題。 但MQ在實際應用中不是說保證消息不丟失就萬無一失了,它還有兩個令人頭疼的問題:重複消費和亂序。 今天我們就來聊一聊這兩個常見的問題,看看RocketMQ是如何
原创 JVM常用調優工具介紹
前言 王子在之前的JVM文章中已經大體上把一些原理性問題說清楚了,今天主要是介紹一些實際進行JVM調優工作的工具和命令,不會深入講解,因爲網上資料很多,篇幅可能不長,但都是實用的內容,小夥伴們有不清楚的可以自行查找資料。 jstat
原创 探索G1垃圾回收器
前言 最近王子因爲個人原因有些忙碌,導致文章更新比較慢,希望大家理解,之後也會持續和小夥伴們一起共同分享技術乾貨。 上篇JVM的文章中我們對ParNew和CMS垃圾回收器已經有了一個比較透徹的認識,感興趣的小夥伴可以去回看一下探索Par
原创 RocketMQ消息丟失解決方案:同步刷盤+手動提交
前言 之前我們一起了解了使用RocketMQ事務消息解決生產者發送消息時消息丟失的問題,但使用了事務消息後消息就一定不會丟失了嗎,肯定是不能保證的。 因爲雖然我們解決了生產者發送消息時候的消息丟失問題,但也只是保證Broker正確的接收
原创 大白話聊OSI七層模型和TCP/IP四層模型
前言 今天和大家聊的是一個比較基礎的問題,OSI七層模型和TCP/IP四層模型。 小夥伴們可能有疑問,這個東西還用寫文章嗎,太基礎了吧,網上文章多的是,隨便一搜索就能找到。 確實是這樣,網上資料確實很多,但是如果面試官問你這個問題,你能
原创 探索ParNew和CMS垃圾回收器
前言 上篇文章我們一起分析了JVM的垃圾回收機制,瞭解了新生代的內存模型,老年代的空間分配擔保原則,並簡單的介紹了幾種垃圾回收器。詳細內容小夥伴們可以去看一下我的上篇文章:秒懂JVM的垃圾回收機制。 今天我們就來探索一下,ParNew和
原创 秒懂JVM的垃圾回收機制
前言 閱讀過王子之前JVM文章的小夥伴們,應該已經對JVM的內存分佈情況有了一個清晰的認識了,今天我們就接着來聊聊JVM的垃圾回收機制,讓小夥伴們輕鬆理解JVM是怎麼進行垃圾回收的。 複製算法、Eden區和Survivor區 首先我
原创 RocketMQ消息丟失解決方案:事務消息
前言 上篇文章,王子通過一個小案例和小夥伴們一起分析了一下消息是如何丟失的,但沒有提出具體的解決方案。 我們已經知道發生消息丟失的原因大體上分爲三個部分: 1.生產者發送消息到MQ這一過程導致消息丟失 2.MQ自己發生故障導致消息丟失