原创 【九】kafka延遲隊列、重試隊列、死信隊列

一、延遲隊列 實現方案: 在發送延時消息的時候並不是先投遞到要發送的真實主題(real_topic)中,而是先投遞到一些 Kafka 內部的主題(delay_topic)中,這些內部主題對用戶不可見, 然後通過一個自定義的服務拉取這些內

原创 【十】kafka之爲何高性能、監控關注指標

一、kafka爲何高性能 1.分區 kafka是個分佈式集羣的系統,整個系統可以包含多個broker,也就是多個服務器實例。每個主題topic會有多個分區,kafka將分區均勻地分配到整個集羣中,當生產者向對應主題傳遞消息,消息通過負載均

原创 【五】kafka體系架構之消費者客戶端概述

目錄標題消費組消費端分區分配策略RangeAssignor分配策略RoundRobinAssignor分配策略StickyAssignor分配策略消費再均衡Rebalance弊端:觸發再均衡的場景Rebalance1.組成員數量發

原创 【四】kafka體系架構之kafka服務端概述(主題、分區、副本、日誌、控制器)

參考 https://www.luozhiyun.com/archives/260 一、架構圖 由此可以看到kafka體系架構的組成有如下幾部分: 1.producer生產者,發送消息到kafka cluster 2.kafka cl

原创 【七】kafka可靠性、有序性、重複消費、丟數據、線程安全

一、哪些情況會造成重複消費 1.生產者掛了重啓 場景: 生產者設置的ACK是ALL,及需要所有副本都保存了消息才叫發送成功。 假設生產者發送一條信息,leader已經收到且已經保存了,follower還沒來得及同步,leader就掛了。

原创 【二】kafka體系架構之生產者客戶端概述

基於kafka 2.11版本 kafka-clients 2.2.2 一、架構圖 由此可以看到kafka體系架構的組成有如下幾部分: 1.producer生產者,發送消息到kafka cluster 2.kafka cluster是由

原创 【二十五】分佈式鎖(redlock、redis、zookeeper)

一、分佈式鎖必須保證的特性      互斥      無死鎖      容錯      阻塞與非阻塞      可重入 二、如何使用redis實現分佈式鎖(根據redlock算法) redlock算法參考這篇翻譯分析:http://z

原创 【二十七】redis之結合Lua腳本

一、redis中使用lua腳本的優點 1.減少網絡開銷,在 Lua 腳本中可以把多個命令放在同一個腳本中運行,只有一次網絡開銷。 2.原子操作,Redis 會將整個腳本作爲一個整體執行,中間不會被其他命令插入。 3.複用性,客戶端發送的

原创 【二十六】redis之事務、事務特性、與pipeline比較,與Lua腳本比較

一、redis事務的特性 1.原子性 這裏的原子性跟mysql的原子性不一樣。 redis事務的原子性是說的:一次事務提交的多個命令,要麼都不執行(watch發現某個key的值變了則不開始執行),要麼所有的命令都執行(一旦開始執行事務,事

原创 【二十四】redis之緩存與數據的一致性(DTP)

分佈式的數據庫保證數據一致性,如果有分佈式事務是最好,或者XA這種分佈式事務也挺好。 但是這裏說的可以粗暴的理解成redis作爲緩存使用的時候如何保證redis和mysql中數據的一致性。 一、讀操作 讀操作都沒什麼大的分歧,一般都是先讀

原创 【二十二】redis之內存淘汰策略和過期策略

一、內存淘汰策略 1.場景 redis的數據會在內存裏面,並且有配置設置redis最多能佔用多少內存,那就一定存在一個情況:當redis能佔用的內存已滿,但redis還需要再存新的數據在內存中,那怎麼辦? 這個就是內存淘汰策略解決的問題

原创 【二十三】redis之緩存穿透、緩存擊穿、緩存雪崩及解決方案

一、緩存穿透 概念: 一次請求發現數據在緩存和DB中都沒有。 通常是惡意攻擊 比如:請求一個數據的ID爲-1 解決方案: 1.攔截不合法請求 可考慮使用布隆過濾器,將所有可能存在的數據哈希到一個足夠大的bitMap中,一個一定不存在的數據

原创 【十一】MySQL中InnoDB及索引深入剖析(數據頁、記錄、頁目錄、B+樹索引、聚簇索引、二級索引、索引優化 轉自羅志贇)

InnoDB頁 將數據劃分爲若干個頁,以頁作爲磁盤和內存之間交互的基本單位,InnoDB中頁的大小一般爲 16 KB。也就是在一般情況下,一次最少從磁盤中讀取16KB的內容到內存中,一次最少把內存中的16KB內容刷新到磁盤中。 InnoD

原创 【十】mysql之SQL優化及一條SQL是怎麼被執行的(轉載羅志贇的)

原文鏈接:Mysql的SQL優化指北 一、概述 在一次和技術大佬的聊天中被問到,平時我是怎麼做Mysql的優化的?在這個問題上我只回答出了幾點,感覺回答的不夠完美,所以我打算整理一次SQL的優化問題。 要知道怎麼優化首先要知道一條SQL是

原创 【九】mysql之主從複製(轉載)

本文轉自深度探索MySQL主從複製原理 啓迪雲計算-開發工程師 邸小麗 一、概要 MySQL Replication (MySQL 主從複製) 是什麼?爲什麼要主從複製以及它的實現原理是什麼? 1.MySQL 主從複製概念 MySQL 主