700字范文,内容丰富有趣,生活中的好帮手!
700字范文 > linux 下安装部署mq RocketMQ在linux下安装部署

linux 下安装部署mq RocketMQ在linux下安装部署

时间:2020-04-14 15:45:11

相关推荐

linux 下安装部署mq RocketMQ在linux下安装部署

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

环境要求

64位JDK 1.8+;

Maven 3.2.x; // 源码编译时需要用到

二进制文件安装

> unzip rocketmq-all-4.4.0-bin-release.zip && mv rocketmq-all-4.4.0-bin-release rocketmq

启动server

> cd /root/rocketmq

> nohup sh bin/mqnamesrv & // 第一次安装时,可执行sh bin/mqnamesrv观察是否能够启动

> tailf -f ~/logs/rocketmqlogs/namesrv.log

// 观察到以下日志时,server已启动成功

-09-07 18:06:13 INFO main - The Name Server boot success. serializeType=JSON

启动broker

> nohup sh bin/mqbroker -n localhost:9876

> tailf -f ~/logs/rocketmqlogs/broker.log

// 观察到以下日志时,server已启动成功

-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"

测试生产者和消费者

// 在测试之前,我们需要先设置环境变量: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 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");

}

}

关闭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

linux下安装部署ansible

linux下安装部署ansible 介绍 Ansible是一种批量部署工具,现在运维人员用的最多的三种开源集中化管理工具有:puppet,saltstack,ansible,各有各的优缺点,其中sal ...

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

简述 Samba是在Linux和UNIX系统上实现SMB协议的一个免费软件,由服务器及客户端程序构成.SMB(Server Messages Block,信息服务块)是一种在局域网上共享文件和打印机的 ...

linux下安装部署环境:jdk、tomcat、nginx

一.安装jdk 一.查看Linux自带的JDK是否已安装 1.查看已经安装的jdk: # rpm -qa|grep jdk ← 查看jdk的信息或直接执行 或 # rpm ...

今日Linux下安装部署禅道

我的linux系统是在虚拟机上安装的Ubuntu,禅道在官网下载安装的开源版的linux64位,采用一键安装包安装.安装前要求:系统上不能有自己安装的mysql .下载的安 ...

Linux下安装部署RabbitMQ

在写正文之前先啰嗦几句,RabbitMQ(消息队列)的安装让我费了半天劲啊!足足折腾了2天,最后写下这篇文章总结下,其实很简单,但是你找不到错在哪个环节就会费很多无用功,如果你也遇到了安装erl后 怎 ...

jenkins在Linux 下安装部署

这里介绍两种方法,一种方法将最新版jenkins加入到yum源,另外一种是下载指定版本的rpm包 系统centos6 自带jdk1.7 一 安装jenkins wget -O :下载并以不同的文件 ...

Linux下安装部署Java

Java安装6小部(适合新手) 1.下载软件包 # wget /otn-pub/java/jdk/7u79-b15/jdk-7u79-linux-x ...

mysql linux下安装部署

一.安装简介 用户名:mysql安装目录:/usr/local/mysql-5.5数据库目录:/data/mysql/data源码包:mysql-5.5.28.tar.gz 二.安装准备 a.vi / ...

随机推荐

SSO单点登录实现原理与总结

一.什么是单点登录SSO(Single Sign-On) SSO是一种统一认证和授权机制,指访问同一服务器不同应用中的受保护资源的同一用户,只需要登录一次,即通过一个应用中的安全验证后,再访问其他应用 ...

MAC OS Finder 中快速定位指定路径

在看一些 tip 文章的时候,时不时会有需要进到某某目录替换文件之类的步骤.如果碰上这个目录层次够多,一层一层的点击既麻烦又容易出错,有什么快捷的办法呢? 快捷键:Shift + Command + ...

MySQL语句45道练习题及答案

一. 设有一数据库,包括四个表:学生表(Student).课程表(Course).成绩表(Score)以及教师信息表(Teacher).四个表的结构分别如表1-1的表(一)~表( ...

四大机器学习降维算法:PCA、LDA、LLE、Laplacian Eigenmaps

四大机器学习降维算法:PCA.LDA.LLE.Laplacian Eigenmaps 机器学习领域中所谓的降维就是指采用某种映射方法,将原高维空间中的数据点映射到低维度的空间中.降维的本质是学习一个映 ...

js混淆工具

1\ 2\/yui/compressor

广告系统中weak-and算法原理及编码验证

wand(weak and)算法基本思路 一般搜索的query比较短,但如果query比较长,如是一段文本,需要搜索相似的文本,这时候一般就需要wand算法,该算法在广告系统中有比较成熟的应 该,主要 ...

JSP出现中文乱码问题

今天纠结了好半天,本地运行程序后没有中文乱码,唯独发到服务器后运行出现了乱码. 究其原因,皆因eclipse环境默认的JSP编码是Iso-8859-1,需要将其改为utf-8,与JSP文件中的编码声明 ...

Windows10下通过anaconda安装tensorflow

博主经历了很多的坎坷磨难才找到一个比较好的在win10下安装TensorFlow的方法: 首先需要说明的是如果你想通过Anaconda来安装tensorflow的话,首先要确认你的python的版本是 ...

java 获得当前时间前指定几个小时的时间?

//@-12-13 获取当前时间,指定前面多少小时的时间 //返回格式YYYYMMDDHHMMSS public static String getBeforeHourTime(int iho ...

R猜拳游戏解释

R猜拳游戏解释 作者:梁 蓉 猜拳游戏大概解释: 搜集齐数据框,for循环在三个随机数里抽俩个,抽出的数据放回,继续抽取剪刀石头布,机器人出剪刀石头布,我出对应压制机器人的方法来赢取胜利,我给机器人发 ...

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。