1.maven 安装
wget http://repos.fedorapeople.org/repos/dchen/apache-maven/epel-apache-maven.repo -O /etc/yum.repos.d/epel-apache-maven.repo
yum -y install apache-maven
2.install
yum -y install ant 3.git 安装
yum install git
#查看版本
git --version
#显示 git version +版本号 表示成功
#配置 git 名称以及邮箱
git config --global user.name "Your Name"
git config --global user.email "user@youremail"
3.rocketmq安装(注意这里版本是4.2.0)

cd /usr/local/rocketmq(没有则创建目录)
git clone -b develop https://github.com/apache/incubator-rocketmq.git
cd incubator-rocketmq
mvn -Prelease-all -DskipTests clean install -U
------------------

一段长时间的maven 依赖下载

-------------------
cd distribution/target/apache-rocketmq

2)配置文件
vim /etc/profile 添加

#apache rocket-mq
export ROCKETMQ_HOME=/usr/local/rocketmq/incubator-rocketmq/distribution/target/apache-rocketmq
export PATH=$JAVA_HOME/bin:$ROCKETMQ_HOME/bin:$PATH
export NAMESRV_ADDR=自己服务器ip:9876

使profile 生效

source /etc/profile

进入到 /usr/local/rocketmq/incubator-rocketmq/distribution/target/apache-rocketmq/bin 目录下:添加权限

chmod +x mqadmin mqbroker mqfiltersrv mqshutdown mqnamesrv

启动:

nohup  mqnamesrv & 

 //查看启动日志 默认在bin 目录的nohup.log下
tail -f nohup.out显示如下信息 表示启动成功

3)由于自己的服务器使用的是阿里云的 2g 内存,启动那个 mqnamesrv后,启动mqbroker时候需要设置下内存大小,否则会报错

vim  runserver.sh(因为mqbroker脚本里面调用了runserver.sh  
sh ${ROCKETMQ_HOME}/bin/runbroker.sh org.apache.rocketmq.broker.BrokerStartup $@) 修改下图:

之后 启动 mqbroker并将启动日志写入到指定位置.进入到target/bin目录

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

启动成功后,使用ps aux|grep rocketmq如下图

4)写测试用例

1.pom.xml引入rocket包(引入的是4.1的包,4.2的引入后无法使用)

<!--4.2无法使用 -->
<dependency>
<groupId>org.apache.rocketmq</groupId>
<artifactId>rocketmq-all</artifactId>
<version>4.2.0</version>
<type>pom</type>
</dependency>
<!--4.1的引用包-->
<dependency>
<groupId>org.apache.rocketmq</groupId>
<artifactId>rocketmq-client</artifactId>
<version>4.1.0-incubating</version>
</dependency> 生产者main方法:
package cn.rocketmq;

import org.apache.rocketmq.client.exception.MQBrokerException;
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 org.apache.rocketmq.remoting.exception.RemotingException; /**
* Create by fan on 2018/4/16
*/
public class TestProductRocketMq {
public static void main(String[] args) throws InterruptedException, RemotingException, MQClientException, MQBrokerException { final DefaultMQProducer defaultMQProducer = new DefaultMQProducer("producerGroupName");
// defaultMQProducer.setVipChannelEnabled(false);
defaultMQProducer.setNamesrvAddr("47.98.111.19:9876"); try {
defaultMQProducer.start();
} catch (MQClientException e) {
e.printStackTrace();
} Message message = new Message("testTopic","tagA","keyA","Hello RocketMq".getBytes());
for (int i = 0 ;i<100;i++){
if (i%2 == 0){
SendResult sendResult = defaultMQProducer.send(message);
Thread.sleep(100);
System.out.println("tags send result:" + sendResult);
}else {
message = new Message("testTopic","tagB","keyB","Hello RocketMq.I'm your user".getBytes());
SendResult sendResult = defaultMQProducer.send(message);
Thread.sleep(100);
System.out.println("tags send result:" + sendResult);
}
} Runtime.getRuntime().addShutdownHook(new Thread(() -> defaultMQProducer.shutdown()));
System.exit(0);
}
}


消费者方法:

package cn.rocketmq;

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.consumer.ConsumeFromWhere;
import org.apache.rocketmq.common.message.MessageExt; import java.util.List; /**
* Create by fan on 2018/4/16
*/
public class TestConsumeRocketMq {
public static void main(String[] args) throws MQClientException {
DefaultMQPushConsumer defaultMQPushConsumer = new DefaultMQPushConsumer("testProducerGroupName");
defaultMQPushConsumer.setNamesrvAddr("47.98.111.19:9876"); defaultMQPushConsumer.subscribe("testTopic","tagA || tagB");
defaultMQPushConsumer.setConsumeFromWhere(ConsumeFromWhere.CONSUME_FROM_FIRST_OFFSET);
defaultMQPushConsumer.registerMessageListener(new MessageListenerConcurrently() { @Override
public ConsumeConcurrentlyStatus consumeMessage(List<MessageExt> list, ConsumeConcurrentlyContext consumeConcurrentlyContext) {
System.out.println(Thread.currentThread().getName() + "Receive new message:" + list);
MessageExt messageExt = list.get(0);
System.out.println("messageExt:" + messageExt);
if(messageExt!=null && "testTopic".equals(messageExt.getTopic())){ if("tagA".equals(messageExt.getTags())){ String mess = new String(messageExt.getBody());
System.out.println("mess tagA consume:" + mess);
}else if("tagB".equals(messageExt.getTags())){
String mess = new String(messageExt.getBody());
System.out.println("mess tagB consume:" + mess);
}
}
//回执确认消息
return ConsumeConcurrentlyStatus.CONSUME_SUCCESS;
}
});
defaultMQPushConsumer.start(); System.out.println("Consume start."); }
}

之后运行main方法报错:

RocketMq Exception "connect to <:10909> failed"

解决办法是:centos关闭了10909以及9876防火墙端口

firewall-cmd --zone=public --add-port=10909/tcp --permanent

firewall-cmd --zone=public --add-port=9876/tcp --permanent

 
之后,又碰到下面的问题:
 

google了半天,尚未解决。。。

 

  

centos7 安装 maven 和ant git 以及 rocketmq 4.2安装过程(安装成功,调用失败)的更多相关文章

  1. maven课程 项目管理利器-maven 3-4 eclipse安装maven插件和新建maven项目

    本节主要讲了两个主要内容, 1       eclipse安装maven插件 2 新建maven项目 3 本人实操 1       eclipse安装maven插件 eclipse4.0以上和myec ...

  2. Jenkins安装maven integration plugin失败解决方法

    最近装了一个jenkins准备搞一个自动化测试的持续集成,但是在安装maven integration这个插件时报错,试了几次都是失败! 错误原因如下: javadoc安装失败: java.io.IO ...

  3. centos安装maven,git,mysql

    安装maven1:下载maven包:http://mirror.bit.edu.cn/apache/maven/maven-3/3.5.0/binaries/apache-maven-3.5.0-bi ...

  4. jenkins 安装 + maven + git部署

    1. 安装JDK 2. 安装maven 3. 安装git 4. 安装tomcat tar zxvf apache-tomcat-8.5.14.tar.gz 找到tomcat-->config-- ...

  5. CentOS 7 下 JDK1.8+Maven+Nginx+MySql+Git+Redis环境安装

    CentOS 7 下 JDK1.8+Maven+Nginx+MySql+Git+Redis环境安装 安装目录准备 新建data目录,用来放下载的软件 mkdir -p /data 切换到该data目录 ...

  6. CentOS7 安装与配置Ant

    安装前提:需安装jdk(java-1.8.0-openjdk-devel). 1.到官网下载Antt包,我下的是:apache-ant-1.9.7-bin.tar.gz 2.解压缩 tar -zxvf ...

  7. CentOS7.6安装Maven

    官网下载地址:http://maven.apache.org/download.cgi 第一步:软件下载安装 进行安装目录:cd /opt/software (如果目录不存在,请先创建目录) 下载二进 ...

  8. linux(centos7)下安装maven

    Linux下安装maven 1.首先到Maven官网下载安装文件,目前最新版本为3.0.3,下载文件为apache-maven-3.0.3-bin.tar.gz,下载可以使用yum命令: 2.进入下载 ...

  9. Centos7安装maven详情以及配置

    一.maven安装: 1.获取maven下载地址: 查询maven最新版本地址:https://maven.apache.org/download.cgi 当前最新版本为maven 3.6.3    ...

随机推荐

  1. MongoDB学习笔记(二)

    MongoDB的其他方法: 显示指定数目的数据: 1.在mongodb中查询指定数目的记录,可以使用: db.collectionname.find().limit(number); 2.在mongo ...

  2. Mac 10.12通过Launchd创建自定义服务(基于MySQL 5.7.15的开机自启动)

    在上一篇文章http://www.cnblogs.com/EasonJim/p/6275863.html中安装MySQL时采用的时DMG包的安装步骤页面进行安装的,如果这样安装的MySQL是会开机自启 ...

  3. LINUX 查找替换命令 总结

    find /var/ -name "*.php" > /home/tmp 在/var/目录下查找 所有以.php后缀结尾的文件  结果很多,就 > 输出结果到/home ...

  4. bash切割文件

    split -l 100 ./x01.txt -d -a 3 --additional-suffix=.txt 将 x01.txt文件,-l 100 按照每个100行,  -d 以数字累加, -a 3 ...

  5. Struts2 extends用法

    1.创建一个struts-extends.xml文件 <?xml version="1.0" encoding="UTF-8"?> <!DOC ...

  6. nginx源码编译以及源码编译过程中遇到的问题

    本文主要讲nginx安装以及安装过程中遇到的问题. 谈到nginx 必须聊聊它的起源和发展. nginx是由俄罗斯工程师Igor Sysoev 用C语言开发的一个免费开源的Web服务器软件,于2004 ...

  7. Comet事件分析

    简介[ Introduction ]  使用APR或者NIO API作为连接器的基础,Tomcat能够提供一些在阻塞IO之上的有效扩展,用于支持Servlet API. [ With usage of ...

  8. Linux原始套接字实现分析---转

    http://blog.chinaunix.net/uid-27074062-id-3388166.html 本文从IPV4协议栈原始套接字的分类入手,详细介绍了链路层和网络层原始套接字的特点及其内核 ...

  9. Javad的Validator框架概述

    Java EE 6 提出了 Bean Validation 规范,使用注解的方式对 Java Bean 进行约束验证,不局限于某一层次或者某一编程模型,灵活易用.下边将向您系统的介绍该规范的各种特性. ...

  10. WCF-终结点之消息路由示例

    一. 在前一章中主要介绍了服务端的监听地址与逻辑地址.本节模拟消息转发机制来实际体验一把终结点的监听地址是如何使用的. 先下载一个叫做TcpTrace的小软件(108k),它能够截取端口消息,并转发消 ...