本文是作者原創,版權歸作者所有.若要轉載,請註明出處.
本文RocketMQ版本爲rocketmq-all-4.7.0,系統爲win10.請各位去官網下載,也可以留言,我發安裝包
RocketMQ安裝
(前置條件爲已安裝java並配置JAVA_HOME)
1.配置環境變量
2.切換到安裝目錄的bin文件夾下,啓動mqnamesrv.cmd,如下圖
命令
start mqnamesrv.cmd
看到如下窗口表示啓動成功
3.啓動bin目錄下的mqbroker.cmd
命令:
start mqbroker.cmd -n 127.0.0.1:9876 -c ../conf/broker.conf
看到如下窗口表示啓動成功
4.RocketMQ管理控制檯部署(非必須,可跳過)
下載地址
https://github.com/apache/rocketmq-externals.git
下載完成之後,進入‘rocketmq-externals\rocketmq-console\src\main\resources’文件夾,打開‘application.properties’進行配置,如下
這裏將啓動端口改成8081,並填配置rocketmq的端口
127.0.0.1.9876
編譯該控制檯源碼
進入‘\rocketmq-externals\rocketmq-console’文件夾,
執行下列命令,編譯生成jar包
mvn clean package -Dmaven.test.skip=true
編譯成功,看下圖
進入‘target’文件夾,執行下列命令.啓動jar包
java -jar rocketmq-console-ng-1.0.1.jar
瀏覽器中輸入
http://127.0.0.1:8081/
成功後即可查看。
RocketMQ入門(官網demo)
1.消息消費者consumer
public static void main(String[] args) throws InterruptedException, MQClientException { // Instantiate with specified consumer group name. DefaultMQPushConsumer consumer = new DefaultMQPushConsumer("please_rename_unique_group_name"); // Specify name server addresses. consumer.setNamesrvAddr("localhost:9876"); // Subscribe one more more topics to consume. consumer.subscribe("TopicTest", "*"); // Register callback to execute on arrival of messages fetched from brokers. consumer.registerMessageListener(new MessageListenerConcurrently() { @Override public ConsumeConcurrentlyStatus consumeMessage(List<MessageExt> msgs, ConsumeConcurrentlyContext context) { System.out.printf("%s Receive New Messages: %s %n", Thread.currentThread().getName(), msgs); return ConsumeConcurrentlyStatus.CONSUME_SUCCESS; } }); //Launch the consumer instance. consumer.start(); System.out.printf("Consumer Started.%n"); }
2.消息生產者/製造者
public static void main(String[] args) throws Exception { //Instantiate with a producer group name. DefaultMQProducer producer = new DefaultMQProducer("please_rename_unique_group_name"); // Specify name server addresses. producer.setNamesrvAddr("localhost:9876"); //Launch the instance. producer.start(); for (int i = 0; i < 10; i++) { //Create a message instance, specifying topic, tag and message body. Message msg = new Message("TopicTest" /* Topic */, "TagA" /* Tag */, ("Hello RocketMQ " + i).getBytes(RemotingHelper.DEFAULT_CHARSET) /* Message body */ ); //Call send message to deliver message to one of brokers. SendResult sendResult = producer.send(msg); System.out.printf("%s%n", sendResult); } //Shut down once the producer instance is not longer in use. producer.shutdown(); }
看下消費者的結果