原创 Kafka: 用於日誌處理的分佈式消息系統

本文爲《Kafka: a Distributed Messaging System for Log Processing》的全文翻譯,爲了讓大家原汁原味的領悟到kafka的設計精髓,所以採用直譯並適當在括號中添加了作者觀點。 本

原创 JVM調優參數總結

JVM調優參數總結 Xmn、Xms、Xmx、Xss都是JVM對內存的配置參數。 堆內存分配 JVM初始分配的內存由-Xms指定,默認是物理內存的1/64 JVM最大分配的內存由-Xmx指定,默認是物理內存的1/4 默認空餘堆內存小

原创 關於中間件源碼中的線程休眠 Thread.Sleep(0) vs Thread.Sleep(1)

Thread.Sleep(0) Sleep 的意思是告訴操作系統自己要休息 n 毫秒,這段時間就讓給另一個就緒的線程吧。當 n=0 的時候,意思是要放棄自己剩下的時間片,但是仍然是就緒狀態,其實意思和 Yield 有點類似。但是

原创 RocketMQ 安裝部署教程詳解

RocketMQ 安裝部署教程詳解 Linux 環境 OS: Ubuntu 16.04 LTS x64 系統配置: 1C/2G/5M RocketMQ: 4.5.2 JDK: 1.8.0_201 Maven: 3.6.1 Git

原创 ZAB與Paxos的聯繫和區別

共同點: 都存在一個類似於Leader進程的角色,由其負責協調多個Follower進程的運行。 Leader進程都會等待超過半數的Follower做出正確的反饋後,纔會將一個提議進行提交。 在ZAB協議中,每個Proposal中

原创 爲什麼讀寫權限控制要設在不同的位上

比如 rwx 權限,如果我們分別用三個權限表示要佔用三倍的空間,就是三個 Integer,如果我們設置爲100表示讀,010表示寫,110表示讀寫,在代碼中我們可以設置 SelectionKey.OP_WRITE | Select

原创 dubbo 設計上的基本常識

談談擴充式擴展與增量式擴展 配置設計 設計實現的健壯性 防癡呆設計 擴展點重構

原创 tcp socket的backlog參數

syns queue 用於保存半連接狀態的請求,其大小通過/proc/sys/net/ipv4/tcp_max_syn_backlog指定,一般默認值是512,不過這個設置有效的前提是系統的syncookies功能被禁用。互聯

原创 分佈式事務框架 Seata

Seata 的3個基本組成部分 事務協調器(TC):維護全局事務和分支事務的狀態,驅動全局提交或回滾。 事務管理器(TM):用於開啓全局事務、提交或者回滾全局事務,是全局事務的開啓者。 資源管理器(RM):用於分支事務上的資源管理

原创 如何高效實用 Git SlowGO

場景 假設有一個項目,要開發下一代的 Facebook,你就是這個項目的技術 leader,你的團隊有3個開發人員: Alice:1年開發經驗 Bob:1年開發經驗 John:3年開發經驗 You:這個項目的技術 leader G

原创 Java併發編程之CyclicBarrier

柵欄類似於閉鎖,它能阻塞一組線程直到某個事件的發生。柵欄與閉鎖的關鍵區別在於,所有的線程必須同時到達柵欄位置,才能繼續執行。閉鎖用於等待事件,而柵欄用於等待其他線程。CyclicBarrier可以使一定數量的線程反覆地在柵欄位置處

原创 大學期間看的部分書目彙總

基礎書 算法競賽入門經典訓練指南 劉汝佳,陳鋒編著 劉汝佳著作,學計算機的必看 Ubuntu Linux從入門到精通 陶鬆[等]編著 Linux入門教程,這本書其實邏輯有點亂,適合看過視頻教程再來 算法與高級語言

原创 短輪詢和長輪詢的區別到底是什麼

首先來看這一段話 Kafka使用短輪詢方式,實時性取決於輪詢間隔時間 RocketMQ使用長輪詢,同Push方式實時性一致,消息的投遞延時通常在幾個毫秒。 看起來雲裏霧裏的,那麼長輪詢和短輪詢到底有什麼區別? 短輪詢 短輪詢

原创 kafka 安裝部署教程

kafka 安裝部署教程 1. 下載 官網鏈接 http://kafka.apache.org/downloads 浙大源 http://mirrors.tuna.tsinghua.edu.cn/apache/kafka/2.3.

原创 TCP之Nagle算法

TCP之Nagle算法&&延遲ACK 爲了減少廣域網的小分組數目,從而減小網絡擁塞的出現; 該算法要求一個tcp連接上最多只能有一個未被確認的未完成的小分組,在該分組ack到達之前不能發送其他的小分組,tcp需要收集這些少量的分組