1. 程式人生 > >Apache RocketMQ 訊息佇列部署與視覺化介面安裝

Apache RocketMQ 訊息佇列部署與視覺化介面安裝

一、介紹

Apache RocketMQ是一個分散式、佇列模型的訊息中介軟體,具有低延遲、高效能和高可靠、萬億級容量和靈活的可擴充套件性。核心元件由四部分組成:Name Servers,Brokers,Producer 和 Consumer;它們中的每一個都可以水平擴充套件,而沒有單一的故障節點。

  1. NameServer:是一個幾乎無狀態的節點,可叢集部署,節點之間無任何資訊同步
  2. Broker:部署相對複雜,Broker分為Master與Slave,一個Master可以對應多個Slaver,但是一個Slaver只能對應一個Master,Master與Slaver的對應關係通過指定相同的BrokerName,不同的BrokerId來定義,BrokerId為0表示Master,非0表示Slaver。Master可以部署多個。每個Broker與NameServer叢集中的所有節點建立長連線,定時註冊Topic資訊到所有的NameServer
  3. Producer:與NameServer叢集中的其中一個節點(隨機選擇)建立長連線,定期從NameServer取Topic路由資訊,並向提供Topic服務的Master建立長連線,且定時向Master傳送心跳。Produce完全無狀態,可叢集部署
  4. Consumer:與NameServer叢集中的其中一個節點(隨機選擇)建立長連線,定期從NameServer取Topic路由資訊,並向提供Topic服務的Master、Slaver建立長連線,且定時向Master、Slaver傳送心跳。Consumer即可從Master訂閱訊息,也可以從Slave訂閱訊息,訂閱規則由Broker配置決定

 

二、MQ安裝部署

2.1. 下載

直接找最新版下載後解壓
http://rocketmq.apache.org/release_notes

 

2.2. 修改配置

修改 conf/broker.conf
新增以下配置

brokerIP1:配置broker所在伺服器的ip地址,以便Name Server連線

 
修改 runserver.shrunbroker.sh (可不改)
因為rocketMQ預設的啟動引數記憶體佔用非常大,如果環境沒有這麼多記憶體就必需修改JAVA_OPT引數

  • runserver.sh
JAVA_OPT="${JAVA_OPT} -server -Xms256m -Xmx256m -Xmn125m -XX:MetaspaceSize=128m -XX:MaxMetaspaceSize=320m"
  • runbroker.sh

    JAVA_OPT="${JAVA_OPT} -server -Xms256m -Xmx256m -Xmn125m -XX:MetaspaceSize=128m -XX:MaxMetaspaceSize=320m"

 

2.3. 執行Name Server

nohup sh bin/mqnamesrv &

檢視執行日誌:tail -f ~/logs/rocketmqlogs/namesrv.log

 

2.4. 執行Broker

nohup sh bin/mqbroker -n localhost:9876 -c conf/broker.conf &

通過-c引數指定配置檔案
檢視執行日誌:tail -f ~/logs/rocketmqlogs/broker.log

 

2.5. 停止服務的方式

如果需要停止RocketMQ的服務,在生產環境不建議直接用kill,應該使用以下命令

sh bin/mqshutdown broker

sh bin/mqshutdown namesrv

 

三、安裝視覺化管理介面

  • 下載
    https://github.com/apache/rocketmq-externals/tree/master/rocketmq-console
  • 編譯
mvn clean package -Dmaven.test.skip=true
  • 執行
nohup java -jar \
    -Drocketmq.config.namesrvAddr=192.168.28.130:9876 \
    -Drocketmq.config.isVIPChannel=false \
    rocketmq-console-ng-1.0.0.jar &
  • 訪問
    http://192.168.28.130:8080/

 

四、常見異常處理

4.1. MQClientException: No route info of this topic, TopicTest1

4.1.1. 異常說明

在客戶端的 Producer 執行起來準備傳送訊息時拋異常為 “ No route info of this topic ” 異常產生的原因可能是:

  1. Broker 禁止自動建立 Topic,且使用者沒有通過手工方式建立 Topic
  2. Broker 沒有正確連線到 Name Server
  3. Producer 沒有正確連線到 Name Server

 

4.1.2. 解決辦法

  • 排查1:Broker 禁止自動建立 Topic,且使用者沒有通過手工方式建立 Topic
    • 可以在rocketmq所在目錄下執行 " sh bin/mqbroker -m " 來檢視 broker 的配置引數
    • 如下所示,autoCreateTopicEnable=true 證明是沒有問題的

 

  • 排查2:Broker 沒有正確連線到 Name Server
    通過檢視broker的日誌 tail -f ~/logs/rocketmqlogs/broker.log 看看有沒有錯誤資訊

 

  • 排查3:Producer 沒有正確連線到 Name Server
    1. 檢查程式連線 Name Server 的地址有沒有錯
    2. 如果在雲伺服器上,檢查安全組的配置9876埠有沒有開發
    3. 看看有沒有開啟防火牆,有的話設定防火牆開放9876
      bash [root@zlt rocketmq-all-4.5.0-bin-release]# firewall-cmd --zone=public --list-ports 8090/tcp 80/tcp 8080/tcp [root@zlt rocketmq-all-4.5.0-bin-release]# firewall-cmd --zone=public --add-port=9876/tcp --permanent success [root@zlt rocketmq-all-4.5.0-bin-release]# firewall-cmd --reload success [root@zlt rocketmq-all-4.5.0-bin-release]# firewall-cmd --zone=public --list-ports 9876/tcp 8090/tcp 80/tcp 8080/tcp

 

4.2. RemotingTooMuchRequestException: sendDefaultImpl call timeout

4.2.1. 異常說明

  • 在客戶端的 Producer 執行起來準備傳送訊息時拋異常如下
  • 通常因為Name Server連線不上Broker

 

4.2.2. 解決辦法

檢查 rocketmq-console 的叢集頁籤,broker 的地址是否正確

broker地址的配置方式請參考 安裝部署 中提到的步驟:

  1. 修改 broker.conf 的配置,新增 brokerIP1 引數
  2. 啟動 broker 時加上 -c 引數指定配置檔案

 

4.3. 消費/檢視不了死信佇列topic的訊息

4.3.1. 異常說明

死信佇列預設的 perm 值為2沒有檢視許可權
 

4.3.2. 解決辦法

在控制檯把佇列的 perm 改為6就可以了
主題點選 TOPIC配置

修改perm

 

推薦閱讀

  • 日誌排查問題困難?分散式日誌鏈路跟蹤來幫你
  • zuul整合Sentinel最新的閘道器流控元件
  • 阿里註冊中心Nacos生產部署方案
  • Spring Boot自定義配置項在IDE裡面實現自動提示
  • Spring Cloud Zuul的動態路由怎樣做?整合Nacos實現很簡單
  • Spring Cloud開發人員如何解決服務衝突和例項亂竄?
  • Spring Cloud同步場景分散式事務怎樣做?試試Seata

 
掃碼關注有驚喜!

相關推薦

Apache RocketMQ 訊息佇列部署視覺介面安裝

一、介紹 Apache RocketMQ是一個分散式、佇列模型的訊息中介軟體,具有低延遲、高效能和高可靠、萬億級容量和靈活的可擴充套件性。核心元件由四部分組成:Name Servers,Brokers,Producer 和 Consumer;它們中的每一個都可以水平擴充套件,而沒有單一的故障節點。

rocketmq學習(二) rocketmq叢集部署圖形控制檯安裝

1.rocketmq圖形化控制檯安裝   雖然rocketmq為使用者提供了使用命令列管理主題、消費組以及broker配置的功能,但對於不夠熟練的非運維人員來說,命令列的管理介面還是較難使用的。為此,我們可以使用圖形化的管理介面來簡化管理操作。   rocketmq官方推薦的圖形化控制檯目前還處在不成熟的孵化

linux 上部署 YApi 視覺介面管理平臺

## linux 上部署 YApi 視覺化介面管理平臺: [YApi 是一個高效、易用、功能強大的視覺化介面管理平臺](http://yapi.demo.qunar.com/),官方地址 : [http://yapi.demo.qunar.com/](http://yapi.demo.qunar.com/

rocketmq安裝視覺管理平臺安裝

安裝jdk環境變數. 啟動mqnamesrv -> nohup sh bin/mqnamesrv & 啟動mqbroker -> nohup sh mqbroker -n l

訊息佇列訊息佇列概述AMQP協議

轉載請註明出處:https://blog.csdn.net/jinixin/article/details/83552185     前面幾篇文章中談了rpc服務, rpc可用於程序間通訊, 使應用得以解耦, 而程序間通訊還可使用訊息佇列來完成. 本篇文章就簡

python資料分析新手入門課程學習——(二)探索分析視覺(來源:慕課網)

 一,單因子與對比分析視覺化 資料 import pandas as pd df = pd.read_csv('./HR.csv') #檢視前十條資料 df.head(10) 以下為顯示的結果 我們可以看出: 第一個屬性satisf

三角網格表面高斯曲率的計算視覺

好久沒有寫程式碼了,最近拿計算三角網格表面的高斯曲率練了練手,並實現了高斯曲率的視覺化,複習了一點微分幾何的知識。感覺有時候還是要自己把程式碼寫出來,除錯執行,結合試驗結果,才能對相應的知識有更深的瞭解。 所謂曲面上某點的高斯曲率,即該點兩個主曲率的乘積。把曲面上的頂點對映到單位球的球心,把法線

Elastic Stack實戰學習教程~日誌資料的收集、分析視覺

Elastic Stack介紹 近幾年,網際網路生成資料的速度不斷遞增,為了便於使用者能夠更快更精準的找到想要的內容,站內搜尋或應用內搜尋成了不可缺少了的功能之一。同時,企業積累的資料也再不斷遞增,對海量資料分析處理、視覺化的需求也越來越高。 在這個領域裡,開源專案ElasticSearch贏得了市場的關

(十三)RabbitMQ訊息佇列-VirtualHost許可權管理

VirtualHost 像mysql有資料庫的概念並且可以指定使用者對庫和表等操作的許可權。那RabbitMQ呢?RabbitMQ也有類似的許可權管理。在RabbitMQ中可以虛擬訊息伺服器VirtualHost,每個VirtualHost相當月一個相對獨立的RabbitMQ伺服器,每個

3-6 用 Pandas 進行資料預處理:資料清洗視覺(版本:py3)

主要內容: 格式轉換 缺失資料 異常資料 資料標準化操作 格式轉換 如Python記錄時間的方式,不能夠直接實現減運算,就需要進行轉換 pandas.to_datetime 缺失資料 忽略缺失資料 直接標記 利用平均值、最常出現值進行填充 異常資料 處

Solr學習筆記---部署Solr到Tomcat上,視覺介面的介紹和使用,Solr的基本內容介紹,SolrJ的使用

學習Solr前需要有Lucene的基礎 1.部署Solr到Tomcat(Windows)   Solr自帶小型伺服器jetty,但在我們開發環境中,習慣使用Tomcat,所以把Solr部署到Tomcat上(Tomcat 8.0以上,jdk 1.8以上)   其實步驟相同,但在windows配置要方便一些,所

python3 [爬蟲入門實戰]爬蟲之mongoDB資料庫的安裝配置視覺

從安裝過程到視覺化工具可檢視資料資訊,歷時兩天,昨天坐了一天的火車,今天早上才到的青島–> 來放鬆心情。 前天說是要學習如何使用mongoDB的連結與安裝。 到今天過去了將一天, 不過還是在函兮的嘮叨下慢慢的安裝好了,確實來之不易,一臉懵逼

訊息佇列RabbitMQSpring整合

1.RabbitMQ簡介 RabbitMQ是流行的開源訊息佇列系統,用erlang語言開發。RabbitMQ是AMQP(高階訊息佇列協議)的標準實現。 官網:http://www.rabbitmq.com/ 2.Spring整合RabbitM

神經網路卷積層的實現原理視覺其過程 (caffe為例)

caffe中卷積層的實現 1 caffe卷積前向傳播 caffe前向傳播涉及到的類主要如下: 首先卷積層conv_layer.cpp中的Fprward進行前向傳播,呼叫父類base_conv_layer.cpp中的forward進行前向傳播,該函式

淘淘商城24_ActiveMq訊息佇列02_activeMqspring的整合

一、新增依賴 <!-- activeMQ --> <dependency> <groupId>org.apache.activemq</groupId> <artifactId>activemq-all</a

流形學習-高維資料的降維視覺

1.流形學習的概念 流形學習方法(Manifold Learning),簡稱流形學習,自2000年在著名的科學雜誌《Science》被首次提出以來,已成為資訊科學領域的研究熱點。在理論和應用上,流形學習方法都具有重要的研究意義。 假設資料是均勻取樣於一個高維

實戰 | 深度學習輕鬆學:如何用視覺介面部署深度學習模型

翻譯 | AI科技大本營參與 | 王赫上個月,我有幸結識了 DeepCognition.ai 的

MATLAB R2018a 統計和機器學習工具箱學習(一) 描述性統計視覺

MATLAB R2018a 統計和機器學習工具箱學習(一) 描述性統計與視覺化 該內容被分為三個部分: 一、資料管理(Managing Data);       二、描述性統計(Descriptive Statistics); 

kubernetes部署dashboard視覺外掛

dashboard簡介 Kubernetes 大部分的操作都是通過命令列工具 kubectl 完成的,為了提供更豐富的使用者體驗,Kubernetes 還開發了一個基於 Web 的 Dashboard,使用者可以用 Kubernetes Dashboard 部署容器化的應用、監控應用

紅黑樹邊學邊做--python3實現視覺

一.紅黑樹性質和應用 每個節點或是紅色的,或是黑色的 根節點是黑色的 每個葉節點(NIL)是黑色的 如果一個節點是紅色的,則它的兩個子節點都是黑色的 對於每個節點,從該節點到其所有後代葉節點的簡單路徑上,均包含相同數目的黑色節點。 這五條性質決定了紅黑樹