当前位置:首页 > 芯闻号 > 充电吧
[导读]1、安装RocketMQ(在Linux环境下,我用的是Centos6.5) 安装RocketMQ需要jdk1.6以上, maven,git环境,以上环境自行百度命令安装。 git clone

1、安装RocketMQ(在Linux环境下,我用的是Centos6.5)

安装RocketMQ需要jdk1.6以上, maven,git环境,以上环境自行百度命令安装。

git clone https://github.com/alibaba/RocketMQ.git  ##从github上下载RocketMQ开源项目

cd RocketMQ  ##进入文件夹

sh install.sh  ##开始安装

安装完之后可以看到下图这样:其中可以看到一个符号链接devenv如红框所示

然后

cd devenv/bin  ##进入链接的目录下的bin目录

nohup sh mqnamesrv -n "121.42.179.195:9876" &  ##配置nameserver,121.42.179.195是本机ip,也就是服务器外网地址

nohup sh mqbroker -n "121.42.179.195:9876" &  ##配置broker,121.42.179.195同上

之后

cat nohup.out

在输出的最低端,可以看到红框中的两句话则说明nameserver和broker启动成功。

如果服务器内存不够,你就会启动失败,可以修改runbroker.sh脚本(mqbroker文件中通过runbroker.sh脚本调用Broker的主函数com.alibaba.rocketmq.broker.BrokerStartup启动Broker)的JAVA_OPT参数

vi runbroker.sh 

我阿里云内存小,我就改成这样

JAVA_OPT="${JAVA_OPT} -server -Xms128m -Xmx128m -Xmn128m -XX:PermSize=128m -XX:MaxPermSize=128m"
2、编写Consumer和Producer测试类

首先需要的jar包如下:



    4.0.0

    groupId
    RocketMQ
    1.0-SNAPSHOT
    
        
            
                org.apache.maven.plugins
                maven-compiler-plugin
                
                    1.6
                    1.6
                
            
        
    

    RocketMQTest
    http://maven.apache.org

    
        UTF-8
    

    
        
            com.alibaba.rocketmq
            rocketmq-client
            3.0.10
        
        
            com.alibaba.rocketmq
            rocketmq-all
            3.0.10
            pom
        
        
            ch.qos.logback
            logback-classic
            1.1.1
        
        
            ch.qos.logback
            logback-core
            1.1.1
        
        
            junit
            junit
            4.10
            test
        
    

Consumer类:

public class Consumer {
    public static void main(String[] args) throws MQClientException {
        DefaultMQPushConsumer consumer = new DefaultMQPushConsumer(
                "rmq-group");

        consumer.setNamesrvAddr("121.42.179.195:9876");
        consumer.setInstanceName("consumer");
        consumer.subscribe("TopicA-test", "TagA");

        consumer.registerMessageListener(new MessageListenerConcurrently() {
            @Override
            public ConsumeConcurrentlyStatus consumeMessage(
                    List 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.");
    }
}

Producer类:

public class Producer {
    public static void main(String[] args) throws MQClientException {
        DefaultMQProducer producer = new DefaultMQProducer("rmq-group");
        producer.setNamesrvAddr("121.42.179.195:9876");
        producer.setInstanceName("producer");
        producer.start();
        try {
            for (int i = 0; i < 10; i++) {
                Thread.sleep(1000);  //每秒发送一次MQ
                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();
    }
}

之后分别启动,Consumer效果如下

这里需要注意,
默认情况下,一台服务器只能启动一个Producer或Consumer实例,所以如果需要在一台服务器启动多个实例,需要设置实例的名称,如要再建一个producer:
producer.setNamesrvAddr(“121.42.179.195:9876”);
producer.setInstanceName(“Producer2”);

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

随着人工智能(AI)模型变得越来越复杂,数据量不断攀升,数据中心正在通过改变系统架构,来实现更快、更高效的处理。

关键字: AI 连接器

Mar. 28, 2024 ---- TrendForce集邦咨询表示,除了铠侠(Kioxia)和西部数据(WDC)自今年第一季起提升产能利用率外,其它供应商大致维持低投产策略。尽管第二季NAND Flash采购量较第一...

关键字: SSD NAND Flash 智能手机

3月28日,美光宣布通过西安市善导公益慈善协会向西安市助爱小餐社区残疾人就业项目捐赠110余万元人民币。这笔捐款将资助130辆爱心移动餐车,为西安市创造至少130个残疾人就业岗位,助力残疾人及其家庭提高收入。

关键字: Micron

业内消息,据阿里巴巴内部人士透露,1688 近期启动全面入淘,先期开设三家店铺,后续这些店铺将整合成一个类似天猫超市的频道,并在淘宝推出 1688 严选贴牌的源头厂货。这意味着,1688 将携带百万源头厂商直接入驻淘宝。

关键字: 阿里巴巴 1688 淘宝

本周从内部人士处获知,运动科技公司Keep计划收缩线下健身运动空间Keepland,在运营部门进行了裁员,广州的拓店计划也因为裁员宣告结束,同时,目前北京仍在营业中的Keepland也将在租约到期后不再续签,陆续关闭自营...

关键字: 裁员 Keep

近日,胡润研究院发布《2024家大业大酒·胡润全球富豪榜》。70岁的钟睒睒财富比去年缩水9%,以4500亿元连续第四次成为中国首富,位于全球第21位,同比下降6位。44岁的黄峥财富比去年增长71%,即1600亿元,是今年...

关键字: 钟睒睒 AI

近日,社交媒体巨头Meta(Facebook)创始人马克・扎克伯格将其价值3亿美金的超级游艇开到了美国,这艘游艇名为“Project 1010”,目前位于佛罗里达州劳德代尔的埃弗格莱斯港,此举恰逢其40岁生日之前,引发外...

关键字: 扎克伯格 Meta Facebook

业内消息,上周索尼集团宣布将从2024财年开始提高索尼集团及两家附属运营公司员工的工资水平。对于主管级别的正式员工,每月最多增加超5万日元(约合2387元人民币),工资上涨水平与2023年相同,新员工的起薪也将在目前的基...

关键字: 加薪 索尼

本轮融资资金将用于已规模化供货的7纳米车规级芯片“龍鹰一号”的进一步量产和供货、基于“龍鹰一号”的高端智能座舱及舱行泊一体方案的市场推广,以及全场景高阶智驾新品AD1000的测试验证和市场导入。

关键字: 芯擎科技 芯片

根据戴尔日前发布的一份文件,该公司在过去一年里裁掉了大约6000名员工,以改善财务状况。

关键字: 戴尔 AI
关闭
关闭