Centos7安装RocketMQ及配置测试

来源:互联网 发布:sql update多条数据 编辑:程序博客网 时间:2024/05/22 04:53

环境

Centos7
RocketMQ 3.2.6
安装位置 /usr/local/alibaba-rockermq
外网ip 182.254.145.66
内网ip 10.105.23.114


安装

wget https://github.com/alibaba/RocketMQ/releases/download/v3.2.6/alibaba-rocketmq-3.2.6.tar.gz
tar alibaba-rocketmq-3.2.6.tar.gz
cd  alibaba-rocketmq


启动

nohup sh mqnamesrv -n 10.105.23.114:9876 & 
nohup sh mqbroker -n 10.105.23.114:9876


java测试

使用maven构建环境
<!-- http://mvnrepository.com/artifact/com.alibaba.rocketmq/rocketmq-client --><dependency><groupId>com.alibaba.rocketmq</groupId><artifactId>rocketmq-client</artifactId><version>3.2.3</version></dependency>
package rocketmq;import java.util.Date;import com.alibaba.rocketmq.client.exception.MQClientException;import com.alibaba.rocketmq.client.producer.DefaultMQProducer;import com.alibaba.rocketmq.client.producer.SendResult;import com.alibaba.rocketmq.common.message.Message;public class Producer {    public static void main(String[] args) throws MQClientException, InterruptedException {        DefaultMQProducer producer = new DefaultMQProducer("rmq-group");        producer.setNamesrvAddr("182.254.145.66:9876");        producer.setInstanceName("rmq-instance");        producer.start();        try {            for (int i = 0; i < 3; i++) {                Message msg = new Message("TopicA-test",// topic                    "TagA",// tag                        (new Date() + "Hello RocketMQ ,QuickStart" + i)                                .getBytes()// body                );                SendResult sendResult = producer.send(msg);            }        } catch (Exception e) {            e.printStackTrace();        }        producer.shutdown();    }}package rocketmq;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.client.exception.MQClientException;import com.alibaba.rocketmq.common.message.MessageExt;public class Consumer {     public static void main(String[] args) throws InterruptedException, MQClientException {        DefaultMQPushConsumer consumer = new DefaultMQPushConsumer("rmq-group");         consumer.setNamesrvAddr("182.254.145.66:9876");        consumer.setInstanceName("rmq-instance");        consumer.subscribe("TopicA-test", "TagA");         consumer.registerMessageListener(new MessageListenerConcurrently() {            @Override            public ConsumeConcurrentlyStatus consumeMessage(                    List<MessageExt> msgs, ConsumeConcurrentlyContext context) {                for (MessageExt msg : msgs) {                    System.out.println(new String(msg.getBody()));                }                return ConsumeConcurrentlyStatus.CONSUME_SUCCESS;            }        });        consumer.start();        System.out.println("Consumer Started.");    }}

运行consumer后发现
com.alibaba.rocketmq.remoting.exception.RemotingConnectException: connect to <10.105.23.114:10911> failed
在nohup.out里发现 
The broker[localhost, 10.105.23.114:10911] boot success. and name server is 182.254.145.65:9876
哎,看来还是外网内网ip的问题

上次在安装Tair的时候就碰到过类似的问题 详见  Centos7安装Tair及配置测试


最后经过多方搜索,在官方的用户说明里看到下面的方法

经过我修改后的broker.p
namesrvAddr=127.0.0.1:9876brokerIP1=182.254.145.66brokerName=localhostbrokerClusterName=DefaultClusterbrokerId=0autoCreateTopicEnable=trueautoCreateSubscriptionGroup=truerejectTransactionMessage=falsefetchNamesrvAddrByAddressServer=falsestorePathRootDir=/root/storestorePathCommitLog=/root/store/commitlogflushIntervalCommitLog=1000flushCommitLogTimed=falsedeleteWhen=04fileReservedTime=72maxTransferBytesOnMessageInMemory=262144maxTransferCountOnMessageInMemory=32maxTransferBytesOnMessageInDisk=65536maxTransferCountOnMessageInDisk=8accessMessageInMemoryMaxRatio=40messageIndexEnable=truemessageIndexSafe=falsehaMasterAddress=brokerRole=ASYNC_MASTERflushDiskType=ASYNC_FLUSHcleanFileForciblyEnable=true


ok!
这说明什么?说明第一手资料很重要




参考资料

http://www.jialeens.com/archives/681.html
http://www.cnblogs.com/xiaodf/p/5075167.html
0 0
原创粉丝点击