原创 MySQL高可用:主備延時如何解決?

我們知道主備同步是依賴於 binlog,主庫負責生產 binlog,備庫負責消費 binlog,從而實現主備同步。 今天我們來學習一下主備同步裏的一個重點的問題:主備延時。 主備延時,簡單來說,就是主庫和備庫的數據一致出現一定的時間差,比如

原创 只因多看了一眼提示,又一次刷新了@Autowired註釋的認知

@Autowired和@Resource都可以用於來實現依賴注入,但前者是Spring提供的,後者爲JDK(JSR-250標準)自帶的。阿里Java開發規範中推薦使用@Resource。但大多數人往往並沒有留意爲何如此,甚至代碼中的提示信息

原创 RocketMQ源碼分析:Broker概述+同步消息發送原理與高可用設計及思考 1、Broker概述 2、Broker存儲設計概要

1、Broker概述 Broker 在 RocketMQ 架構中的角色,就是存儲消息,核心任務就是持久化消息,生產者發送消息給 Broker,消費者從 Broker 消費消息,其物理部署架構圖如下: 備註:以上摘錄自官方 Rocket

原创 面試必問,redis高可用原理,哨兵機制詳解 一、什麼是高可用? 二、什麼是哨兵機制 三、redis哨兵機制的實現

一、什麼是高可用? 1、什麼是高可用 redis已經實現主從複製了,即使掛了一臺或者服務硬盤壞掉,數據存在同步備份。那它還不是高可用嗎?當然!不是~ 高可用的定義一般有以下兩個解釋: 解釋1:它與被認爲是不間斷操作的容錯技術有所不同。是目

原创 Zookeeper—基本使用以及應用場景(手寫實現分佈式鎖和rpc框架)

Zookeeper的基本使用 在之前的文章主要講述了Zookeeper的原理,本文則是實踐,包含Zookeeper單機環境到集羣環境的搭建,基本配置,JavaAPI的使用以及手寫實現分佈式鎖等內容。(PS:在往下進行之前,請務必準備至少3臺

原创 JAVA程序員的必殺技:8個經典算法題,過程精妙,代碼精煉

總有一些題,超越了歲月,即便是經過了新框架的層層迭代,它依然散發着令人回味無窮的味道。下面的幾個筆試題目,是JAVA面試中經常遇見的,大家一定要牢記於心,可別複習到了到時候又說不出來。我就喫過這種虧,不說啦,下面來看題目。 二維數組中的查

原创 SpringBoot整合Mybatis-Plus 實戰之Mybatis-Plus的一級緩存、二級緩存詳解

前言 現在的JAVA行業,貌似已經是SpringBoot + SpringCloud 的天下了,早期的SSH,SSM框架已經老去,與SpringBoot相結合的JPA框架雖然省去了很多的增刪改查sql,但是比較笨拙,在面對一些複雜多變的邏

原创 Netty實戰:如何讓單機下Netty支持百萬長連接?

單機下能不能讓我們的網絡應用支持百萬連接?可以,但是有很多的工作要做。而且要考慮到單機的系統資源消耗能否支撐百萬併發 一、操作系統優化 首先就是要突破操作系統的限制。 在Linux平臺上,無論編寫客戶端程序還是服務端程序,在進行高併發TC

原创 太可怕了,開發5年的我與Alibaba面試官“大戰”7回合,險勝拿到p7崗offer! 我與Alibaba面試官“大戰”7回合,勝 面試阿里之前,我流了多少汗? 拿到offer後的規劃和心態

今年受大環境影響,整個互聯網企業裁員的現象比往年嚴重多了,恰巧今年又是我的第一個“五年計劃”截止的時間點,說什麼也不能夠耽擱了,所以早早準備的跳槽漲薪了。而這次的阿里之行也是路途坎坷,真的太爲難我了,可以說是和麪試官大戰了7個回合,不過好在

原创 面試官:Redis 主從複製時網絡開小差了怎麼整? 主從模式配置 主從一致性原理 網絡開小差了 總結

回到之前的 Redis 話題。今天主要講的是主從複製數據一致性相關以及面對網絡中斷如何進行數據同步的問題。 不 BB 了,直接上鍾吧! 圖注:思維導圖 主從模式配置 對於 Redis 主從大家可能並不陌生,但是配置的話日常工作中並不會

原创 乾飯人乾飯魂,年輕人乾了這碗多線程,就是人上人!

開篇閒扯 一年又一年,年年多線程。不論你是什麼程序員,都逃脫不了多線程併發的魔爪。因爲它從盤古開天闢地的時候就有了,就是在計算機中對現實世界的一種抽象。因此,放輕鬆別害怕,肝了這系列的多線程文章,差不多能吊打面試官了(可別真動手...)。

原创 Jvm堆內存和GC簡介

最近經常遇到jvm內存問題,覺得還是有必要整理下jvm內存的相關邏輯,這裏只描述jvm堆內存,對外內存暫不闡述。 jvm內存簡圖 jvm內存分爲堆內存和非堆內存,堆內存分爲年輕代、老年代,非堆內存裏只有個永久代。 年輕代分爲生成區(Ed

原创 看懂這篇,才能說了解併發底層技術

零、開局 前兩天我搞了兩個每日一個知識點,對多線程併發的部分知識做了下概括性的總結。但通過小夥伴的反饋是,那玩意寫的比較抽象,看的雲裏霧裏暈暈乎乎的。 所以又針對多線程底層這一塊再重新做下系統性的講解。 有興趣的朋友可以先看下前兩節,可以說

原创 使用ThreadLocal類,項目中創建賬戶類Account

需求說明: 某用戶共有兩張銀行卡,賬戶名稱相同,但卡號和餘額不同。模擬用戶使用這兩張銀行卡進行消費的過程,並打印出消費明細 實現思路: 項目中創建賬戶類 Account,類中包括賬戶名稱name、 ThreadLocal 類的引用變量a

原创 非科班,自學兩年,覆盤兩個月,僥倖拿到頭條、阿里offer

“lz”是非科班自學的java,畢業後進入卡中心,現在是2年開發經驗。20年年初先後面了頭條、拼多多和阿里(淘寶和支付寶),併成功拿到阿里和頭條兩家的offer。 面試前我主要是不斷的刷題且看了很多大牛的面經進行查漏補缺,所以面試完後也想記