文档章节

RocketMQ3.4.6 安装与测试环境搭建

独钓渔
 独钓渔
发布于 2016/08/18 13:42
字数 411
阅读 1555
收藏 2

第一步:先安装jdk, maven等工具

vim /etc/profile 添加

JAVA_HOME=/usr/java/jdk1.8.0_65
CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
M2_HOME=/usr/local/apache-maven-3.3.9
PATH=$M2_HOME/bin:$JAVA_HOME/bin:$PATH
export JAVA_HOME
export CLASSPATH
export M2_HOME
export PATH

source /etc/profile

测试: mvn -v ; mvn help:system
 

第二步:安装RocketMQ 

https://github.com/alibaba/RocketMQ最新版本RocketMQ-3.4.6.tar.gz

tar -xvzf RocketMQ-3.4.6.tar.gz

cat install.sh

执行sh install.sh

可以看到安装成功了。

cd /root/RocketMQ-3.4.6/devenv/bin

chmod +x mqadmin mqbroker mqfiltersrv mqshutdown mqnamesrv

nohup ./mqnamesrv >/var/log/mqname.log &

 

export NAMESRV_ADDR=192.168.26.164:9876

nohup ./mqbroker >/var/log/mqbroker.log &

另外启动方式:

nohup ./mqnamesrv >/var/log/mqname.log 2>&1 &
nohup ./mqbroker -n "192.168.26.164:9876" -c ../conf/2m-noslave/broker-b.properties >/var/log/mqbroker.log  2>&1 &

 nohup ./mqnamesrv >/var/log/mqname.log 2>&1 &
 nohup ./mqbroker -n "192.168.26.164:9876" > /var/log/mqbrober.log 2>&1 &

第三步:测试RocketMQ环境

新建一个maven的java项目。

在pom.xml中添加

<dependency>
            <groupId>com.alibaba.rocketmq</groupId>
            <artifactId>rocketmq-client</artifactId>
            <version>3.5.5</version>
        </dependency>

编写Productor.java

package com.test.rocketmqtest;

import com.alibaba.rocketmq.client.producer.DefaultMQProducer;  
import com.alibaba.rocketmq.client.producer.SendResult;  
import com.alibaba.rocketmq.common.message.Message; 


public class Productor {

	public static void main(String[] args) {
		DefaultMQProducer producer = new DefaultMQProducer("Producer");
		producer.setVipChannelEnabled(false);
		producer.setNamesrvAddr("192.168.26.164:9876");

		try {
			producer.start();

			Message msg = new Message("PushTopic", "push", "1", "Just for test.".getBytes());

			SendResult result = producer.send(msg);
			System.out.println("id:" + result.getMsgId() + " result:" + result.getSendStatus());

			msg = new Message("PushTopic", "push", "2", "Just for test.".getBytes());

			result = producer.send(msg);
			System.out.println("id:" + result.getMsgId() + " result:" + result.getSendStatus());

			msg = new Message("PullTopic", "pull", "1", "Just for test.".getBytes());

			result = producer.send(msg);
			System.out.println("id:" + result.getMsgId() + " result:" + result.getSendStatus());
		} catch (Exception e) {
			e.printStackTrace();
		} finally {
			producer.shutdown();
		}
	}

}

编写Consumer.java

package com.test.rocketmqtest;

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.common.consumer.ConsumeFromWhere;  
import com.alibaba.rocketmq.common.message.Message;  
import com.alibaba.rocketmq.common.message.MessageExt;  


public class Consumer {

	public static void main(String[] args) {
		DefaultMQPushConsumer consumer = new DefaultMQPushConsumer("PushConsumer");
		consumer.setVipChannelEnabled(false);
		consumer.setNamesrvAddr("192.168.26.164:9876");
		try {
			// 订阅PushTopic下Tag为push的消息
			consumer.subscribe("PushTopic", "push");
			// 程序第一次启动从消息队列头取数据
			consumer.setConsumeFromWhere(ConsumeFromWhere.CONSUME_FROM_FIRST_OFFSET);
			consumer.registerMessageListener(new MessageListenerConcurrently() {
				public ConsumeConcurrentlyStatus consumeMessage(List<MessageExt> list,
						ConsumeConcurrentlyContext Context) {
					Message msg = list.get(0);
					System.out.println(msg.toString());
					return ConsumeConcurrentlyStatus.CONSUME_SUCCESS;
				}
			});
			consumer.start();
		} catch (Exception e) {
			e.printStackTrace();
		}
	}

}

结果如图:

运行Productor

运行Consumer

 

© 著作权归作者所有

共有 人打赏支持
独钓渔
粉丝 48
博文 385
码字总数 148158
作品 0
沙坪坝
系统管理员
私信 提问
加载中

评论(2)

林子童
林子童
没有这个方法了。
独钓渔
独钓渔
一定要注意添加
producer.setVipChannelEnabled(false);
consumer.setVipChannelEnabled(false);
否则会报连10909错误。这是个VIPChannel,具体的不是很明白,只是说是ali没有开源的用才有的。
【转帖】测试环境的搭建和维护

只要做过一次测试,就一定知道测试环境,但测试环境是如何搭建和维护的呢?就不一定所有人都明白了。 测试环境的搭建,每个公司都有不一样的流程和方法。一种是运维或者开发负责搭建和维护,...

12332111ss
2016/04/28
252
0
从零开始完整搭建LNMP环境+WordPress部署

0.说明 内容会有点多,但是下面的内容都是自己在学习LNMP环境搭建过程中的完整再现,所以非常具有参考价值! 下面用一个以最小化方式(Minimal)安装的CentOS 6.5操作系统为例,演示LNMP环境...

xpleaf
2017/03/03
0
0
mysql5.5搭建主从复制,半同步复制,基于ssl的主从复制

主从复制搭建:一个master对应2个slave ########################################## //环境规划 linux版本:centos6.4 mysql5.5.30master:10.10.54.154slave: 10.10.54.155 10.10.54.156 ......

fighting-cluber
2014/03/03
0
0
Vagrant 打造跨平台的开发环境

两个项目开发下来,因团队环境不一样,整合修bug成为了一件苦差事。虽然后来搭建了一台测试服务器,但是有时候受网络原因,还是不能连接到测试服务器上。因团队成员能力和习惯都不一样,有的...

cjp路人
2014/08/24
0
0
Java之OpenCV安装与使用(入门)-yellowcong

这个例子,简单的讲解了Openvc的安装环境的搭建,以及第一个测试的小例子。 安装包下载 安装opencv 1、选择安装地址 2、一顿解压 解压完成后,可以看到opencv的文件文件,这样就ko了 Eclips...

yelllowcong
2018/01/06
0
0

没有更多内容

加载失败,请刷新页面

加载更多

Confluence 6 升级中的一些常见问题

升级的时候遇到了问题了吗? 如果你想尝试重新进行升级的话,你需要首先重新恢复老的备份。不要尝试再次对 Confluence 进行升级或者在升级失败后重新启动老的 Confluence。 在升级过程中的一...

honeymoose
今天
2
0
C++随笔(四)Nuget打包

首先把自己编译好的包全部准备到一个文件夹 像这样 接下来新建一个文本文档,后缀名叫.nuspec 填写内容 <?xml version="1.0"?><package xmlns="http://schemas.microsoft.com/packaging/201......

Pulsar-V
今天
2
0
再谈使用开源软件搭建数据分析平台

三年前,我写了这篇博客使用开源软件快速搭建数据分析平台, 当时收到了许多的反馈,有50个点赞和300+的收藏。到现在我还能收到一些关于dataplay2的问题。在过去的三年,开源社区和新技术的发...

naughty
今天
12
0
Python3的日期和时间

python 中处理日期时间数据通常使用datetime和time库 因为这两个库中的一些功能有些重复,所以,首先我们来比较一下这两个库的区别,这可以帮助我们在适当的情况下时候合适的库。 在Python文...

编程老陆
今天
2
0
分布式面试整理

并发和并行 并行是两个任务同时进行,而并发呢,则是一会做一个任务一会又切换做另一个任务。 临界区 临界区用来表示一种公共资源或者说是共享数据,可以被多个线程使用,但是每一次,只能有...

群星纪元
今天
3
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部