原创 Kafka 是如何管理消費位點的?

Kafka 是一個高度可擴展的分佈式消息系統,在實時事件流和流式處理爲中心的架構越來越風靡的今天,它扮演了這個架構中核心存儲的角色。從某種角度說,Kafka 可以看成實時版的 Hadoop 系統。Hadoop 可以存儲和定期處理大量的數據文

原创 Kafka 是如何建模數據的?

Kafka 是一個高度可擴展的消息系統,具有優秀的水平可擴展性和高吞吐率的特點,因而被許多公司所青睞並得到廣泛的使用。本文首先介紹 Kafka 誕生的時代背景以及誕生之初的設計目標,隨後回答 Kafka 作爲一個消息系統是如何建模數據的,最

原创 Actor 模型中的通信模式

在 Actor 模型中所有的 Actor 之間有且只有一種通信模式,那就是 tell 的方式,也就是 fire and forget 的方式。但是在實際的開發過程中工程師們逐漸總結出了一些常用的通信模式。本文以 akka-typed(2.6

原创 ZK 網絡故障應對法

網絡故障可以說是分佈式系統天生的宿敵。如果永遠不發生網絡故障,我們實際上可以設計出高可用強一致的分佈式系統。可惜的是不發生網絡故障的分佈式環境還不存在,ZK 使用過程中也需要小心的應付網絡故障。 讓我們先忘掉故障發生的情況,首先來看到 ZK

原创 ZK Watcher 的原理和實現

什麼是 ZK Watcher 基於 ZK 的應用程序的一個常見需求是需要知道 ZK 集合的狀態。爲了達到這個目的,一種方法是 ZK 客戶端定時輪詢 ZK 集合,檢查系統狀態是否發生了變化。然而,輪詢並不是一種高效的方式,尤其是在狀態變化的發

原创 Monad 在實際開發中的應用

版權歸作者所有,任何形式轉載請聯繫作者。 作者:tison(來自豆瓣) 來源:https://www.douban.com/note/733279598/ Monad 在實際開發中的應用 不同的人會從不一樣的角度接觸 Monad。大多數網上

原创 C 擴展對閉包特性的支持

今日聽說某君批評 C 語言說它【輸入一個參數返回一個函數】很困難。 例如在 Python 中,你可以 def addn(n): def addx(x): return n + x return addx my_adde

原创 簡談分佈式計算和本地計算的區別

版權歸作者所有,任何形式轉載請聯繫作者。 作者:tison(來自豆瓣) 來源:https://www.douban.com/note/720831988/ 古老的論文《A Note on Distributed Computing》介紹了分