RocketMQ在linux下安装部署

本博客以当前RocketMQ最新版介绍:v4.4.0

环境要求

  1. 64位JDK 1.8+;
  2. Maven 3.2.x; // 源码编译时需要用到

二进制文件安装

  1. 下载二进制文件:http://mirrors.tuna.tsinghua.edu.cn/apache/rocketmq/4.4.0/rocketmq-all-4.4.0-bin-release.zip
  2. 二进制文件放到任意目录(由于是纯净的ubuntu镜像,docker环境,因此我放在/root/xxx目录下)
  3. 解压zip包,并重命名文件名
> unzip  rocketmq-all-4.4.0-bin-release.zip && mv rocketmq-all-4.4.0-bin-release rocketmq
  1. 启动server
> cd /root/rocketmq
> nohup sh bin/mqnamesrv & // 第一次安装时,可执行sh bin/mqnamesrv观察是否能够启动
> tailf -f ~/logs/rocketmqlogs/namesrv.log
// 观察到以下日志时,server已启动成功
2019-09-07 18:06:13 INFO main - The Name Server boot success. serializeType=JSON
  1. 启动broker
> nohup sh bin/mqbroker -n localhost:9876
> tailf -f ~/logs/rocketmqlogs/broker.log
// 观察到以下日志时,server已启动成功
2019-09-07 20:40:06 INFO main - The broker[0daf9bd41237, 172.17.0.2:10911] boot success. serializeType=JSON and name server is 172.17.0.2:9876

注:broker启动如果过一会直接退出,无任何日志或报错的话,检查一下机子的内存是否充足。RocketMQ的broker默认内存为8g。
修改文件:/root/rocketmq/bin/runbroker.sh
JAVA_OPT="${JAVA_OPT} -server -Xms1g -Xmx1g -Xmn512m"

  1. 测试生产者和消费者
// 在测试之前,我们需要先设置环境变量:export NAMESRV_ADDR=localhost:9876
> sh bin/tools.sh org.apache.rocketmq.example.quickstart.Producer
 SendResult [sendStatus=SEND_OK, msgId= ...

 > sh bin/tools.sh org.apache.rocketmq.example.quickstart.Consumer
 ConsumeMessageThread_%d Receive New Messages: [MessageExt...

Producer的源码

public class Producer {
    public static void main(String[] args) throws MQClientException, InterruptedException {
        // 默认消费组
        DefaultMQProducer producer = new DefaultMQProducer("default");

        producer.start();

        for (int i = 0; i < 1000; i++) {
            try {
                Message msg = new Message("TopicTest" /* Topic */,
                    "TagA" /* Tag */,
                    ("Hello RocketMQ " + i).getBytes(RemotingHelper.DEFAULT_CHARSET) /* Message body */
                );
                // 消息发送
                SendResult sendResult = producer.send(msg);
                System.out.printf("%s%n", sendResult);
            } catch (Exception e) {
                e.printStackTrace();
                Thread.sleep(1000);
            }
        }
        // 关闭生产者
        producer.shutdown();
    }
}

Consumer的源码

public class Consumer {

    public static void main(String[] args) throws InterruptedException, MQClientException {
        // 指定消费组
        DefaultMQPushConsumer consumer = new DefaultMQPushConsumer("default");
       // 设置消费偏移点
        consumer.setConsumeFromWhere(ConsumeFromWhere.CONSUME_FROM_FIRST_OFFSET);
        // 订阅topic,以及tag
        consumer.subscribe("TopicTest", "*");
        // 注册消息监听器
        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);
                // 收到数据后,返回ack确认
                return ConsumeConcurrentlyStatus.CONSUME_SUCCESS;
            }
        });
        consumer.start();

        System.out.printf("Consumer Started.%n");
    }
}
  1. 关闭server和broker
> sh bin/mqshutdown broker
The mqbroker(36695) is running...
Send shutdown request to mqbroker(36695) OK

> sh bin/mqshutdown namesrv
The mqnamesrv(36664) is running...
Send shutdown request to mqnamesrv(36664) OK

原文地址:https://www.cnblogs.com/chenkaiyin1201/p/11483286.html

时间: 2024-11-13 08:51:38

RocketMQ在linux下安装部署的相关文章

Linux下安装部署AWStats日志分析系统实例

AWStats是使用Perl语言开发的一款开放性日志分析系统,可分析Apache网站服务器的访问日志,还可以用来分析Samba.Vsftpd.IIS等日志信息.       此文章主要讲解如何在linux系统下安装部署关于对Apache网站服务站日志分析的AWStats. 实验步骤一,安装部署AWStats分析软件. 一,安装AWStats软件包. 直接将其解压到/usr/local/awstats目录下即可完成安装. 使用命令:mkdir -p /usr/local/awstats tar z

Linux下安装部署Samba共享盘的操作手册

简述 Samba是在Linux和UNIX系统上实现SMB协议的一个免费软件,由服务器及客户端程序构成.SMB(Server Messages Block,信息服务块)是一种在局域网上共享文件和打印机的一种通信协议,它为局域网内的不同计算机之间提供文件及打印机等资源的共享服务.SMB协议是客户机/服务器型协议,客户机通过该协议可以访问服务器上的共享文件系统.打印机及其他资源.通过设置“NetBIOS over TCP/IP”使得Samba不但能与局域网络主机分享资源,还能与全世界的电脑分享资源.

linux下安装部署Solr

一.安装准备 操作系统:CentOS 6.5 tomcat版本:apache-tomcat-7.0.54.tar.gz solr版本:solr-4.9.0.tgz 二.部署实施 安装tomcat:略..... 然后进入tomcat/bin文件夹下,执行./startup.sh启动脚本,然后在浏览器中访问tomcat的url:http://ip:8080,如下图则部署tomcat成功. 安装solr:将solr-4.9.0.tgz压缩包上次到linux的/opt目录下,使用命令行解压得到solr-

linux下安装部署ansible

介绍 Ansible是一种批量部署工具,现在运维人员用的最多的三种开源集中化管理工具有:puppet,saltstack,ansible,各有各的优缺点,其中saltstack和ansible都是用python开发的.ansible其实准确的说只提供了一个框架,它要基于很多其他的python模块才能工作的,所以在安装ansible的时候你要再装很多其他的依赖包的. 好处之一是使用者可以开发自己的模块,放在里面使用.第二个好处是无需在客户端安装agent,更新时,只需在操作机上进行一次更新即可.第

Linux下安装部署RabbitMQ

在写正文之前先啰嗦几句,RabbitMQ(消息队列)的安装让我费了半天劲啊!足足折腾了2天,最后写下这篇文章总结下,其实很简单,但是你找不到错在哪个环节就会费很多无用功,如果你也遇到了安装erl后 怎么也安装不了RabbitMQ时,那这篇文章就会帮你大忙了.千万别被网上所谓的教程坑了.目前能搜到的教程几乎都是不行的,主要错在一开始就迷惑你了,创造erlang已经安装好了的假象,让你怎么找问题也找不到问题的根本,问题的根本其实就是开始的erlang安装错了!教程提供的erl官方网站大致分为两种,看

Linux下安装部署JDK7+Tomcat7+MySQL5.6+Redis3.07

配置jdk 环境变量 1.解压 : tar -zxvf jdk-8u121-linux-x64.tar.gz 生成新文件夹 2.通过命令 [[email protected] /]# vi etc/profile 3.在末尾添加: unset i unset -f pathmunge export JAVA_HOME=/usr/java/jdk8 export PATH=$JAVA_HOME/bin:$PATH export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$

Linux下安装部署Java

Java安装6小部(适合新手) 1.下载软件包 # wget http://download.oracle.com/otn-pub/java/jdk/7u79-b15/jdk-7u79-linux-x64.tar.gz?AuthParam=1441937568_6752e90a2aa70be3cf8baa0b8905125c更改软件名,不知为什么wget下载下来名称挺乱的 # mv jdk-7u79-linux-x64.tar.gz?AuthParam=1441937568_6752e90a2a

Linux 下安装tomcat +JDK环境部署

Linux下安装apache比较简单,安装apache的httpd就可以了. 但是如果要用tomcat的话,要稍微复杂一点,但如果按步骤来,也会很顺利地装好. 首先,tomcat安装之前,需要安装java环境,即需要下载java JDK,配置好后,再配置tomcat环境(两个的配置差不多).   1,下载java JDK. 到oracle甲骨文官网下载(要对应系统的版本,有解压版和安装版,推荐解压版),本次我使用的是安装版. 下载rpm安装文件后,通过 rpm -iv jdk-xxx.rpm 进

Linux下安装Tomcat服务器和部署Web应用

一.上传Tomcat服务器 二.安装Tomcat服务器 2.1.解压tomcat服务器压缩包 2.2.配置环境变量 tomcat服务器运行时是需要JDK支持的,所以必须配置好JDK用到的那些环境变量 编辑/etc下的profile文件,加上如下内容: 2.3.修改tomcat服务器的启动端口 修改将Tomcat服务器启动时使用的端口,例如改成9999 修改完server.xml文件之后,保存,退出. 三.Tomcat服务器启动和关闭 3.1.启动Tomcat服务器 进入tomcat服务器的bin