原创 MySQL讀書筆記--鎖

MySQL InnoDB 存在的鎖由如下幾種 共享鎖(S):允許事務讀一行數據 排他鎖(X):允許事務刪除或者更新一行數據 InnoDB支持多粒度鎖定,這種鎖允許事務在行級上的鎖和表級上的鎖同時存在。爲支持在不同粒度上進行加鎖操作。Inn

原创 RabbitMQ/RocketMQ/Kafka 消息投遞

消息投遞分爲兩個部分,一是生產者對Broker的消息投遞,二是Broker對消費者的消息投遞。 生產者需要保證消息正確的投遞到了Broker, Broker保證每個消息至少消費一次。 RabbitMQ 1.事務(同步,性能差)    tx

原创 RabbitMQ/RocketMQ/Kafka 消息存儲

RabbitMQ   1.RabbitMQ的消息堆積模式爲內存(不是絕對的,當內存不足時會出現換頁現象)。所以,在生產者發生消息至Exchange,Exchange根據規則將消息在複製到匹配的隊列中,所以每個Queue擁有所有的消息。

原创 RabbitMQ/RocketMQ/Kafka 高可用架構的對比

RabbitMQ 1.普通模式 2.鏡像模式  RabbitMQ 的高可用有兩種模式,一種是普通模式,另一種是鏡像模式。 普通模式:每個節點同步元數據,即每個節點都擁有一份完整的元數據,而隊列數據只存在某個節點中。 鏡像模式:基於普通

原创 RabbitMQ/RocketMQ/Kafka 單機架構的對比

RabbitMQ 1.在RabbitMQ中,生產者通過與Broker連接並且建立信道(Channel),將消息發送至交換器(Exchange)。然後根據Exchange 的類型,將消息路由到指定隊列。 2.消費者通過與Broker連接並且

原创 小雨傘觸達系統的優化方向的一些思考

小雨傘已上線的觸達系統 https://mp.weixin.qq.com/s/wItL0k8oHOqF0_LlEctrRw 在過去一年裏,經過多次迭代,已經基本達到當時系統設計的目標。隨着業務接入的增多,也引來了我的一些思考。 當前觸達系

原创 NSQ 源碼分析之Lookupd--TCPServer

今天主要講的是 Lookupd 中 TCP 服務的實現,TCP服務主要用於響應 NSQD 的心跳檢查,NSQD 註冊等信息。Lookupd 的 TCP 服務與 NSQD 中的 TCP 服務 在代碼結構及實現方面非常相似。都是通過 IOLo

原创 NSQ 源碼分析之Lookupd--HttpServer

NSQ 中 HttpServer 實現比較簡單,通過內部 http.Server 實現,並通過 github.com/julienschmidt/httprouter 實現路由機制。 在 HttpServer 中,包含 NSQ 的相關的元

原创 NSQ 源碼分析之NSQD--Channel

今天主要講的是NSQ Channel 的代碼實現,Channel 作爲Topic的重要組成部分,主要的作用是通過隊列的形式傳遞消息,並等待訂閱者消費。 主要代碼文件: 1.nsqd/channel.go channel結構體 type

原创 母胎solo, so what?

其實也沒有想那麼多,就是遇不到合適的,何苦爲難自己去湊合別人,或讓別人湊合自己,生活已如此艱難,就不要給彼此添堵了。 常常問自己“一個人不好麼”?,可能你們覺得我虛僞,但這幾年來我第一想法就是“真的挺好的”。我有自己的興趣,有自己目標,一

原创 NSQ 源碼分析之NSQD 的啓動

1.NSQD的配置(nsqd/options.go)包括如下參數: type Options struct { /*******************基本信息配置*********************/ //節點ID ID

原创 NSQ 全視圖

前段時間,基於對go語言的興趣,又苦於沒有機會實踐,於是想研究一些開源框架的源碼。而選擇NSQ主要是因爲在工作中經常需要使用的MQ,比如RabbitMQ 或 RocketMQ,因此也萌發了對MQ實現原理的興趣。 NSQ的一些介紹大家可以在

原创 RabbitMQ 的一些理解

主要概念     AMQP:高級消息隊列協議     Erlang:編寫語言     Queue:隊列         單消費者         多消費者:Queue中的消息會被平均分攤到多個消費者     Producer:生產者   

原创 二進制在項目中的小應用

在一個32位的計算機中,一個int型由4個字節,32個比特位組成。在日常使用中,一個int代表一個數字。在數據表中,可以代表某一事物或事件的一種狀態。但這樣未免太過單調。而且我們很難通過一個字段表示多種多種狀態,且狀態之間相互獨立。即一個

原创 go 實現微信公衆號接口

通過go 實現一些微信公衆的接口,克隆地址:[email protected]:huang03/HiWeiChatApi.git 目錄 支持功能:     1.普通消息接收     2.AccessToken獲取     3.發送模板消息