原创 Kafka學習筆記(四)—— API使用

1、Producer API 1.1 消息發送流程 Kafka的Producer發送消息採用的是異步發送的方式。在消息發送的過程中,涉及到了兩個線程——main線程和Sender線程,以及一個線程共享變量——RecordAccumulato

原创 集合類不安全之Set

1、不安全的Set 上代碼: public static void main(String[] args) throws Exception { Set<String> set = new HashSet<>();

原创 集合框架學習之ArrayList源碼(一)

ArrayList是我們經常使用到的一個集合類,通過查看其底層源碼實現,有利於我們更好的掌握與使用。ArrayList不算多,但是也不算少,挨個看下去也挺費時費力的。所以呢,我打算循序漸進着來,比如這一篇就先看看ArrayList的屬性,以

原创 集合類不安全之ArrayList

1. 不安全的ArrayList 大家都知道ArrayList線程不安全,怎麼個不安全法呢?上代碼: public class ContainerNotSafeDemo { public static void main(Strin

原创 Java內存模型學習筆記(一)—— 基礎

1、併發編程模型的分類 在併發編程中,我們需要處理兩個關鍵的問題:1、線程間如何通信,2、線程間如何同步。通信是指線程之間以何種機制來交換信息,同步是指程序用於不同線程之間操作發生相對順序的機制。 在命令式編程中,線程之間的通信機制有兩種:

原创 An Illustrated Proof of the CAP Theorem

An Illustrated Proof of the CAP Theorem The CAP Theorem is a fundamental theorem in distributed systems that states any

原创 Kafka學習筆記(三)——架構深入

之前搭建好了Kafka的學習環境,瞭解了具體的配置文件內容,並且測試了生產者、消費者的控制檯使用方式,也學習了基本的API。那麼下一步,應該學習一下具體的內部流程~ 1、Kafka的工作流程 大致的工作流程圖如下: 如圖所示哈,整個工作

原创 kafka學習筆記(二)——基礎入門

1、集羣規劃 從官網下載jar包 http://kafka.apache.org/downloads.html,我選擇的是kafka_2.11-0.11.0.0.tgz版本 規劃一下集羣環境先~ hadoop102 hadoop103

原创 緩存問題及解決方案

1、緩存穿透 緩存穿透是指查詢一個一定不存在的數據,由於緩存中沒有這個數據,所以會去查詢數據庫,但是數據庫也沒有這條數據,並且處於容錯考慮,我們沒有將這次查詢的null寫入緩存,這將導致每次請求這條數據都需要查詢數據庫,失去了緩存的意義。在

原创 kafka學習筆記(一)——概述

1、kafka是什麼? 官方說明是: Kafka是一個分佈式的基於發佈/訂閱模式的消息隊列,主要應用於大數據實時處理領域。 提到了兩個概念: 發佈/訂閱模式 消息隊列 下邊來理解一下這兩個名詞。 2、消息隊列(Message Queue

原创 ZooKeeper學習筆記(二)——內部原理

zookeeper學習筆記(二)——內部原理 1. zookeeper的節點的類型 總的來說可以分爲持久型和短暫型,主要區別如下: 持久:客戶端與服務器端斷開連接的以後,創建的節點不會被刪除; 持久化目錄節點:客戶端與zookeeper

原创 ZooKeeper學習筆記(一)——概述

zookeeper學習筆記(一)——概述 1. 概述 Zookeeper是一個開源的分佈式的,爲分佈式應用提供協調服務的Apache項目。zookeeper從設計模式的角度來理解:是一個基於觀察者設計模式的分佈式服務管理框架,她負責存儲和

原创 Hive學習筆記(一)——概述

1.Hive是個什麼玩意? Hive:由Facebook開源用於解決海量結構化日誌的數據統計。 Hive是基於Hadoop的一個數據倉庫工具,可以將結構化的數據(有規律的數據)文件映射爲一張表,並提供類SQL查詢功能。 一句話暴力總結:通過

原创 Hive的基本使用(一)—— 數據類型

Hive的基本使用(一)——數據類型 1. Hive的基本數據類型 Hive數據類型 Java數據類型 長度 例子 TINYINT byte 1byte有符號整數 20 SMALINT short 2byte有符號整數 2

原创 Docker基礎入門 (一)—— 簡介

Docker —— 簡介 1. Doker是個什麼玩意 說Docker是什麼之前,先來看一看Docker爲什麼會出現。我們知道,在學習過程中我們需要頻繁地安裝配置一些軟件,不管是在Windows下還是在Linux,這些東西的配置過程都是非常