原创 Kafka Producer模塊分析

1. 概述 一、Kafka Producer包含哪些部分 其實我們討論producer時,指的是用戶接觸的clients.producer這個util包,其中包含了發送數據到哪臺機器、怎樣序列化、分批發送與拒絕消息等等的發送策略。

原创 模仿與學習MyBatis - 1.2 DataSource與Session

本文收錄於模仿與學習MyBatis系列 綜述 本篇將實現1.1章中提到的兩個類: DataSource:實現標準的javax.sql.DataSource接口, 用於獲取數據庫連接。 Session:可以直接調用exec(

原创 模仿與學習MyBatis - 1.1 綜述:MyBatis核心功能

本文收錄於模仿與學習MyBatis系列 系列的開始 在本系列的一開始,我還不打算記錄一個非常宏大的MyBatis世界的整體結構。原因很簡單,包括我在內的大部分初學者,在剛接觸這類框架前,都是一頭霧水的。像我當初去請教一些前輩,“

原创 [LeetCode][Database]題解合集

學完MySql,就興沖沖跑去做LeetCode上的數據庫題,還未做完早已汗顏。題目的衆多要求到了自己寫的時候,就什麼也想不起來,只好上網查各種分析和答案,最終做出來將近一半都是別人的想法。 不過總歸是完成了,每道題都在博客裏記下

原创 模仿與學習MyBatis - 1.3 xml配置的解析

本文收錄於模仿與學習MyBatis系列 簡述 在前一章《模仿與學習MyBatis - 1.2 DataSource與Session》中實現了一個基本的DataSource與Session。但是DataSource的值需要在J

原创 頭條基礎架構 - 面試題 - 三個線程併發打出ABC的字母

題目描述 字節跳動基礎架構崗的終面問題: 有三個線程,分別能夠打出A,B,C三個字母,如何讓它們併發協作的打出ABCABCABC…這樣的字符串?(僅使用ReentrantLock的功能) 思路一 Lock 使用一個lock與對應創

原创 [Emacs] 1.2 嘗試配置emacs(基礎與配色)

基礎設置 讀到這裏已經瞭解了一些基本操作,現在打開配置文件(C-x C-f .emacs),將下列配置粘貼進去(複製後在文件中按M-y) ;;; 去掉菜單與工具欄 (tool-bar-mode -1) (menu-bar-mode

原创 模仿與學習MyBatis - 1.6 註解與Session:sql語句

本文收錄於模仿與學習MyBatis系列 簡述 在上一篇中,實現了一個MapperProxy類,代入接口會生成一個mapper,通過它來調用方法,將輸出begin #方法名 end這樣的字串。 而在本篇中將討論的是,什麼是

原创 模仿與學習MyBatis - 1.4 SessionFactory與Session

本文收錄於模仿與學習MyBatis系列 簡述 在前一章《模仿與學習MyBatis - 1.3 xml配置的解析》中,對指定的文件實行了一個基本的DataSource解析類XMLConfigBuilder。 在本篇中將討論以

原创 認知複雜度——估算項目代碼的理解成本

目錄1. 摘要2. 歷史背景2.1 工程複雜度背景2.2 有哪些問題待解決2.3 一個例子3. 認知複雜度解釋3.1 基本原則3.2 忽略語法糖3.3 各種類型的認知複雜3.3.1 `Structural類複雜度`:3.3.2

原创 [MySQL] 使用索引覆蓋優化業務查詢

一、 在MySQL表中,有一項無法忽略的部分,那就是索引——因爲它直接或間接的決定了業務查詢的時間複雜度。一個差的索引,會導致SQL操作需要掃描全表,來查出符合條件的數據行,這當然是一個悲劇。我們有必要,但也很容易去避免以下這種情況的發生

原创 Redis設計 - Sentinel哨兵

背景 Redis單獨實現了一個Sentinel模塊,用於監聽主從實例,主動下線問題的主實例,替換從實例,以達到Redis的高可用。 初始化 初始化Sentinel時指定監控的主實例列表masters,向主實例們改起連接,僞裝成它們

原创 Redis設計 - 主從與複製功能

一、簡述 Redis提供了slaveof命令,使當前結點A定期接受另一結點B的數據。我們稱B爲主服務器(以下稱爲master),A爲B結點的從服務器(以下稱爲slave)。 在2.8版本開始,主從功能開始完善,通過初始的全量同步,

原创 模仿與學習MyBatis - 實現自己的ORM層框架

目錄 陸續新增中,敬請期待 第一版 綜述:MyBatis核心功能 DataSource與Session xml配置的解析 SessionFactory與Session Mapper與動態代理 註解與Session:sql語句

原创 [LeetCode][Database]Delete Duplicate Emails

題目來源:https://leetcode.com/problems/delete-duplicate-emails/ 題目要求刪除Email相同的Person,並且保留Id最小的那一個 那麼我們直接用delete語句: d