原创 RocketMQ Consumer如何訂閱消息的?

在配置Consumer的時候,通常會有這麼一行代碼: /** * 訂閱指定topic下tagA消息<br> * 注意:一個consumer對象可以訂閱多個topic */ consumer.subscribe

原创 RocketMQ消息存儲結構簡介--CommitLog

RocketMQ消息存儲是整個系統的核心,直接決定着吞吐性能和高可用性。RocketMQ存儲消息並沒有藉助oracle、mysql等關係型數據庫,而是直接操作文件。藉助java NIO的力量,使得I/O性能十分高。當消息來的時候,

原创 RocketMQ發送消息如何選擇消息隊列?

Producer發送消息的主要流程是驗證消息---->查找Topic路由---->選擇消息隊列—>發送消息。驗證消息沒什麼好說的,很簡單。Topic路由的獲取和保存、發送消息,之前的文章都有部分涉及,就不再贅述。這裏我們對消息隊列

原创 ByteBuffer介紹

爲什麼會在RocketMQ系列裏面參雜一篇ByteBuffer的文章呢?因爲RocketMQ存儲消息,是存儲在文件中的,而且剛好使用的是ByteBuffer。這個屬於Java NIO的內容,平時用到的非常少,如果像我一樣沒有相關的

原创 RocketMQ如何維持心跳

首先放上RocketMQ網絡結構圖,如下所示: Producer與NameSrv隨機建立長連接,定期從NameSrv獲取topic路由信息。然後Producer還與Broker的Master結點建立長連接,用於發送消息。此外Pr

原创 Producer如何獲取Topic路由信息

Producer要發送Message,肯定需要先知道Topic路由信息,這樣才能找到提供Topic服務的Broker master結點併發送Message。之前的文章Topic是如何創建和保存的,我們知道了Topic在Broker

原创 RocketMQ是如何通訊的?

前言 RocketMQ作爲一個分佈式消息中間件,通訊肯定是必不可少的。參與通訊的角色包括:NameSrv,Broker,Producer和Consumer,另外Broker Master和Slave結點之間也有通訊。RocketM

原创 策略模式與消除If-else

策略模式 策略模式是很常見的一種設計模式,將具體的算法封裝起來,可以平等替換,避免客戶端過多的涉及業務邏輯。網上有很多講策略模式的文章,都很好。但也有一些文章強行將策略模式、狀態模式和消除if-else聯繫起來,這是不對的。策略模

原创 RocketMQ Topic是如何註冊和保存的

Topic Topic用於標識一些消息的分類,例如訂單消息,通知消息。RocketMQ Producer發送消息,Consumer接收消息,Topic都是繞不過去的話題,消息就是圍繞Topic組織的。Topic存儲在NameSrv

原创 CentOS 7使用RocketMQ mqadmin命令工具報錯

問題描述 我在CentOS 7上安裝好RocketMQ之後,使用mqadmin創建topic,命令如下: ./mqadmin updateTopic -n 192.168.77.129:9876 -c DefaultCluster

原创 flex佈局導致ellispsis失效

問題描述 之前的文本超過長度省略文章中,講到了如何通過CSS控制文本超過長度省略。但是在flex佈局中,ellispis卻失效了。舉例說明: 文檔結構如下: <div class="container"> <div cla

原创 如何判斷ellispsis生效了

主要內容 要讓文本超過長度後,截取顯示並附上省略號,可以通過如下的css代碼實現: text-overflow: ellipsis; overflow: hidden; white-space: nowrap; width

原创 jsp頁面禁用緩存

A頁面跳轉到B頁面後,按返回按鈕,返回頁面A後並沒有繼續處理,而是卡住了,原因是jsp頁面被瀏覽器緩存了。因此需要禁用Jsp頁面緩存。 正確的做法: <%@ page contentType="text/html;charset=

原创 Dubbo-Monitor安裝後無法訪問

安裝步驟說明 Dubbo-Monitor安裝比較簡單,下載好包之後,解壓,進入到conf目錄,編輯dubbo.properties文件: dubbo.container=log4j,spring,registry,jetty du

原创 Apollo加載配置小坑一記

公司的配置中心使用的是攜程的Apollo配置中心,現在基本上所有的配置文件都遷移到了Apollo裏面。Apollo的使用非常方便,實時生效,不需要重啓應用。但是有個缺點,就是對配置沒有進行校驗,如果配置格式或者類型有問題的話,就會