rocketmq 安装_rocketmq-4.7.1带密码安装

setup 1:rocketmq下载

ed781966aa537a7c7adc861959b86978.png

地址:http://rocketmq.apache.org/release_notes/release-notes-4.7.1/

[root@localhost ~]# wget https://mirror.bit.edu.cn/apache/rocketmq/4.7.1/rocketmq-all-4.7.1-bin-release.zip

setup 2 解压

[root@localhost usr]# cd /usr[root@localhost usr]# unzip /root/Downloads/rocketmq-all-4.7.1-bin-release.zip[root@localhost usr]# ln -s rocketmq-all-4.7.1-bin-release/ rocketmq-4.7.1[root@localhost usr]# lltotal 15040-rw-r--r--.   1 root root 15144960 Jul 24 15:44 bb.tardr-xr-xr-x.   2 root root    45056 Jul  2 09:52 bindrwxr-xr-x.   2 root root        6 May 11  2019 gamesdrwxr-xr-x.  41 root root     8192 Jun 10 10:13 includedr-xr-xr-x.  37 root root     4096 Jun  8 09:51 libdr-xr-xr-x. 119 root root    73728 Jul  2 09:52 lib64drwxr-xr-x.  50 root root    12288 Jun  8 09:51 libexecdrwxr-xr-x.  18 root root      285 Aug 27 14:07 locallrwxrwxrwx.   1 root root       31 Jul 22 10:59 rocketmq-4.7.1 -> rocketmq-all-4.7.1-bin-release/drwxr-xr-x.   2 root root        6 Aug 27 17:05 rocketmq-all-4.7.1-bin-releasedr-xr-xr-x.   2 root root    16384 Jul  2 10:54 sbindrwxr-xr-x. 219 root root     8192 Jul  2 09:52 sharedrwxr-xr-x.   4 root root       34 May 20 19:33 srclrwxrwxrwx.   1 root root       10 May 11  2019 tmp -> ../var/tmp[root@localhost usr]#  vim ~/.bashrc   (根据自己需要是否增加环境变量)export PATH=/usr/local/rocketmq/bin:$PATH

setup 3 修改配置

[root@localhost local]# cd rocketmq[root@localhost rocketmq]# lltotal 40drwxr-xr-x. 2 root root    83 Jun 24 14:49 benchmarkdrwxr-xr-x. 3 root root  4096 Aug 27 17:14 bindrwxr-xr-x. 6 root root   237 Aug 27 17:12 confdrwxr-xr-x. 2 root root  4096 Jun 24 14:49 lib-rw-r--r--. 1 root root 17336 Jun  2 14:09 LICENSE-rw-r--r--. 1 root root  1338 Jun  2 14:09 NOTICE-rw-r--r--. 1 root root  5069 Jun 24 14:02 README.md[root@localhost rocketmq]#

(在由于演示机子内存有限,所以根据实际应用,配置内存)

[root@localhost rocketmq]# vim bin/runbroker.shchoose_gc_log_directoryJAVA_OPT="${JAVA_OPT} -server -Xms2g -Xmx2g -Xmn1g"     #<<<<<=====修改这里JAVA_OPT="${JAVA_OPT} -XX:+UseG1GC -XX:G1HeapRegionSize=16m -XX:G1ReservePercent=25 -XX:InitiatingHeapOccupancyPercent=30 -XX:SoftRefLRUPolicyMSPerMB=0"JAVA_OPT="${JAVA_OPT} -verbose:gc -Xloggc:${GC_LOG_DIR}/rmq_broker_gc_%p_%t.log -XX:+PrintGCDetails -XX:+PrintGCDateStamps -XX:+PrintGCApplicationStoppedTime -XX:+PrintAdaptiveSizePolicy"[root@localhost rocketmq]# vim bin/runserver.shchoose_gc_log_directoryJAVA_OPT="${JAVA_OPT} -server -Xms1g -Xmx1g -Xmn521m -XX:MetaspaceSize=128m -XX:MaxMetaspaceSize=320m"       #<<<<<=====修改这里JAVA_OPT="${JAVA_OPT} -XX:+UseConcMarkSweepGC -XX:+UseCMSCompactAtFullCollection -XX:CMSInitiatingOccupancyFraction=70 -XX:+CMSParallelRemarkEnabled -XX:SoftRefLRUPolicyMSPerMB=0 -XX:+CMSClassUnloadingEnabled -XX:SurvivorRatio=8  -XX:-UseParNewGC"

修改配置:

[root@localhost rocketmq]# vim conf/namesrv.propertieslistenPort=3030[root@localhost rocketmq]# vim conf/broker.confbrokerClusterName = DefaultClusterbrokerName = broker-abrokerId = 0deleteWhen = 04fileReservedTime = 48brokerRole = ASYNC_MASTERflushDiskType = ASYNC_FLUSHnamesrvAddr=127.0.0.1:3030         #这里可以连接多个管理,127.0.0.1:3030,127.0.0.1:3031listenPort=2020#autoCreateTopicEnable=falseaclEnable=true[root@localhost conf]# vim plain_acl.ymlglobalWhiteRemoteAddresses:        #去掉所有白名单        #- 10.10.103.*        #- 192.168.0.*#保留一个用户- accessKey: admin001  secretKey: 12345678  whiteRemoteAddress:        #192.168.1.*  # if it is admin, it could access all resources  admin: true

setup4 启动服务

[root@localhost bin]#  mqnamesrv -c /usr/local/rocketmq/conf/namesrv.properties  &[1] 4214[root@localhost bin]# Java HotSpot(TM) 64-Bit Server VM warning: Using the DefNew young collector with the CMS collector is deprecated and will likely be removed in a future releaseJava HotSpot(TM) 64-Bit Server VM warning: UseCMSCompactAtFullCollection is deprecated and will likely be removed in a future release.SLF4J: Class path contains multiple SLF4J bindings.SLF4J: Found binding in [jar:file:/usr/local/jdk1.8.0_251/jre/lib/ext/logback-classic-1.0.13.jar!/org/slf4j/impl/StaticLoggerBinder.class]SLF4J: Found binding in [jar:file:/usr/local/rocketmq-all-4.7.1-bin-release/lib/logback-classic-1.0.13.jar!/org/slf4j/impl/StaticLoggerBinder.class]SLF4J: See http://www.slf4j.org/codes.html#multiple_bindings for an explanation.SLF4J: Actual binding is of type [ch.qos.logback.classic.util.ContextSelectorStaticBinder]load config properties file OK, /usr/local/rocketmq/conf/namesrv.propertiesThe Name Server boot success. serializeType=JSON[root@localhost ~]# mqbroker -c /usr/local/rocketmq/conf/broker.conf  &[1] 4934[root@localhost ~]# SLF4J: Class path contains multiple SLF4J bindings.SLF4J: Found binding in [jar:file:/usr/local/jdk1.8.0_251/jre/lib/ext/logback-classic-1.0.13.jar!/org/slf4j/impl/StaticLoggerBinder.class]SLF4J: Found binding in [jar:file:/usr/local/rocketmq-all-4.7.1-bin-release/lib/logback-classic-1.0.13.jar!/org/slf4j/impl/StaticLoggerBinder.class]SLF4J: See http://www.slf4j.org/codes.html#multiple_bindings for an explanation.SLF4J: Actual binding is of type [ch.qos.logback.classic.util.ContextSelectorStaticBinder]The broker[broker-a, 192.168.1.13:2020] boot success. serializeType=JSON and name server is 127.0.0.1:3030

注意:Linux时候,注意放开这个两个端口

备注:停止服务时候,可以使用mqshutdown

附件:java 与rocketmq连接代码

package test;import GamePlatformServer.classFile.DBConnectO;import GamePlatformServer.classFile.Log;import org.apache.rocketmq.acl.common.AclClientRPCHook;import org.apache.rocketmq.acl.common.SessionCredentials;import org.apache.rocketmq.client.consumer.DefaultLitePullConsumer;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.consumer.rebalance.AllocateMessageQueueAveragely;import org.apache.rocketmq.client.producer.DefaultMQProducer;import org.apache.rocketmq.client.producer.SendResult;import org.apache.rocketmq.common.consumer.ConsumeFromWhere;import org.apache.rocketmq.common.message.Message;import org.apache.rocketmq.common.message.MessageExt;import org.apache.rocketmq.common.protocol.heartbeat.MessageModel;import org.apache.rocketmq.remoting.common.RemotingHelper;import org.json.JSONObject;import java.util.List;public class OrderExchangeWorker {    private  final static String nameSrvUrl="192.168.1.13:3030";    private  final static String returnProducerGroup="ReturnOrderDefaultCluster";              //返回给游戏平台    private final  static String returnNamespace="ReturnNameSpace";                            //返回给游戏平台    private  final static String returnTopicClass="returnOrder";                               //返回给游戏平台    private  final static String noticeProducerGroup="noticeOrderDefaultCluster";           //游戏平台发送过来    private final  static String noticeNamespace="noticeNameSpace";                        //返回给游戏平台    private final static String  noticeTopicClass="noticeOrder";                            //游戏平台发送给后台    private final static String user="admin001";    private final static String password="12345678";    public static boolean sendChannelOrderState(String tagsName ,String orderId, JSONObject sssData) throws Exception{        System.out.println(OrderExchangeWorker.nameSrvUrl);        DefaultMQProducer producer = new DefaultMQProducer(OrderExchangeWorker.returnNamespace,OrderExchangeWorker.returnProducerGroup,new AclClientRPCHook(new SessionCredentials(OrderExchangeWorker.user,OrderExchangeWorker.password)));        producer.setNamesrvAddr(OrderExchangeWorker.nameSrvUrl);        producer.start();        String bodyStr=sssData.toString();        Message msg = new Message(OrderExchangeWorker.returnTopicClass, tagsName,orderId , bodyStr.getBytes(RemotingHelper.DEFAULT_CHARSET));        SendResult sendResult = producer.send(msg);        System.out.println(sendResult.getSendStatus());        boolean isOk=false;        if(sendResult.getSendStatus().toString().equals("SEND_OK")){            isOk=true;        }        producer.shutdown();        return isOk;    }   static class  GetOrderMsgWorkerThread extends Thread{        //被动获取/*         public void run() {            System.out.println("asfasdf");            DefaultMQPushConsumer consumer = new DefaultMQPushConsumer(OrderExchangeWorker.noticeNamespace,OrderExchangeWorker.noticeProducerGroup, new AclClientRPCHook(new SessionCredentials(OrderExchangeWorker.user, OrderExchangeWorker.password)),new AllocateMessageQueueAveragely());            consumer.setNamesrvAddr(OrderExchangeWorker.nameSrvUrl);            consumer.setConsumeFromWhere(ConsumeFromWhere.CONSUME_FROM_FIRST_OFFSET);            consumer.setMessageModel(MessageModel.CLUSTERING);            try {                consumer.subscribe(OrderExchangeWorker.noticeTopicClass, "*");                consumer.registerMessageListener(new MessageListenerConcurrently() {                    @Override                    public ConsumeConcurrentlyStatus consumeMessage(List mgs, ConsumeConcurrentlyContext consumeconcurrentlycontext) {                        for (MessageExt s:mgs){                            try {                                System.out.println(s.getKeys() + "==被动==>" + new String(s.getBody())+s.getTags());                            }catch (Exception e){                                e.printStackTrace();                                Log.errorLog(e.getMessage());                                Log.errorLog(e.getStackTrace());                            }                        }                        System.out.println("*********************");                        return ConsumeConcurrentlyStatus.CONSUME_SUCCESS;                    }                });                consumer.start();            } catch (Exception e) {                e.printStackTrace();            }        }*/       //主动获取        private DefaultLitePullConsumer pullConsumer;        public GetOrderMsgWorkerThread () throws Exception{            this.pullConsumer=new DefaultLitePullConsumer(OrderExchangeWorker.noticeNamespace,OrderExchangeWorker.noticeProducerGroup,new AclClientRPCHook(new SessionCredentials(OrderExchangeWorker.user,OrderExchangeWorker.password)));            this.pullConsumer.setNamesrvAddr(nameSrvUrl);            this.pullConsumer.setConsumeFromWhere(ConsumeFromWhere.CONSUME_FROM_FIRST_OFFSET);            this.pullConsumer.setMessageModel(MessageModel.BROADCASTING);            //this.pullConsumer.setMessageModel(MessageModel.CLUSTERING);            System.out.println("=======>");            this.pullConsumer.subscribe(OrderExchangeWorker.noticeTopicClass,"*");            this.pullConsumer.start();        }        @Override        public void run() {            while (true){                try {                    //拉取消息,无消息时会阻塞                    List msgs = pullConsumer.poll();                    for (MessageExt s:msgs){                        try {                            System.out.println(s.getKeys() + "==主动拉取==>" + new String(s.getBody())+s.getTags());                        }catch (Exception e){                            e.printStackTrace();                            Log.errorLog(e.getMessage());                            Log.errorLog(e.getStackTrace());                        }                    }                    pullConsumer.commitSync();                    System.out.println("*********************");                }catch (Exception e){                    e.printStackTrace();                    Log.errorLog(e.getMessage());                    Log.errorLog(e.getStackTrace());                }            }        }    }}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值