本次安装暂时只部署一个Broker,一个Namesrv,两个进程都安装在服务器上面,在自己本机用idea做的测试。
1、下载RocketMQ最新Release版本3.2.6.
地址为:
https://github.com/alibaba/RocketMQ/releases
2、把下载下来的tar包上传到服务器
3、安装JDK,设置JAVA_HOME
4、cd /alibaba-rocketmq/bin进入RocketMQ的bin目录
5、安装NameServer
执行
nohup sh mqnamesrv &
namesrv启动之后的默认端口号是9876
[business@ZPaaS1 bin]$ nohup sh mqnamesrv &
[2] 21158
[business@ZPaaS1 bin]$ nohup: ignoring input and appending output to `nohup.out'
cat nohup.out
The Name Server boot success.
[business@ZPaaS1 bin]$ jps
21199 Jps
21164 NamesrvStartup
29275 Bootstrap
16910 BrokerStartup
[business@ZPaaS1 bin]$
6、安装Broker
这里把Broker跟Namesrv装在一个服务器上面,使用的Broker配置文件是自带的2m-noslave/broker-a.properties。
注意这个配置文件里面没有属性brokerIP1,他默认取本机IP,如果你服务器的网卡设置过于复杂,他会取的IP报错,后续就连不上这个Broker,建议大家手动修改这个IP地址。
cd到以上目录,修改之后的文件如下:
brokerClusterName=DefaultCluster
brokerName=broker-a
brokerId=0
brokerIP1=10.45.61.33
deleteWhen=04
fileReservedTime=48
brokerRole=ASYNC_MASTER
flushDiskType=ASYNC_FLUSH
修改完之后,在cd到 /alibaba-rocketmq/bin目录下启动broker
执行:
nohup sh mqbroker -n "10.45.61.33:9876" -c ../conf/2m-noslave/broker-a.properties &
-n后面代表的是namesrv的地址和端口
-c后面代表的是broker的配置文件地址
[business@ZPaaS1 bin]$ nohup sh mqbroker -n "10.45.61.33:9876" -c ../conf/2m-noslave/broker-a.properties &
[1] 21944
[business@ZPaaS1 bin]$ nohup: ignoring input and appending output to `nohup.out'
cat nohup.out
load config properties file OK, ../conf/2m-noslave/broker-a.properties
The broker[broker-a, 10.45.61.33:10911] boot success. and name server is 10.45.61.33:9876
这样就表示broker启动成功
7、使用idea编写测试代码
Producer
public class Producer {
public static void main(String[] args) {
DefaultMQProducer producer = new DefaultMQProducer("Producer");
producer.setNamesrvAddr("10.45.61.33: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
public class Customer {
public static void main(String[] args) {
DefaultMQPushConsumer consumer = new DefaultMQPushConsumer("PushConsumer");
consumer.setNamesrvAddr("10.45.61.33: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();
}
}
}
8、开始测试
先启动Producer,然后在启动Consumer,就会看到如下的测试结果
producer
id:0A2D3D2100002A9F0000000000000000 result:SEND_OK
id:0A2D3D2100002A9F000000000000008D result:SEND_OK
id:0A2D3D2100002A9F000000000000011A result:SEND_OK
consumer
MessageExt [queueId=1, storeSize=141, queueOffset=6, sysFlag=0, bornTimestamp=1403765668792, bornHost=/192.168.31.130:60985, storeTimestamp=1403765527374, storeHost=/192.168.58.163:10911, msgId=C0A83AA300002A9F0000000000000A77, commitLogOffset=2679, bodyCRC=753746584, reconsumeTimes=0, preparedTransactionOffset=0, toString()=Message [topic=PushTopic, flag=0, properties={TAGS=push, KEYS=2, WAIT=true, MAX_OFFSET=7, MIN_OFFSET=0}, body=14]]
MessageExt [queueId=0, storeSize=141, queueOffset=6, sysFlag=0, bornTimestamp=1403765668698, bornHost=/192.168.31.130:60985, storeTimestamp=1403765527356, storeHost=/192.168.58.163:10911, msgId=C0A83AA300002A9F00000000000009EA, commitLogOffset=2538, bodyCRC=753746584, reconsumeTimes=0, preparedTransactionOffset=0, toString()=Message [topic=PushTopic, flag=0, properties={TAGS=push, KEYS=1, WAIT=true, MAX_OFFSET=7, MIN_OFFSET=0}, body=14]]
最后,补充一下idea的环境搭建需要依赖的jar包,推荐采用maven的方式,需要在pom.xml文件中引入如下内容:
<dependency>
<groupId>com.alibaba.rocketmq</groupId>
<artifactId>rocketmq-client</artifactId>
<version>3.2.6</version>
</dependency>
没有maven环境的话就把下载下来的文件路径下面的libs下面所有jar都依赖一下就可以了。
可能出现的问题:
1、启动broker的时候可能会报初始内存堆太小heap initilize error。不能修改bin/runbroker.sh里面的初始化大小Xmx和Xms这些,小于4G就启动不起来我这边;
后续会研究RocketMQ的使用详细情况,一个个慢慢记录~

- 大小: 2.9 KB
分享到:
相关推荐
从官方网站或GitHub仓库获取RocketMQ的4.8.0版本源码包,或者直接使用已提供的"rocketmq安装部署"压缩包。将压缩文件上传到Linux服务器,并在指定目录下进行解压,例如 `/usr/local/src/`。 ```bash cd /usr/local/...
**RocketMQ安装文档** RocketMQ,一款开源的消息中间件,由阿里巴巴贡献并维护,它具有高可用、高并发、低延迟的特点,广泛应用于分布式系统中的消息传输。本安装文档将详细讲解如何简单搭建RocketMQ以及如何构建一...
### 描述RocketMQ安装过程 RocketMQ是一款分布式消息中间件,具有高性能、高可靠性和低延迟的特点,在消息处理和实时数据流传输方面有着广泛的应用。本文将详细介绍RocketMQ的安装步骤,包括RocketMQ服务器本身的...
超详细的RocketMQ安装部署文档,非常适应用。
RocketMQ安装.pdf
rocketmq安装部署过程(4.0.0版本) 很详细的讲述了rocketmq的安装过程。
RocketMQ安装全文档,内含下载资源
### Windows环境下配置安装RocketMQ #### 一、安装与配置RocketMQ 在Windows环境下安装配置RocketMQ主要包括以下几个步骤: 1. **下载与安装RocketMQ**: - 下载RocketMQ安装包,通常版本为4.2.0。 - 解压至...
Name Server是一个几乎无状态节点,可集群部署,节点之间无任何信息同步。 Broker部署相对复杂,Broker分为Master与Slave,一个Master可以对应多个Slave,但是一个Slave只能对应一个Master,Master与Slave的对应关系...
通常需要添加`JAVA_HOME`指向JDK的安装路径,以及`ROCKETMQ_HOME`指向RocketMQ的解压目录。 4. **启动NameServer**: NameServer是RocketMQ的核心组件之一,负责管理所有Topic和Broker的信息。在`ROCKETMQ_HOME/bin`...
RocketMQ是阿里巴巴开源的一款分布式消息中间件,广泛应用于大规模分布式系统中的消息传递。RocketMQ具有高可用、高并发、低延迟、稳定可靠等特性,支持发布/订阅模式和点对点模式的消息传递,适用于交易系统、...
在本文中,我们将深入探讨 RocketMQ 的应用、安装过程以及使用方法,以便更好地理解和掌握这个强大的工具。 首先,让我们来看一下RocketMQ在实际项目中的应用。在上述案例中,RocketMQ 被用作一个消息传递平台,...
1、rocketmq-4.7.1银河麒麟V4+飞腾 deb安装包 2、内置jdk 1.8 3、目录信息 /opt/rocketmq-4.7.1/ ├── benchmark ├── bin ├── conf ├── jdk ├── lib ├── LICENSE ├── NOTICE └── README.md
本文将详细介绍如何在Windows环境下安装和配置RocketMQ。 ** RocketMQ 安装步骤 ** 1. **获取 RocketMQ 安装包** RocketMQ 的最新稳定版本可以从官方网站下载,例如4.8版本。新版本通常会修复一些已知的漏洞和...
在实际使用过程中,你还可以参考提供的博客文章"阿里 RocketMQ 安装与简介 - XIAO_DF - 博客园.mht",这是一份详细的安装和入门教程,可以帮助你更好地理解和操作RocketMQ。通过实践,你将掌握RocketMQ的部署、消息...
在这个"rocketmq4.5.0安装部署(安装包,开发手册,配置文件).zip"压缩包中,包含了进行RocketMQ 4.5.0版本安装和部署所需的所有关键资源。 首先,我们来看"RocketMQ 开发手册3.2.4.pdf",这是一份详细的开发者指南...
四、RocketMQ安装步骤 1. 下载解压:首先将"rocketmq.zip"解压到Linux系统的合适位置,例如/home/user/rocketmq。 2. 初始化配置:根据实际需求修改RocketMQ配置文件,如broker.conf、namesrv.conf等,设置端口号、...
部署RocketMQ到宝塔环境中,首先需要确保服务器已经安装了Java环境,这里我们看到有一个名为"jdk1.8.0_121"的文件,这正是Java Development Kit (JDK)的一个版本,它是运行和开发Java应用的基础。我们需要先将这个...