写在前面:
1、基于rocketmq 4.2.0版本
2、64位 win10 系统
3、JDK 1.8 (注意,jdk路径一定不要有空格,不然执行相应的cmd命令时会报错)
4、其它需要的软件,maven,git

一、下载二进制程序包

在官网选择编译后的压缩包下载
http://rocketmq.apache.org/release_notes/release-notes-4.2.0/
下图中红框处

或者去apache存档库中下载
http://archive.apache.org/dist/rocketmq/4.2.0/

下载好的文件: rocketmq-all-4.2.0-bin-release.zip

将下载好的zip包解压,注意路径也不要包含空格。

二、修改rocketmq配置
  这一步也可以跳过,但有可能会因为内存设置过大导致一系列的问题
需要执行的命令都在程序目录下的bin文件夹下,主要是mqnamesrv.cmd和mqbroker.cmd这两个命令,但他们又都各自调用了runserver.cmd和runbroker.cmd命令,分别修改这两个文件里的JAVA_OPT设置,如下

set "JAVA_OPT=%JAVA_OPT% -server -Xms2g -Xmx2g -Xmn1g -XX:MetaspaceSize=128m -XX:MaxMetaspaceSize=320m"
将 Xms Xmx 这两个值改小一些,改为1g,如:
 
set "JAVA_OPT=%JAVA_OPT% -server -Xms1g -Xmx1g -Xmn1g -XX:MetaspaceSize=128m -XX:MaxMetaspaceSize=320m"

三、启动 NameServer

在rocketmq安装目录下的bin目录下,执行命令:

start mqnamesrv.cmd
mqnamesrv.cmd -n localhost:9876

出现The Name Server boot success.字样表示成功

四、启动 Broker

在rocketmq安装目录下的bin目录下,执行命令:

start mqbroker.cmd -n 127.0.0.1:9876 autoCreateTopicEnable=true
mqbroker.cmd -n localhost:9876

五、java示例代码
添加maven依赖
 
<dependency>
<groupId>org.apache.rocketmq</groupId>
<artifactId>rocketmq-client</artifactId>
<version>4.2.0</version>
</dependency>

---------------------

消费者
import org.apache.rocketmq.client.consumer.DefaultMQPushConsumer;
import org.apache.rocketmq.client.consumer.listener.ConsumeConcurrentlyContext;
import org.apache.rocketmq.client.consumer.listener.ConsumeConcurrentlyStatus;
import org.apache.rocketmq.client.consumer.listener.MessageListenerConcurrently;
import org.apache.rocketmq.client.exception.MQClientException;
import org.apache.rocketmq.common.message.MessageExt; import java.util.List; public class Consumer {
public static void main(String[] args) throws MQClientException {
DefaultMQPushConsumer consumer = new DefaultMQPushConsumer("my-group"); consumer.setNamesrvAddr("localhost:9876");
consumer.setInstanceName("rmq-instance");
consumer.subscribe("demo-topic", "demo-tag"); 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();
System.out.println("Consumer Started.");
}
}
---------------------

生产者

import org.apache.rocketmq.client.exception.MQClientException;
import org.apache.rocketmq.client.producer.DefaultMQProducer;
import org.apache.rocketmq.client.producer.SendResult;
import org.apache.rocketmq.common.message.Message; import java.util.Scanner; public class Producer {
public static void main(String[] args) throws MQClientException {
DefaultMQProducer producer = new DefaultMQProducer("my-group");
producer.setNamesrvAddr("localhost:9876");
producer.setInstanceName("rmq-instance");
producer.start();
try {
Message message = new Message("demo-topic", "demo-tag", "这是一条测试消息".getBytes());
producer.send(message); while (true) {
String text = new Scanner(System.in).next();
Message msg = new Message("demo-topic",// topic
"demo-tag",// tag
text.getBytes() // body
);
SendResult sendResult = producer.send(msg);
}
} catch (Exception e) {
e.printStackTrace();
}
producer.shutdown();
}
}
---------------------
运行Consumer和Producer,然后在生产者控制台输入文本,在消费者控制台就可以看到消息了。
六、搭建RocketMQ  web控制台
1、访问 https://github.com/apache/rocketmq-externals/ ,
使用git将代码clone下来
2、修改项目配置信息
这是一个用springboot编写的工程,进入到 rocketmq-externals\rocketmq-console\src\main\resources 目录下,编辑 application.properties 文件, 修改mq的连接地址信息:
 
rocketmq.config.namesrvAddr=localhost:98761
3、启动项目
在rocketmq-externals\rocketmq-console目录下,执行:
nohup java -jar shareniu.jar >/dev/null  &  
 
mvn spring-boot:run
等待启动成功。
 
[2018-03-05 10:54:19.823]  INFO Initializing ProtocolHandler ["http-nio-8080"]
[2018-03-05 10:54:19.853]  INFO Starting ProtocolHandler [http-nio-8080]
[2018-03-05 10:54:19.893]  INFO Using a shared selector for servlet write/read
[2018-03-05 10:54:19.929]  INFO Tomcat started on port(s): 8080 (http)
[2018-03-05 10:54:19.940]  INFO Started App in 9.61 seconds (JVM running for 18.979)12345
4、浏览器访问:http://localhost:8080
---------------------

windows搭建RocketMQ服务的更多相关文章

  1. windows搭建SVN服务MD版

    windows搭建SVN服务MD 1下载TortoiseSVN 官网下载 根据自己系统环境选择适合的版本 2 安装TortoiseSVN 双击运行程序 出现第一个小坑 原来是你的系统没有打 kb299 ...

  2. 在 Windows 搭建 SVN 服务

    以下内容为本人的学习笔记,如需要转载,请声明原文链接微信公众号「englyf」https://www.cnblogs.com/englyf/p/16671311.html 最近公司给配了台新电脑,配置 ...

  3. SpringCloud实战 | 第一篇:Windows搭建Nacos服务

    前言 为什么放弃eureka选择nacos?本地开发环境需要搭建nacos-server,想着是很简单的事但是被一些文章(少了关键必要的步骤)给带偏了,所以亲测成功后写了这篇文章. 搭建nacos-s ...

  4. windows搭建SVN服务

    下载`TortoiseSVN 官网下载址:https://www.visualsvn.com/visualsvn/download/tortoisesvn/ 根据自己系统环境选择 安装Tortoise ...

  5. 在windows上搭建SSH服务踩过的坑

    前两天安装了windows操作系统,想在windows上做内网穿透,所以就想在windows下启用ssh服务,今天就来讲一下我在搭建ssh服务中遇到的坑. 我显示在Mac下搭建了ssh服务,并且测试通 ...

  6. 初步搭建RocketMQ环境

    1. 去官网https://github.com/alibaba/RocketMQ/releases下载alibaba-rocketmq-3.2.6.tar.gz,这个是已经maven install ...

  7. 如何在RHEL7上搭建Samba服务实现Windows与Linux之间的文件共享

    如何在RHEL7上搭建Samba服务实现Windows与Linux之间的文件共享 实现环境:VMware workstations.RHEL7.0 第一步:配置网卡IP及yum软件仓库 命令:vim ...

  8. Windows上搭建远程访问服务

    Windows上搭建远程访问服务 转自:https://blog.51cto.com/13871378/2153308?source=dra 概述:允许客户机通过拨号连接或虚拟专用网连接到公司局域网, ...

  9. 【阿里云】在 Windows Server 2016 下使用 FileZilla Server 安装搭建 FTP 服务

     Windows Server 2016 下使用 FileZilla Server 安装搭建 FTP 服务 一.安装 Filezilla Server 下载最新版本的 Filezilla Server ...

随机推荐

  1. GIT入门文档

    集中式(SVN): 集中式版本控制系统,版本库是集中存放在中央服务器的,用的都是自己的电脑,所以要先从中央服务器取得最新的版本,然后开始干活,干完活了,再把自己的活推送给中央服务器. 集中式版本控制系 ...

  2. chan array初始化

    package main import "fmt" func run() { chann[0] <- 1 } var chann = make([]chan int, 2) ...

  3. UVA 11796

    题意:  有两个狗, 按照 多边形跑,不知道两条狗的速度,但是狗是同时出发,同时到达终点的 输出两条狗的 最大相距距离 - 最小相距距离: 思路 : 用物理的相对运动来计算, 每次只计算 两条狗的直线 ...

  4. Django 中间件 请求前

    中间件: class TestMiddleware(object): """中间件类""" def __init__(self): &quo ...

  5. Caffeine缓存

    在本文中,我们来看看 Caffeine — 一个高性能的 Java 缓存库. 缓存和 Map 之间的一个根本区别在于缓存可以回收存储的 item. 回收策略为在指定时间删除哪些对象.此策略直接影响缓存 ...

  6. 16)django-ajax使用

    通过ajax可以悄悄的把数据传输给服务器,实现页面无刷新. 一:ajax使用语法 1)普通方式 ajax使用语法: $.ajax({ url:"/host", //提交到那里 ty ...

  7. java-pdf转word

    注:原文来至 < java-pdf转word   > 一: java Pdf 文字 转 Word 废话不说,直接上图 很简单的用法:1.new个PDFBox对象2.调用pdfToDoc() ...

  8. CF767C Garland--树形dp

    今天无聊的我又来切树形dp了,貌似我与树形dp有仇似的. n个节点的树 第i个节点权值为 n<=10^6 −100<=ai​<=100 问是否能够删除掉两条边,使得该树分成三个不为空 ...

  9. Software tips

    1.Microsoft office professional plus 2013秘钥 PD3W7-NVGG7-YKGQX-7CRDG-J2MG7(test success)MTGRC-8BM6H-W ...

  10. bzoj 2190

    题意:求 题解:这题...数据范围是真小... 研究一下这一表达式,发现gcd(i,j)=1表示i,j互质,那么互质肯定能想到欧拉函数,可是欧拉函数要求j<i,那么我们变化一下:显然原矩阵是对称 ...