原创 日誌埋點系統的架構與實現

1. 埋點的意義 1.1 什麼是埋點? 所謂“埋點”,是數據採集領域(尤其是用戶行爲數據採集領域)的術語。指的是針對特定用戶行爲或事件進行捕獲、處理和發送的相關技術及其實施過程。 埋點的技術實質,是先監聽軟件應用運行過程中的事件,當需要關注

原创 怎麼關閉MacOS上的自啓動軟件?

macOS 系統的啓動項會以 .plist 的文件存在於以下目錄中: /Library/LaunchDaemons:系統啓動時運行,用戶不登錄也會運行。 /Library/LaunchAgents:用戶登錄後運行。 ~/Library/L

原创 再說設計模式-策略模式

定義 策略模式(Strategy Pattern)是一種比較簡單的模式,也叫政策模式(Policy Pattern)。其定義如下: Define a family of algorithms, encapsulate each one,

原创 分佈式鎖的實現

前言 我們在開發應用時,如果需要對一個共享變量進行多線程同步訪問的時候,我們可以使用Java多線程的各個技能點來處理,保證完美運行無BUG。 但是這裏的都只是單機應用,即在同一個JVM中;然後隨着業務發展、微服務化,一個應用需要部署到多臺服

原创 一致性Hash原理與實現

前言 互聯網公司中,絕大部分都沒有馬爸爸系列的公司那樣財大氣粗,他們即沒有強勁的服務器、也沒有錢去購買昂貴的海量數據庫。那他們是怎麼應對大數據量高併發的業務場景的呢? 這個和當前的開源技術、海量數據架構都有着不可分割的關係。比如通過mysq

原创 MySQL的存儲引擎

前言 MySQL被設計爲一個單進程多線程架構的數據庫,其體系結構如下圖1-1所示: 從圖1-1我們可以發現,MySQL由以下幾部分組成: 連接池組件(Connection Pool)。 管理服務和工具組件(Management Ser

原创 深入瞭解JDK中的Reference

前言 Java在1.2版本之前只有普通的強引用,只要對象存在引用,則對象就不會被回收,即使內存不足,也是如此,JVM拋出了OOME時,也不會去回收存在引用的對象。 如果只提供強引用,那我我們很難寫出這個對象不是很重要,如果內存不足時,可以G

原创 再說設計模式-裝飾模式

定義 裝飾模式(Decorator Pattern)的定義如下: Attach additional responsibilities to an object dynamically keeping the same interface

原创 再說設計模式-責任鏈模式

定義 責任鏈的定義如下: Avoid coupling the sender of a request to its receiver by giving more than one object a chance to handle t

原创 再說設計模式-命令模式

定義 命令模式是一個高內聚的模式,其定義如下: Encapsulate a request as an object, thereby letting you parameterize clients with different req

原创 再說設計模式-中介者模式(調停者模式)

定義 Define an object that encapsulates how a set of objects interact. Mediator promotes loose coupling by keeping object

原创 再說設計模式-原型模式

定義 原型模式(Prototype Pattern)的簡單程度僅次於單例模式和迭代器模式。正是由於簡單,使用場景才非常多,其定義如下: Specify the kinds of objects to create using a prot

原创 再說設計模式-代理模式的擴展

引言 我有一篇文章再說設計模式-代理模式,已經講解了關於代理模式的基本概念,這裏我們再來討論一下代理模式的一些擴展知識。 在網絡上代理服務設置分爲透明代理和普通代理。透明代理就是用戶不用關心設置代理服務器地址,就可以直接訪問,也就是說代理服

原创 成爲架構師,你必須知道的CAP理論

CAP定理(CAP theorem)又被稱作布魯爾定理(Brewer's theorem),是回加州大學伯克得分校的計算機科學家埃裏克·布魯爾(Eric Brewer)在2000年的ACM PODC上提出的一個猜想。2002 年,麻省理工學

原创 數據可視化的一些知識

什麼是可視化 我們知道,計算的目的是從數據中獲得洞察力。可視化技術是一種將數據轉換成幾何圖形表示的技術,它能夠直觀地展現數據,提供自然的人機交互的能力。 簡而言之,可視化是一種數據的可視表現形式以及交互技術的總稱。它通過圖形化的方式把數據表