NSQ Producer 源碼分析

producer.jpg
  • NewProducer 根據(jù) nsqd addr 和 config领炫。內(nèi)部會驗證配置,設置日志和日志級別遗增,初始化消息叫惊、返回、錯誤做修、退出的通道霍狰。

  • TcpConn 連接 nsqd 的時機可以主動使用 ping() 或者在 pub 時自動調(diào)用。連接成功后協(xié)程運行 ReadLoop饰及,用來讀取 PUB 同步返回和處理 Heartbeat蔗坯,再運行 WriteLoop,用來發(fā)送指令燎含,例如 PUB宾濒、 DPUBNOP屏箍,最后運行 Router绘梦,封裝發(fā)送指令和處理返回。準備完成后先發(fā)送 MagicV2 協(xié)議頭赴魁,然后發(fā)送 Identify 指令卸奉。

  • PUB, MPUB, DPUB 都是發(fā)送消息,分別含義是單消息指令颖御,多消息指令榄棵,延遲消息指令。發(fā)送時可以指定同步或異步。同步時等待 nsqd 返回 OK疹鳄。

  • Heartbeat 由 nsqd 主動發(fā)起拧略,間隔時間根據(jù) HeartbeatInterval 配置而定。ReadLoop 接受到心跳請求后會發(fā)送 NOP 指令

cmd 格式尚辑,例如:PUB 發(fā)送消息

cmd p1 p2 p3 ...(空格分隔辑鲤,換行結尾,cmd=指令名杠茬,p(n)=代表參數(shù))
body_len(4 字節(jié)) body_content(可能不包含 body)

返回 frame 格式月褥,例如:nsqd 返回 OK,心跳

[x][x][x][x][x][x][x][x][x][x][x][x]...
|  (int32) ||  (int32) || (binary)
|  4-byte ||  4-byte ||  N-byte
-------------------------------------...
    size        type        data
最后編輯于
?著作權歸作者所有,轉載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末瓢喉,一起剝皮案震驚了整個濱河市宁赤,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌栓票,老刑警劉巖决左,帶你破解...
    沈念sama閱讀 218,607評論 6 507
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異走贪,居然都是意外死亡佛猛,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,239評論 3 395
  • 文/潘曉璐 我一進店門坠狡,熙熙樓的掌柜王于貴愁眉苦臉地迎上來继找,“玉大人,你說我怎么就攤上這事逃沿∮ざ桑” “怎么了?”我有些...
    開封第一講書人閱讀 164,960評論 0 355
  • 文/不壞的土叔 我叫張陵凯亮,是天一觀的道長边臼。 經(jīng)常有香客問我,道長假消,這世上最難降的妖魔是什么柠并? 我笑而不...
    開封第一講書人閱讀 58,750評論 1 294
  • 正文 為了忘掉前任,我火速辦了婚禮富拗,結果婚禮上堂鲤,老公的妹妹穿的比我還像新娘。我一直安慰自己媒峡,他們只是感情好,可當我...
    茶點故事閱讀 67,764評論 6 392
  • 文/花漫 我一把揭開白布葵擎。 她就那樣靜靜地躺著谅阿,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上签餐,一...
    開封第一講書人閱讀 51,604評論 1 305
  • 那天寓涨,我揣著相機與錄音,去河邊找鬼氯檐。 笑死戒良,一個胖子當著我的面吹牛熏瞄,可吹牛的內(nèi)容都是我干的萨螺。 我是一名探鬼主播,決...
    沈念sama閱讀 40,347評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼想许,長吁一口氣:“原來是場噩夢啊……” “哼河泳!你這毒婦竟也來了沃呢?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 39,253評論 0 276
  • 序言:老撾萬榮一對情侶失蹤拆挥,失蹤者是張志新(化名)和其女友劉穎薄霜,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體纸兔,經(jīng)...
    沈念sama閱讀 45,702評論 1 315
  • 正文 獨居荒郊野嶺守林人離奇死亡惰瓜,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,893評論 3 336
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了汉矿。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片崎坊。...
    茶點故事閱讀 40,015評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖负甸,靈堂內(nèi)的尸體忽然破棺而出流强,到底是詐尸還是另有隱情,我是刑警寧澤呻待,帶...
    沈念sama閱讀 35,734評論 5 346
  • 正文 年R本政府宣布打月,位于F島的核電站,受9級特大地震影響蚕捉,放射性物質(zhì)發(fā)生泄漏奏篙。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,352評論 3 330
  • 文/蒙蒙 一迫淹、第九天 我趴在偏房一處隱蔽的房頂上張望秘通。 院中可真熱鬧,春花似錦敛熬、人聲如沸肺稀。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,934評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽话原。三九已至夕吻,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間繁仁,已是汗流浹背涉馅。 一陣腳步聲響...
    開封第一講書人閱讀 33,052評論 1 270
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留黄虱,地道東北人稚矿。 一個月前我還...
    沈念sama閱讀 48,216評論 3 371
  • 正文 我出身青樓,卻偏偏與公主長得像捻浦,于是被迫代替她去往敵國和親晤揣。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 44,969評論 2 355

推薦閱讀更多精彩內(nèi)容

  • 因為要加入一個p2p網(wǎng)絡默勾,并且與網(wǎng)絡中的節(jié)點交互碉渡,需要知道這個p2p網(wǎng)絡中的一些節(jié)點信息。節(jié)點發(fā)現(xiàn)母剥,使本地節(jié)點得知...
    jea的筆記本閱讀 1,899評論 0 3
  • 啟動流程 利用 svc 創(chuàng)建一個常駐進程 讀取配置滞诺,優(yōu)先級:命令行、配置文件环疼、默認配置 實例化 nsqd习霹,初始化日...
    威廉姆韋德惠達王閱讀 354評論 0 0
  • 我們用websocket和http來研究一下TCP/IP協(xié)議的一些特性,在上一篇文章《https連接的前幾毫秒發(fā)生...
    啾啾噠閱讀 512評論 0 1
  • 1炫隶、TCP狀態(tài)linux查看tcp的狀態(tài)命令:1)淋叶、netstat -nat 查看TCP各個狀態(tài)的數(shù)量2)、lso...
    北辰青閱讀 9,427評論 0 11
  • 我們的相識是偶然伪阶,相處是自然煞檩,慢慢的由自然變成了必然; 那時身著軍裝的他栅贴,看起來不算威武到也神氣斟湃,小白臉配上黃軍裝...
    阿莢閱讀 177評論 0 2