Centos 7.3
RocketMQ 4.3.2

1.1、 第一步,去RocketMQ官网下载二进制的包,可以省去利用maven编译的麻烦。
1.2、在阿里云的管理控制台 进行安全组的配置, 打开10911 和 9876 端口。
1.3、 在服务器上使用unzip解压 jar包

2、配置与启动namesrv
因为我服务器时阿里云的学生服务器,内存较小,连namesrv都启动不起来,所以要调整
bin/ mqnamesrv.xml中的配置,将默认的内存调小一些:如果你的直接可以启动,可忽略此步
将原来的内存大小设置成如下即可

 <-XX:NewSize>256M</-XX:NewSize><-XX:MaxNewSize>512M</-XX:MaxNewSize><-XX:PermSize>128M</-XX:PermSize><-XX:MaxPermSize>128M</-XX:MaxPermSize>

然后启动namesrv 的命令

nohup sh bin/mqnamesrv &   // 这就启动了,可以在nohup中查看日志如下: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 release
Java HotSpot(TM) 64-Bit Server VM warning: UseCMSCompactAtFullCollection is deprecated and will likely be removed in a future release.
The Name Server boot success. serializeType=JSON  //  看到此即代表成功启动

3、 配置与启动broker
同样,启动之前得调整默认的内存配置 为如下大小即可这些配置文件都在 bin目录下:

runserver.sh中的内存配置
JAVA_OPT="${JAVA_OPT} -server -Xms256m -Xmx256m -Xmn128m -XX:MetaspaceSize=128m -XX:MaxMetaspaceSize=320m"runbroker.sh中的内存配置
JAVA_OPT="${JAVA_OPT} -server -Xms512m -Xmx512m -Xmn512m"

接着修改conf/broker.conf 中的配置
添加如下内容:

namesrvAddr = 你的服务器公网ip + 9876
brokerIP1 = 你的服务器公网ip

启动broker(因为在broker.conf中配置了ip,所以此处不用 -n ip+port )

nohup sh bin/mabroker -c conf/broker.conf &

可在nohup日志中查看到如下内容及带表成功:
The broker[broker-a, 服务器公网IP:10911] boot success. serializeType=JSON and name server is 服务器公网IP:9876

rocketmq有默认的已经创建好了的主题TopicTest
如果想自己创建如下: -n 绑定的namesrv地址 -t 名字 -c 默认的组名

``
./mqadmin updateTopic -n 公网ip+9876 -t 主题的名字 -c DefaultCluster
如果没有错误,会提示你 topic create success

接下来就是在本地的代码编写了
首先我用的是springboot的环境,需要导入rocketmq相关依赖```java
<dependency><groupId>org.apache.rocketmq</groupId><artifactId>rocketmq-client</artifactId><version>4.3.2</version>
</dependency>
public class MqProducer {public static void main(String[] args)  {DefaultMQProducer producer = new DefaultMQProducer("producer1");//NameServer的地址必须有//设置NameServer地址,此处应改为实际NameServer地址,多个地址之间用;分隔producer.setNamesrvAddr("服务器公网ip:9876");producer.setSendMsgTimeout(7000); // 默认的超时时间是3s, 但是因为我的网络带宽不够,必须设置大一些,不然会报超时异常。        //调用start()方法启动一个producer实例producer.start();for (int i = 0; i < 10; i++) {Message msg = new Message("TopicTest",// topic 可以填TopicTtest 或者是你自己创建的主题"TagA",// 标题("Hello RocketMQ " + i).getBytes("utf-8")//消息内容);//调用producer的send()方法发送消息//这里调用的是同步的方式,所以会有返回结果SendResult sendResult = producer.send(msg);// System.out.println(sendResult.getSendStatus()); //发送结果状态//打印返回结果,可以看到消息发送的状态以及一些相关信息System.out.println(sendResult);}producer.shutdown();}
}
public class MqConsumer {public static void main(String[] args) {DefaultMQPushConsumer consumer = new DefaultMQPushConsumer("consumer_group");consumer.setNamesrvAddr("服务器公网ip:9876");try {consumer.subscribe("TopicTest", "*");// 接受该主题下的所有标题的信息consumer.registerMessageListener(new MessageListenerConcurrently() {@Overridepublic ConsumeConcurrentlyStatus consumeMessage(List<MessageExt> list,ConsumeConcurrentlyContext consumeConcurrentlyContext) {System.out.printf(Thread.currentThread().getName() + "Receive New Messages :"+ new String(list.get(0).getBody()) + "%n");return ConsumeConcurrentlyStatus.CONSUME_SUCCESS;}});consumer.start();} catch (MQClientException e) {e.printStackTrace();}}
}

遇到的问题:

1、 No route info of this topic, xxx 无路由信息

org.apache.rocketmq.client.exception.MQClientException: No route info of this topic, xxx
See http://rocketmq.apache.org/docs/faq/ for further details.解决:如果在producer中添加了此配置,请去掉
producer.setCreateTopicKey("AUTO_CREATE_TOPIC_KEY"); //不能添加此配置

2、 发送超时 sendDefaultImpl call timeout

sendDefaultImpl call timeout   发送消息超时解决:producer 默认的超时时间为3000, 如果你的网络代码不够,可以将它调大一些
producer.setSendMsgTimeout(7000);

RockteMQ阿里云服务器部署以及遇到的问题相关推荐

  1. 搭建前后端分离主流项目完整步骤——在线教育系统(阿里云服务器部署上线)

    前言: 需要源码评论或私我 项目技术栈如下图所示: 本次博客分前后端+部署服务器三个步骤来写 先来看看实现效果: 在线教育系统完整三步骤 前言: 一.后端技术栈 1.ssm+mysql: (1)map ...

  2. win系统的阿里云服务器部署IDEASpringBoot项目保姆级教程

    win系统的阿里云服务器部署SpringBoot项目保姆级教程 前言 配置阿里云服务器 配置环境 环境配置中的坑 还有别的坑的话,私信我我补充......毕竟配置是最基本的,还想咋样... jar包导 ...

  3. 阿里云服务器部署StreamX

    阿里云服务器部署StreamX 部署步骤在StreamX官网都有,还有开发环境的介绍.在此记录下具体的操作步骤. 阿里云服务器配置 StreamX是运行在linux上,访问需要通过外网访问到阿里云服务 ...

  4. 阿里云服务器部署个人网盘服务

    阿里云服务器部署个人网盘服务 相关资源: kiftd : https://github.com/KOHGYLW/kiftd 1.安装JAVA运行环境 yum install java-11-openj ...

  5. 阿里云服务器部署网站(保姆级教程) 阿里云搭建宝塔面板 云服务器ECS搭建网站

    阿里云服务器部署网站 这两天白嫖了一个免费的云服务器就想着自己建个网站,以前用过轻量级服务器,那个搭建起来比较容易,现在用的是云服务器ECS ,第一次接触,因为以前没做过,想在网上找找教程,结果教程五 ...

  6. 现代软件工程_团队项目_阿尔法阶段_阿里云服务器部署_2017.11.24

    阿里云服务器部署 目录 购买阿里云学生服务器 服务器链接 XMAPP建站集成软件 网站移植 端口开通 阿里云服务器 阿里云服务器(Elastic Compute Service, ECS)是一种处理能 ...

  7. 项目部署之PHPEMS在线模拟考试系统(亲测有效,含php源码)在阿里云服务器部署

    PHPEMS在线模拟考试系统阿里云服务器部署 相信好多人都在找这个源码哈,小编也是一样,也有一个很大的梦想,就是能把我们这些英雄豪杰集中在一起,比如说这个在线考试系统就可以实现,可以在上面把所有的运维 ...

  8. 阿里云服务器部署MySQL所报的错误集锦(操作系统:CentOS 8)

    阿里云服务器部署MySQL所报的错误集锦(操作系统:CentOS 8) 1.Error: Transaction test error: 当遇到这种错误,执行以下代码: [root@root /]# ...

  9. 阿里云服务器部署项目

    在阿里云服务器上部署自己的项目 小伙伴们是不是想部署自己的项目到服务器上,让自己的朋友,还有广大的网友看到自己的网站呢?下面我就把部署项目到服务器的方法写下来给大家,希望可以帮到有需要的人!!! 前期 ...

最新文章

  1. Linux下图解minicom安装
  2. SIGIR 2019 | 为什么你的毛衣显胖又显黑?这个算法给你答案
  3. Start here: portal to the lectures
  4. 【算法】Bellman-Ford算法(单源最短路径问题)(判断负圈)
  5. 数据库编程起别名的3中方式
  6. JavaScript基础 -- js常用内置方法和对象
  7. Maigo的KM算法讲解
  8. ERP项目实施记录08
  9. 网络管理之SNMP协议
  10. 【操作系统】结合哲学家进餐问题分析如何预防死锁
  11. adrunio蜂鸣器音乐(天空之城)c调
  12. 广播电台常用51首背景音乐~甘醇永久
  13. moc3041光耦驱动bta12一直导通
  14. 影视文件下载,合并,修复,转换…
  15. 高德地图大头针功能_有关于高德地图的大头针下落动画。还有就是高德地图的设置...
  16. Hbuilder 连接夜神模拟器
  17. 录屏的知识片段的记录与理解
  18. Google chrome谷歌浏览器,打开后是百度搜索或其他搜索怎么办?
  19. 又酸啦!华为「天才少年」校招薪资曝光....
  20. 一天 第一章 花在花苞未有泪,人见不识无言对

热门文章

  1. 枪神丛林奇兵Java_Win10系统怎么配置Java环境变量?
  2. 卡尔曼滤波simulink模型_电池管理系统---Simulink源码/资料分享及Live 介绍
  3. 手把手教你做键盘记录器
  4. 安卓getSharedPreferences 与 getPreferences 与getDefaultSharedPreferences的区别
  5. python plt可视化——打印特殊符号和制作图例
  6. 华为mate30鸿蒙版,鸿蒙系统+EMUI11版华为Mate40 Pro,华为Mate30更加悲惨价格骤降
  7. 靠推广电话卡月入过万,适合新人小白实操的好项目,保姆级教程分享
  8. Iframe用法的详细讲解(属性、透明、自适应高度)和html中滚动条属性设置
  9. 飞翔机器人动态壁纸_长臂机器人(HandyBot)官方下载_长臂机器人官方安卓v1.0下载_快吧游戏...
  10. 文件夹隐藏属性去不掉的原因及解决方法