原创 從喫雞中論裝飾器模式

在講裝飾器模式之前,我先講講代碼實例,在講具體的原理和結構。 情景:遊戲中經常使用槍(英文:Gun),有手槍(英文:Pistol),狙擊槍(英文:SniperRifle)等等。 然後槍有個基本功能,肯定是fire,也許shot更恰

原创 mysql 可重複讀。

一、可重複讀 我們先看看現象,再分析原理。我的mysql版本是5.5。 下面是一張表,只有一條數據,並且我開啓了事物 此時,另一個事物將record加1,因此我在開啓一個命令行客戶端,執行下面的命令: 成功加1之後,實際上,數據庫中r

原创 kafka-producer如何發送消息

producer如何發送消息 首先producer保持着一個與zk的鏈接,通過這個鏈接,可以獲得當前Topic所有的partition leader所在主機的列表,然後,會選擇一臺主機,直接發送消息到broker上的leader

原创 DP(動態規劃)入門

談到動態規劃,最經典的當然是揹包問題,可以百度下<<揹包九講>>。 但是這裏不準備從揹包問題講起,主要是覺得用揹包問題來講DP的思想,還不夠通俗易懂。 先來看一個金典的算法題: 爬臺階問題 有n個臺階,你每次可以爬1階或2階,問:

原创 Mysql-由淺入深論行鎖

對於mysql innodb的各種鎖,這裏不採用堆文字的講解方式,我們來從現象到本質,先看現象,再來說明其中的道理。 我使用的是mysql 5.5,默認隔離別-可重複讀。 建了一張表,如下圖: id爲主鍵,student_num上有

原创 kafka2.0-事物發送(the transactional producer)_10

事務 事務是Kafka 0.11開始引入的新特性。類似於數據庫事務,只是這裏的數據源是Kafka,kafka事務屬性是指一系列的生產者生產消息和消費者提交offset的操作在一個事務,或者說是是一個原子操作),同時成功或者失敗。 事

原创 kafka2.0-序列化與反序列化_07

概要:先講講kafka中簡單的序列化方式,以及實現,然後再使用protobuf實現一個自定義序列化的小程序 正如之前文章中寫過的例子程序,我們配置的序列化方式都是下面這樣的。 //生產者的序列化配置 props.put("key.

原创 kafka2.0-使用protobuf實現序列化_08

上一篇文章中講了json和jdk的序列化方式,這裏講使用protobuf類序列化 protobuf的介紹 Google Protocol Buffer( 簡稱 Protobuf) 是 Google 公司內部的混合語言數據標

原创 kafka2.0-冪等發送(the idempotent producer)_09

從kafka 0.11版本開始,生成者就支持了兩種額外的發送模式 - 冪等發送(the idempotent producer)和事物發送(the transactional producer),可以說這是kafka在支持EOS(ex

原创 kafka2.0-producer如何將消息分配到partition中_05

Topic:producer-0 PartitionCount:3 ReplicationFactor:2 Configs: Topic: producer-0 Partition: 0 Leader:

原创 kafka-自定義分區器(partitioner)_06

上一篇文章講了kafka的默認的分區器(DefaultPartitioner)源碼,這裏我們寫一個自定義分區器的小例子 生產者代碼如下: /** * kafka生產者 * 使用自定義的分片器發送消息 */ public clas

原创 kafka-producer基礎理論_04

如果你已經瞭解了kafka的producer基礎理論,可以跳過這篇文章 Partition & Replicas 我創建了一個名爲producer-0的topic,partitions的數量爲3,每個partitions除了本身之外還有

原创 kafka2.0-入門demo_03

上一篇文章簡單的講了搭建kafka的環境以及如何啓動。 現在來講講kafka的簡單使用,然後使用java寫個小的測試程序。 首先假設你已經啓動了kafka集羣,我們來創建一個topic,使用如下命令: bin/kafka-topics.s

原创 kafka2.0-環境搭建_02

聲明:我這裏搭建的是完全分佈式環境,zookeeper使用的是非kafka自帶的。(想深入瞭解kafka,需要先了解zk,如果你對zk有一定了解,那麼搭建zk分佈式環境將會非常easy) 單機環境和僞分佈環境可以參見官方文檔:http:/

原创 從吃雞中論裝飾器模式

在講裝飾器模式之前,我先講講代碼實例,在講具體的原理和結構。 情景:遊戲中經常使用槍(英文:Gun),有手槍(英文:Pistol),狙擊槍(英文:SniperRifle)等等。 然後槍有個基本功能,肯定是fire,也許shot更恰當,如