1.概述

RocketMQ是alibaba公司开源的一个纯java的开源消息中间件。

2.开发测试环境搭建

到github上面rocketMQ,我选择的是alibaba-rocketmq-3.2.6.tar.gz,

rocketMQ在github上的网址:https://github.com/alibaba/RocketMQ/releases

下载之后解压到本地目录,我解压之后的目录结构是在:F:\work\alibaba-rocketmq

2.1 启动服务:

2.1.1 启动mqnamesrv

打开cmd,转到rocketmq的bin目录下:

cd F:\work\alibaba-rocketmq\bin

然后在bin目录下运行mqnamesrv.exe

mqnamesrv.exe

2.1.2 启动broker

在rocketmq的bin目录下执行下面命令:

mqbroker.exe -n "192.168.1.102:9876"

如果启动不成功,可以到当前用户目录下面查看报错日志,分析原因,如果没有对配置文件进行修改,日志默认是保存在当前用户目录下,如我的是保存在C:\Users\lenovo\logs\rocketmqlogs下面。

2.2 项目实例

1. 创建maven项目

aaarticlea/png;base64,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" alt="" />

Pom.xml文件如下:

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.alibaba.rocketmq</groupId>
<artifactId>rocketmqTest</artifactId>
<packaging>war</packaging>
<version>0.0.1-SNAPSHOT</version>
<name>rocketmqTest Maven Webapp</name>
<url>http://maven.apache.org</url>
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>3.8.1</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>com.alibaba.rocketmq</groupId>
<artifactId>rocketmq-client</artifactId>
<version>3.2.6</version>
</dependency>
<dependency>
<groupId>com.alibaba.rocketmq</groupId>
<artifactId>rocketmq-all</artifactId>
<version>3.2.6</version>
<type>pom</type>
</dependency>
<dependency>
<groupId>ch.qos.logback</groupId>
<artifactId>logback-classic</artifactId>
<version>1.1.1</version>
</dependency>
<dependency>
<groupId>ch.qos.logback</groupId>
<artifactId>logback-core</artifactId>
<version>1.1.1</version>
</dependency>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.10</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<version>3.1.0</version>
</dependency>
</dependencies>
<build>
<finalName>rocketmqTest</finalName>
</build>
</project>

2. 编写消息产生者Producer

package com.pcitc.rocketmq.example;

import java.util.concurrent.TimeUnit;

import com.alibaba.rocketmq.client.exception.MQClientException;
import com.alibaba.rocketmq.client.producer.DefaultMQProducer;
import com.alibaba.rocketmq.client.producer.SendResult;
import com.alibaba.rocketmq.common.message.Message; public class Producer {
public static void main(String[] args) throws MQClientException,
InterruptedException {
/**
* 一个应用创建一个Producer,由应用来维护此对象,可以设置为全局对象或者单例<br>
* 注意:ProducerGroupName需要由应用来保证唯一<br>
* ProducerGroup这个概念发送普通的消息时,作用不大,但是发送分布式事务消息时,比较关键,
* 因为服务器会回查这个Group下的任意一个Producer
*/
DefaultMQProducer producer = new DefaultMQProducer("ProducerGroupName");
producer.setNamesrvAddr("192.168.1.102:9876");
producer.setInstanceName("Producer"); /**
* Producer对象在使用之前必须要调用start初始化,初始化一次即可<br>
* 注意:切记不可以在每次发送消息时,都调用start方法
*/
producer.start(); /**
* 下面这段代码表明一个Producer对象可以发送多个topic,多个tag的消息。
* 注意:send方法是同步调用,只要不抛异常就标识成功。但是发送成功也可会有多种状态,<br>
* 例如消息写入Master成功,但是Slave不成功,这种情况消息属于成功,但是对于个别应用如果对消息可靠性要求极高,<br>
* 需要对这种情况做处理。另外,消息可能会存在发送失败的情况,失败重试由应用来处理。
*/
for (int i = 0; i < 100; i++) {
try {
{
Message msg = new Message("TopicTest1",// topic
"TagA",// tag
"OrderID001",// key
("Hello MetaQ").getBytes());// body
SendResult sendResult = producer.send(msg);
System.out.println(sendResult);
} {
Message msg = new Message("TopicTest2",// topic
"TagB",// tag
"OrderID0034",// key
("Hello MetaQ").getBytes());// body
SendResult sendResult = producer.send(msg);
System.out.println(sendResult);
} {
Message msg = new Message("TopicTest3",// topic
"TagC",// tag
"OrderID061",// key
("Hello MetaQ").getBytes());// body
SendResult sendResult = producer.send(msg);
System.out.println(sendResult);
}
} catch (Exception e) {
e.printStackTrace();
}
TimeUnit.MILLISECONDS.sleep(1000);
} /**
* 应用退出时,要调用shutdown来清理资源,关闭网络连接,从MetaQ服务器上注销自己
* 注意:我们建议应用在JBOSS、Tomcat等容器的退出钩子里调用shutdown方法
*/
producer.shutdown();
}
}

3. 编写消息消费者Consumer

package com.pcitc.rocketmq.example;

import java.util.List;

import com.alibaba.rocketmq.client.consumer.DefaultMQPushConsumer;
import com.alibaba.rocketmq.client.consumer.listener.ConsumeConcurrentlyContext;
import com.alibaba.rocketmq.client.consumer.listener.ConsumeConcurrentlyStatus;
import com.alibaba.rocketmq.client.consumer.listener.MessageListenerConcurrently;
import com.alibaba.rocketmq.client.exception.MQClientException;
import com.alibaba.rocketmq.common.message.MessageExt; public class PushConsumer { /**
* 当前例子是PushConsumer用法,使用方式给用户感觉是消息从RocketMQ服务器推到了应用客户端。<br>
* 但是实际PushConsumer内部是使用长轮询Pull方式从MetaQ服务器拉消息,然后再回调用户Listener方法<br>
*/
public static void main(String[] args) throws InterruptedException,
MQClientException {
/**
* 一个应用创建一个Consumer,由应用来维护此对象,可以设置为全局对象或者单例<br>
* 注意:ConsumerGroupName需要由应用来保证唯一
*/
DefaultMQPushConsumer consumer = new DefaultMQPushConsumer(
"ConsumerGroupName");
consumer.setNamesrvAddr("192.168.1.102:9876");
consumer.setInstanceName("Consumber"); /**
* 订阅指定topic下tags分别等于TagA或TagC或TagD
*/
consumer.subscribe("TopicTest1", "TagA || TagC || TagD");
/**
* 订阅指定topic下所有消息<br>
* 注意:一个consumer对象可以订阅多个topic
*/
consumer.subscribe("TopicTest2", "*"); consumer.registerMessageListener(new MessageListenerConcurrently() { /**
* 默认msgs里只有一条消息,可以通过设置consumeMessageBatchMaxSize参数来批量接收消息
*/
public ConsumeConcurrentlyStatus consumeMessage(
List<MessageExt> msgs, ConsumeConcurrentlyContext context) {
System.out.println(Thread.currentThread().getName()
+ " Receive New Messages: " + msgs.size()); MessageExt msg = msgs.get(0);
if (msg.getTopic().equals("TopicTest1")) {
// 执行TopicTest1的消费逻辑
if (msg.getTags() != null && msg.getTags().equals("TagA")) {
// 执行TagA的消费
System.out.println(new String(msg.getBody()));
} else if (msg.getTags() != null
&& msg.getTags().equals("TagC")) {
// 执行TagC的消费
} else if (msg.getTags() != null
&& msg.getTags().equals("TagD")) {
// 执行TagD的消费
}
} else if (msg.getTopic().equals("TopicTest2")) {
System.out.println(new String(msg.getBody()));
} return ConsumeConcurrentlyStatus.CONSUME_SUCCESS;
} }); /**
* Consumer对象在使用之前必须要调用start初始化,初始化一次即可<br>
*/
consumer.start(); System.out.println("Consumer Started.");
}
}

先运行消息订阅者PushConsumer代码,然后运行消息生产者Producer代码,就会看到控制台打印刚刚发送的消息。

RocketMQ在windows上安装和开发使用的更多相关文章

  1. 在windows上安装scikit-learn开发环境

    操作系统:Windows 10 64位 1.安装python 前往https://www.python.org/downloads/下载对应操作系统的版本,笔者下载了32位的python 2.7.13 ...

  2. 【python安装】Windows上安装和创建python开发环境

    1. 在 windows10 上安装python开发环境 Linux和Mac OS都自带python环境,但是Windows没有,所以需要自行安装. 第1步:访问 python官网,下载Windows ...

  3. # 【ARM-Linux开发】在Win7的电脑上直接运行安装Ubuntu14.04发生的问题 标签(空格分隔): 【Linux开发】 --- > 一段时间以来,一直是在Windows上安装虚拟机

    [ARM-Linux开发]在Win7的电脑上直接运行安装Ubuntu14.04发生的问题 标签(空格分隔): [Linux开发] 一段时间以来,一直是在Windows上安装虚拟机,然后安装Ubuntu ...

  4. 在Windows上安装Elasticsearch 5.0

    在windows上安装Elasticsearch Elasticsearch可以使用.zip软件包安装在Windows上. elasticsearch-service.bat命令,它将设置Elasti ...

  5. 在windows上安装ASP.NET 5(译文)

    本文将介绍如何在windows上安装ASP.NET5,包括单独安装和通过Visual Studio 2015 安装. 本文包括: 通过Visual Studio安装ASP.NET 单独安装ASP.NE ...

  6. Redis简介以及如何在Windows上安装Redis

    Redis简介 Redis是一个速度非常快的非关系型内存数据库. Redis提供了Java,C/C++,C#,PHP,JavaScript,Perl,Object-C,Python,Ruby,Erla ...

  7. 如何在Windows上搭建Android开发环境

    Android开发越来越火,许多小伙伴们纷纷学习Android开发,学习Android开发首要任务是搭建Android开发环境,由于大家 主要实在Windows 上开发Android,下面就详细给大家 ...

  8. NodeJs在windows上安装配置测试

    Node.js简介简单的说 Node.js 就是运行在服务端的 JavaScript.Node.js 是一个基于 Chrome V8 引擎的 JavaScript 运行环境.Node.js 使用了一个 ...

  9. Git学习系列之Windows上安装Git详细步骤(图文详解)

    前言 最初,Git是用于Linux下的内核代码管理.因为其非常好用,目前,已经被成功移植到Mac和Windows操作系统下. 鉴于大部分使用者使用的是Windows操作系统,故,这里详细讲解Windo ...

随机推荐

  1. ASP.NET Mvc开发之EF延迟加载

    EF延迟加载:就是使用Lamabda表达式或者Linq 从 EF实体对象中查询数据时,EF并不是直接将数据查询出来,而是在用到具体数据的时候才会加载到内存. 一,实体对象的Where方法返回一个什么对 ...

  2. Adapter 适配器模式

    将一个类的接口转换成客户希望的另外一个接口.Adapter模式使得原本由于接口不兼容而不能一起工作的那些类可以在一起工作. 目标接口(Target):客户所期待的接口.目标可以是具体的或抽象的类,也可 ...

  3. Python之路【第二十三篇】:Django 初探--Django的开发服务器及创建数据库(笔记)

    Django 初探--Django的开发服务器及创建数据库(笔记) 1.Django的开发服务器 Django框架中包含一些轻量级的web应用服务器,开发web项目时不需再对其配置服务器,Django ...

  4. 查询制定行数的数据(2)对了,mysql不能用top关键字

    采用嵌套查询的方式,倒序之后前10条 倒序之后前9条 采用嵌套查询的方式,倒序之后前10条 排正序之后从第一条开始弄十条数据 排正序之后从第一条开始弄九条数据 排正序之后从第十条开始弄十条数据 排正序 ...

  5. MVC中实现部分内容异步加载

    MVC中实现部分内容异步加载 action中定义一个得到结果集的方法 public ActionResult GetItemTree(string title, int itemid, int? pa ...

  6. 推荐几款提高.net编程效率的辅助工具

    1.Resharper ReSharper是一个JetBrains公司出品的著名的代码生成工具,其能帮助Microsoft Visual Studio成为一个更佳的IDE.它包括一系列丰富的能大大增加 ...

  7. ios 调用js方法(ios监听js方法执行)

    下载地址 https://pan.baidu.com/s/1cJvEsY

  8. iOS开发——UIWebView

    (已写好代码,待空闲更新……)

  9. xcode 最近打开文件列表显示为空或不显示最近打开的项目或(no recent projects)解决办法

    如果使用的是10.10 系统,打开系统设置-->进入通用-->在最下面的"最近使用的项目"中将0改为你可以接受的选项 如果不是10.10,那么就从系统偏好设置---&g ...

  10. 排序算法——QuickSort、MergeSort、HeapSort(C++实现)

    快速排序QuickSort template <class Item> void quickSort (Item a[], int l, int r) { if (r<=l) ret ...