成人无码视频,亚洲精品久久久久av无码,午夜精品久久久久久毛片,亚洲 中文字幕 日韩 无码

資訊專欄INFORMATION COLUMN

RocketMQ源碼學(xué)習(xí)(一)-概述

godlong_X / 815人閱讀

摘要:每個(gè)與集群中的所有節(jié)點(diǎn)建立長(zhǎng)連接,定時(shí)注冊(cè)信息到所有。完全無(wú)狀態(tài),可集群部署。本系列源碼解析主要參照原理簡(jiǎn)介來(lái)追尋其代碼實(shí)現(xiàn)雖然版本不太一致但這也是能找到的最詳細(xì)的資料了接下來(lái)根據(jù)其模塊來(lái)源碼閱讀目錄如下

為什么選擇讀RocketMQ?

對(duì)MQ的理解一直不深,上周看了,還是覺(jué)得不夠深入,找個(gè)成熟的產(chǎn)品來(lái)學(xué)習(xí)吧,RabbitMQ是erLang寫(xiě)的,Kafka是Scala寫(xiě)的,非Java寫(xiě)的看起來(lái)還需要補(bǔ)充很多知識(shí),ActiveMQ雖然是Java,但是各方面略顯老舊,最終選擇了RocketMQ(4.1.0-incubating release)來(lái)學(xué)習(xí).

吐槽下RocketMQ

   作為阿里巴巴捐給Apache的項(xiàng)目,官網(wǎng)上有用的資源太少了,到處都只說(shuō)性能的數(shù)據(jù),還有簡(jiǎn)單例子,詳細(xì)的使用文檔竟然沒(méi)有了,怪不得沒(méi)有kafka流行呢,dubbo的文檔都比這強(qiáng)很多,話說(shuō)開(kāi)源產(chǎn)品不是擺來(lái)看和吹牛的,讓更多的人方便使用起來(lái)才是開(kāi)源的核心思想吧,另外源碼中的注釋也實(shí)在太少了,還不如我司的項(xiàng)目的注釋齊全呢,跟JDK,Spring比起來(lái)差太多了,不過(guò)好在名字起的不錯(cuò),編碼也規(guī)范,看起來(lái)還能繼續(xù)下去.

概覽


如圖所示RocketMQ的使用由命名服務(wù),生產(chǎn)者,消費(fèi)者,中轉(zhuǎn)服務(wù)器組成.

Name Server 是一個(gè)幾乎無(wú)狀態(tài)節(jié)點(diǎn),可集群部署,節(jié)點(diǎn)之間無(wú)任何信息同步

Broker 部署相對(duì)復(fù)雜,Broker 分為 Master 與 Slave,一個(gè) Master 可以對(duì)應(yīng)多個(gè) Slave,但是一個(gè) Slave 只能對(duì)應(yīng)一個(gè) Master,Master 與 Slave 的對(duì)應(yīng)關(guān)系通過(guò)指定相同的 BrokerName,不同的 BrokerId 來(lái)定義,BrokerId為 0 表示 Master,非 0 表示 Slave。Master 也可以部署多個(gè)。每個(gè) Broker 與 Name Server 集群中的所有節(jié)點(diǎn)建立長(zhǎng)連接,定時(shí)注冊(cè) Topic 信息到所有 Name Server。

Producer 與 Name Server 集群中的其中一個(gè)節(jié)點(diǎn)(隨機(jī)選擇)建立長(zhǎng)連接,定期從 Name Server 取 Topic 路由信息,并向提供 Topic 服務(wù)的 Master 建立長(zhǎng)連接,且定時(shí)向 Master 發(fā)送心跳。Producer 完全無(wú)狀態(tài),可
集群部署。

Consumer 與 Name Server 集群中的其中一個(gè)節(jié)點(diǎn)(隨機(jī)選擇)建立長(zhǎng)連接,定期從 Name Server 取 Topic 路
由信息,并向提供 Topic 服務(wù)的 Master、Slave 建立長(zhǎng)連接,且定時(shí)向 Master、Slave 發(fā)送心跳。Consumer 既可以從 Master 訂閱消息,也可以從 Slave 訂閱消息,訂閱規(guī)則由 Broker 配置決定。

本系列源碼解析主要參照來(lái)追尋其代碼實(shí)現(xiàn),雖然版本不太一致,但這也是能找到的最詳細(xì)的資料了.接下來(lái)根據(jù)其模塊來(lái)源碼閱讀
目錄如下:
1. Name Server
2. Producer
3. Broker
4. Consumer

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://m.hztianpu.com/yun/70243.html

相關(guān)文章

  • RocketMQ源碼學(xué)習(xí)(六)-Name Server

    摘要:完全無(wú)狀態(tài),可集群部署與集群中的其中一個(gè)節(jié)點(diǎn)隨機(jī)選擇建立長(zhǎng)連接,定期從取路由信息,并向提供服務(wù)的建立長(zhǎng)連接,且定時(shí)向發(fā)送心跳。既可以從訂閱消息,也可以從訂閱消息,訂閱規(guī)則由配置決定。 問(wèn)題列表: Name Server 的作用是什么? Name Server 存儲(chǔ)了Broker的什么信息? Name Server 為Producer的提供些什么信息? Name Server 為Co...

    Joyven 評(píng)論0 收藏0
  • jvm原理

    摘要:在之前,它是一個(gè)備受爭(zhēng)議的關(guān)鍵字,因?yàn)樵诔绦蛑惺褂盟占骼斫夂驮矸治龊?jiǎn)稱,是后提供的面向大內(nèi)存區(qū)數(shù)到數(shù)多核系統(tǒng)的收集器,能夠?qū)崿F(xiàn)軟停頓目標(biāo)收集并且具有高吞吐量具有更可預(yù)測(cè)的停頓時(shí)間。 35 個(gè) Java 代碼性能優(yōu)化總結(jié) 優(yōu)化代碼可以減小代碼的體積,提高代碼運(yùn)行的效率。 從 JVM 內(nèi)存模型談線程安全 小白哥帶你打通任督二脈 Java使用讀寫(xiě)鎖替代同步鎖 應(yīng)用情景 前一陣有個(gè)做...

    lufficc 評(píng)論0 收藏0
  • 讓你看懂的RocketMQ事務(wù)消息源碼分析(干貨)

    摘要:但是服務(wù)器又確實(shí)是收到了這條消息的,只是給客戶端的響應(yīng)丟失了,所以導(dǎo)致的結(jié)果就是扣款失敗,成功發(fā)貨。所有的半消息都會(huì)寫(xiě)在為的半消息隊(duì)列里,并且每條半消息,在整個(gè)鏈路里會(huì)被寫(xiě)多次,如果并發(fā)很大且大部分消息都是事務(wù)消息的話,可靠性會(huì)存在問(wèn)題。 前言 得益于MQ削峰填谷,系統(tǒng)解耦,操作異步等功能特性,在互聯(lián)網(wǎng)行業(yè),可以說(shuō)有分布式服務(wù)的地方,MQ都往往不會(huì)缺席。由阿里自研的RocketMQ更是...

    zsirfs 評(píng)論0 收藏0
  • 定能看懂的RocketMQ事務(wù)消息源碼分析(干貨)

    摘要:但是服務(wù)器又確實(shí)是收到了這條消息的,只是給客戶端的響應(yīng)丟失了,所以導(dǎo)致的結(jié)果就是扣款失敗,成功發(fā)貨。既然消息的發(fā)送不能和本地事務(wù)寫(xiě)在一起,那如何來(lái)保證其整體具有原子性的需求呢答案就是今天我們介紹的主角事務(wù)消息。 前言 得益于MQ削峰填谷,系統(tǒng)解耦,操作異步等功能特性,在互聯(lián)網(wǎng)行業(yè),可以說(shuō)有分布式服務(wù)的地方,MQ都往往不會(huì)缺席。由阿里自研的RocketMQ更是經(jīng)歷了多年的雙十一高并發(fā)挑戰(zhàn)...

    myshell 評(píng)論0 收藏0
  • 寫(xiě)這么多系列博客,怪不得找不到女朋友

    摘要:前提好幾周沒(méi)更新博客了,對(duì)不斷支持我博客的童鞋們說(shuō)聲抱歉了。熟悉我的人都知道我寫(xiě)博客的時(shí)間比較早,而且堅(jiān)持的時(shí)間也比較久,一直到現(xiàn)在也是一直保持著更新?tīng)顟B(tài)。 showImg(https://segmentfault.com/img/remote/1460000014076586?w=1920&h=1080); 前提 好幾周沒(méi)更新博客了,對(duì)不斷支持我博客的童鞋們說(shuō)聲:抱歉了!。自己這段時(shí)...

    JerryWangSAP 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

閱讀需要支付1元查看
<