1. 程式人生 > >RocketMQ 視覺化環境搭建和基礎程式碼使用

RocketMQ 視覺化環境搭建和基礎程式碼使用

RocketMQ 是一款分散式訊息中介軟體,最初是由阿里巴巴訊息中介軟體團隊研發並大規模應用於生產系統,滿足線上海量訊息堆積的需求, 在 2016 年底捐贈給 Apache 開源基金會成為孵化專案,經過不到一年時間正式成為了 Apache 頂級專案。<br />早期阿里曾經基於 ActiveMQ 研發訊息系統, 隨著業務訊息的規模增大,瓶頸逐漸顯現,後來也考慮過Kafka,但因為在低延遲和高可靠性方面沒有選擇,最後才自主研發了 RocketMQ, 各方面的效能都比目前已有的訊息佇列要好,RocketMQ 和 Kafka 在概念和原理上都非常相似,所以也經常被拿來對比;RocketMQ 預設採用長輪詢的拉模式, 單機支援千萬級別的訊息堆積,可以非常好的應用在海量訊息系統中。<br />本文分為三部分,如下圖所示:<br />image.png

<a name="1xvvk"></a>

1 安裝 RocketMQ—Windows 版本

<a name="RdEk4"></a>

(1)下載 Windows 安裝包

Windows 版本下載地址:http://rocketmq.apache.org/release_notes/<br />image.png<br />下載並解壓 rocketmq 安裝包。 <a name="LHt4n"></a>

(2)配置系統環境變數

配置系統變數 ROCKETMQ_HOME=“D:\soft\rocketmq-all-4.5.1-bin-release”,如下圖所示:<br />注意:每個人 rocketmq 存放目錄不一樣,我的在 D:\soft 下,使用者根據自己的環境配置相應的系統變數。<br />image.png

因為接下來啟動 mqnamesrv.cmd 中使用到了環境變數 %ROCKETMQ_HOME%,所以這裡需要配置此係統變數。

<a name="2S7UG"></a>

(3)啟動 namesrv

進入 rocketmq 的 bin 目錄,執行 start mqnamesrv.cmd ,執行成功如下圖所示:<br />image.png<br />注意:啟動之後,不能關閉此視窗。 <a name="28zct"></a>

(4)啟動 broker

還是在 bin 目錄下執行 start mqbroker.cmd -n 127.0.0.1:9876 autoCreateTopicEnable=true

 ,執行成功如下圖所示:<br />image.png<br />同樣不要關閉以上執行視窗。<br />完成以下步驟,說明你的 RocketMQ 已經按照成功了。 <a name="0ItMT"></a>

2 安裝視覺化外掛

<a name="5iVLy"></a>

(1)下載外掛

開啟連線 https://github.com/apache/rocketmq-externals.git 下載視覺化外掛 rocketmq-externals,如下圖所示:<br />image.png<br />點選 Download ZIP 進行下載。

我為大家準備了國內百度雲的下載連結,方便大家使用。 百度連結:https://pan.baidu.com/s/1sMO6W-562IFJF1uUBQFXYg   提取碼:fuzy 

<a name="mNB2M"></a>

(2)配置外掛

下載完成之後,進入 rocketmq-externals\rocketmq-console\src\main\resources\application.properties 進行配置,如下圖所示:<br />image.png<br />其中主要的欄位說明如下:

  • server.port=8066:此視覺化外掛的執行埠。
  • rocketmq.config.namesrvAddr=127.0.0.1:9876:rocketmq 的連結資訊。 <a name="lQyXw"></a>

(3)編譯外掛

進入 rocketmq-externals\rocketmq-console 資料夾,執行 mvn clean package -Dmaven.test.skip=true<br /> 編譯專案。<br />編譯成功如下圖所示:<br />image.png<br />編譯階段有可能出現以下兩個問題,沒有找到 mvn 命令,或編譯超級慢的問題,以下提供解決方案。 <a name="umxKe"></a>

問題一:mvn 非可以執行的命令

解決方案:這是因為沒有安裝 Maven 或者沒有配置 Maven 的環境變數導致的,下載 Maven 安裝包,增加環境變數 MAVEN_HOME=maven安裝目錄  ,給 path 中新增 %MAVEN_HOME%\bin ,重新啟動命令列工具(CMD)重新執行命令。 <a name="dLAy7"></a>

問題二:編譯超慢的問題

解決方案:這是因為使用 Maven 資料來源為國外源的問題導致的,只需要配置阿里的 Maven 源即可。<br />開啟 Maven 目錄下的 conf/setting.xml 給 mirrors 節點下新增如下內容:

<mirror>
 <id>alimaven</id>
 <name>aliyun maven</name>
 <url>http://maven.aliyun.com/nexus/content/groups/public/</url>
 <mirrorOf>central</mirrorOf>        
</mirror>

<a name="rypWH"></a>

(4)執行外掛

編譯成功之後,進入 target 資料夾,執行 java -jar rocketmq-console-ng-1.0.1.jar 啟動程式。<br />啟動成功之後,在瀏覽器輸入地址 http://127.0.0.1:8066 進行訪問,效果如下圖:<br />image.png <a name="8IIeb"></a>

3 基礎使用

<a name="EEp8i"></a>

(1)新增引用 jar 包

pom.xml 新增以下程式碼:

<!-- https://mvnrepository.com/artifact/com.alibaba.rocketmq/rocketmq-client -->
<dependency>
    <groupId>com.alibaba.rocketmq</groupId>
    <artifactId>rocketmq-client</artifactId>
    <version>3.6.2.Final</version>
</dependency>

<a name="gb2C2"></a>

(2)新增生產者和消費者程式碼

public class RocketMQDemo {
    static final String MQ_NAMESRVADDR = "localhost:9876";
    public static void main(String[] args) {
        // 分組名
        String groupName = "myGroup-1";
        // 主題名
        String topicName = "myTopic-1";
        // 標籤名
        String tagName = "myTag-1";
        new Thread(() -> {
            try {
                producer(groupName, topicName, tagName);
            } catch (InterruptedException e) {
                e.printStackTrace();
            } catch (RemotingException e) {
                e.printStackTrace();
            } catch (MQClientException e) {
                e.printStackTrace();
            } catch (MQBrokerException e) {
                e.printStackTrace();
            }
        }).start();
        new Thread(() -> {
            try {
                consumer(groupName, topicName, tagName);
            } catch (MQClientException e) {
                e.printStackTrace();
            }
        }).start();
    }

    /**
     * @Description 生產者
     * @Author wanglei
     * @Param [groupName 分組名, topicName 主題名, tagName 標籤名]
     **/
    public static void producer(String groupName, String topicName, String tagName) throws InterruptedException, RemotingException, MQClientException, MQBrokerException {
        DefaultMQProducer producer = new DefaultMQProducer(groupName);
        producer.setNamesrvAddr(MQ_NAMESRVADDR);
        producer.start();
        String body = "Hello, 老王";
        Message message = new Message(topicName, tagName, body.getBytes());
        producer.send(message);
        producer.shutdown();
    }

    /**
     * @Description 消費者
     * @Author wanglei
     * @Param [groupName 分組名, topicName 主題名, tagName 標籤名]
     **/
    public static void consumer(String groupName, String topicName, String tagName) throws MQClientException {
        DefaultMQPushConsumer consumer = new DefaultMQPushConsumer(groupName);
        consumer.setNamesrvAddr(MQ_NAMESRVADDR);
        consumer.subscribe(topicName, tagName);
        consumer.registerMessageListener(new MessageListenerConcurrently() {
            @Override
            public ConsumeConcurrentlyStatus consumeMessage(
                    List<MessageExt> msgs, ConsumeConcurrentlyContext context) {
                for (MessageExt msg : msgs) {
                    System.out.println(new String(msg.getBody()));
                }
                return ConsumeConcurrentlyStatus.CONSUME_SUCCESS;
            }
        });
        consumer.start();
    }
}

以上程式執行結果如下:

Hello, 老王

相關推薦

RocketMQ 視覺環境搭建基礎程式碼使用

RocketMQ 是一款分散式訊息中介軟體,最初是由阿里巴巴訊息中介軟體團隊研發並大規模應用於生產系統,滿足線上海量訊息堆積的需求

資料倉庫元件:Hive環境搭建基礎用法

本文原始碼:[GitHub](https://github.com/cicadasmile/big-data-parent) || [GitEE](https://gitee.com/cicadasmile/big-data-parent) # 一、Hive基礎簡介 **1、基礎描述** Hive是基

python環境搭建pycharm的安裝配置及漢(零基礎小白版)

前言:寫這篇文章主要是介紹一下python的環境搭建和pycharm的安裝配置,適合零基礎的同學觀看。這篇文章你會學到python的環境搭建和python比較好用的IDE pycharm的安裝與基礎配置。執行環境:window 64位作業系統。一.python環境的搭建1.下

Redis環境搭建視覺工具Redis Desktop Manager安裝

安裝環境: 作業系統 Centos 7.4 redis版本:redis-4.0.11 一.安裝Redis 使用wget下載redis安裝包:wget http://download.redis.io/releases/redis-4.0.11.tar.gz 解壓壓縮

Vue+koa2開發一款全棧小程序(5.服務端環境搭建項目初始

net pro 腳手架 column 小程序 ans msg 角點 import 1.微信公眾平臺小程序關聯騰訊雲 騰訊雲的開發環境是給免費的一個後臺,但是只能夠用於開發,如果用於生產是需要花錢的,我們先用開發環境吧 1.用小程序開發郵箱賬號登錄微信公眾平臺 2.【設置】→

Flask高階應用01--環境搭建例項藍圖

一、Flask簡介 Flask是一個基於Python實現的web開發的’微’框架,Flask和Django一樣,也是一個基於MVC設計模式的Web框架 [中文文件地址]http://docs.jinkan.org/docs/flask/ http://www.pythondoc.co

Vue+koa2開發一款全棧小程式(5.服務端環境搭建專案初始

1.微信公眾平臺小程式關聯騰訊雲 騰訊雲的開發環境是給免費的一個後臺,但是隻能夠用於開發,如果用於生產是需要花錢的,我們先用開發環境吧 1.用小程式開發郵箱賬號登入微信公眾平臺 2.【設定】→【開發者工具】→第一次是git管理,開啟騰訊雲關聯 3.會一路跳轉到騰訊雲的【開通開發環境】的流程要走 1.已經完成

Vue+koa2開發一款全棧小程式(服務端環境搭建專案初始

1.微信公眾平臺小程式關聯騰訊雲 騰訊雲的開發環境是給免費的一個後臺,但是隻能夠用於開發,如果用於生產是需要花錢的,我們先用開發環境吧 1.用小程式開發郵箱賬號登入微信公眾平臺 2.【設定】→【開發者工具】→第一次是git管理,開啟騰訊雲關聯 3.會一路跳轉到騰

TypeScrip入門—環境搭建第一個TS程式碼(一)

介紹 TypeScript 擴充套件了 JavaScript 語法,任何已經存在的 JavaScript 程式,可以不加任何改動,在 TypeScript 環境下執行。TypeScript 只是向 JavaScript 添加了一些新的遵循 ES6 規範的語法,以及基於類的面向物件程式設計

python環境搭建pycharm的安裝配置及漢

宣告:參見     【原文】 一.1.python環境的搭建    2.安裝python(這裡以python3.6為例)    二.pycharm的安裝與配置 1.pycharm的下載  &nb

Jenkins高階篇之Pipeline方法篇-Pipeline Utility Steps-1-A-開發環境搭建Jenkins執行程式碼測試

前面我說過,要陸續介紹模擬真實開發場景。這篇,來補充一篇Jenkins+Pipeline+groovy的開發環境。主要環境就是Eclipse,程式碼倉庫服務採用github。我知道,有些人對於這個已經很熟悉,有些人還沒有使用過git,更別說提交程式碼了。希望這篇,能帶給你體驗

Common Lisp程式設計初步---環境搭建外部lisp程式碼執行

1 介紹 Lisp是世界上第二古老的語言,第一古老語言是Fortran。Lisp語言的創立者為John McCarthy,一位人工智慧領域裡的先驅。該語言自創立以來經歷了50多年而不衰,是一種很有生命力的語言。該語言的發展和使用與CMU和MIT兩所高校密不可分

Go 開發環境搭建程式碼除錯

        寫這篇筆記的目的,主要是分享我在Go學習中遇到的坑。讓後面的學習者參考一下有用的經驗。 其中有一些小技巧,對初學者來說,可能會大大節約填坑的時間。 比如如何設定vscode的Go偵錯程式,Go的語法高亮,Go的外掛下載加速和

暑假學習計劃:Day_1.JSP&Servlet&Tomcat 環境搭建基礎的認識。

結構 靜態 work 初步 none fff 雙擊 world html4 1.了解JSP和Servlet(百度了解即可)。 2.了解B/S和C/S。分別是 瀏覽器/服務器 和 客戶端/服務器。 其中 B/S 被稱為瘦模式(主流模式)。 3.了解並下載Tomcat

第四章第五章 環境搭建24個命令總結

gpl和gun 基本命令 cpGUN 和 GPL GUN‘s not Unix 遞歸寫法,簡寫也是GUN1. GUN 是84年自由軟件資金會牽頭弄的一個類unix操作系統,但是因為它不實用,而且總是跳票,所以並沒有流行起來。2. 但是它裏面的很多軟件是很好的,比如bash,這些都被用在了linux系統

NET Core 環境搭建命令行CLI入門[轉]

c# value visual develop tom print ror rhel 7 core NET Core 環境搭建和命令行CLI入門 時間:2016-07-06 01:48:19 閱讀:258 評論:0 收藏:0

activiti工程環境搭建流程圖創建

activiti當一個業務需要的多個參與者來參與執行的時候,如果我們要自己編程的話,我們需要對業務非常的熟悉,並且在編程的時候要做一系列復雜的判斷,如果出現第一種情況,我們要怎麽辦,如果出現第二種情況,我們又該怎麽辦,這是一個工作量非常大的事情,因為各個關系耦合性相對較高,所以我們又很難保證我們的系統一定會成

mybatis 環境搭建基本說明

name utf-8 rom ide typealias setting puts class tab mybatis介紹就不多提了,直接步入正題。 先準備好eclipse和MySQL,然後先看一下目錄結構 文件和類很少,所以mybatis的搭建是非常簡單的,如搭建中

maven+eclipse+ssm 環境搭建啟動

sting pda sta and project ins setting pro load 該類工程環境搭建和啟動方法 --------------------------------------------------------------------------

聊聊Spring boot2.X開發環境搭建基本開發

nat profile c中 ddb 被占用 bae nor 可能 占用 對Spring Boot的開發環境進行搭建,並對它的特點做進一步的了解,才能更好地對Spring Boot有更深入的介紹。但是無論如何都需要先來搭建Spring Boot的工程。搭建Spring Bo