1、 先解压

2、 maven编译安装、(注意虚拟机采用nat网络模式,需要联网)

mvn -Prelease-all -DskipTests clean install -U

启动nameser节点

启动broker

nohup sh bin/mqbroker -n localhost:9876 & tail -f namesrv.log

出错,

修改内存配置

修改为

修改broken

这里我吃了大亏,主机对虚拟机中的端口访问不通!!!

注意一定要关闭防火墙,或者开启9876等需要使用的端口,不然无法远程调用!

再次启动

nohup bin/mqnamesrv > namesrv.log 2>&1 & tail -f namesrv.log

nohup bin/mqbroker -n 127.0.0.1:9876 > broker.log 2>&1 & tail -f broker.log

、、测试案例

这个是官网的,其实这个无所谓,等会使用代码远程发送订单

> export NAMESRV_ADDR=localhost:9876

> sh bin/tools.sh org.apache.rocketmq.example.quickstart.Producer

停止服务,这个也无所谓,实在不行直接 kill -9 pid  吧进程杀死也是可以的

来,开始发送第一单!!!

package tttt.mq;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.common.RemotingHelper;
import org.junit.Test;public class MqProductTest {@Testpublic void test1() {DefaultMQProducer producer = new DefaultMQProducer("xiaof_test");producer.setNamesrvAddr("192.168.0.128:9876");try {producer.start();for (int i = 0; i < 2; i++)try {{Message msg = new Message("Topic1", "TagA", "OrderID188","Hello world".getBytes(RemotingHelper.DEFAULT_CHARSET));
//                      SendResult sendResult = producer.send(msg);
//                      System.out.printf("%s%n", sendResult);producer.sendOneway(msg);}} catch (Exception e) {e.printStackTrace();}} catch (MQClientException e) {e.printStackTrace();} finally {producer.shutdown();}}}

  

解压来,我们消费掉这个

package tttt.mq;import java.util.List;
import java.util.concurrent.atomic.AtomicLong;import org.apache.rocketmq.client.consumer.DefaultMQPushConsumer;
import org.apache.rocketmq.client.consumer.listener.ConsumeOrderlyContext;
import org.apache.rocketmq.client.consumer.listener.ConsumeOrderlyStatus;
import org.apache.rocketmq.client.consumer.listener.MessageListenerOrderly;
import org.apache.rocketmq.client.exception.MQClientException;
import org.apache.rocketmq.common.consumer.ConsumeFromWhere;
import org.apache.rocketmq.common.message.MessageExt;
import org.junit.Test;public class MqConsumeTest {@Testpublic void test1() {DefaultMQPushConsumer consumer = new DefaultMQPushConsumer("xiaof_test");consumer.setNamesrvAddr("192.168.0.128:9876");consumer.setConsumeFromWhere(ConsumeFromWhere.CONSUME_FROM_FIRST_OFFSET);try {consumer.subscribe("Topic1", "TagA");consumer.registerMessageListener(new MessageListenerOrderly() {AtomicLong consumeTimes = new AtomicLong(0);@Overridepublic ConsumeOrderlyStatus consumeMessage(List<MessageExt> msgs, ConsumeOrderlyContext context) {//这个要是false,服务器就会不断重复发送消息context.setAutoCommit(true);MessageExt msg = msgs.get(0);String data = new String(msg.getBody());System.out.printf("%s 消费信息线程与数据: %s %n", Thread.currentThread().getName(), data);this.consumeTimes.incrementAndGet();if ((this.consumeTimes.get() % 2) == 0) {return ConsumeOrderlyStatus.SUCCESS;} else if ((this.consumeTimes.get() % 3) == 0) {return ConsumeOrderlyStatus.ROLLBACK;} else if ((this.consumeTimes.get() % 4) == 0) {return ConsumeOrderlyStatus.COMMIT;} else if ((this.consumeTimes.get() % 5) == 0) {context.setSuspendCurrentQueueTimeMillis(3000);return ConsumeOrderlyStatus.SUSPEND_CURRENT_QUEUE_A_MOMENT;}return ConsumeOrderlyStatus.SUCCESS;}});consumer.start();System.out.printf("Consumer Started.%n");} catch (MQClientException e) {e.printStackTrace();}}
}

  

来一发效果:

这个是消费msg中的全部信息:

转载于:https://www.cnblogs.com/cutter-point/p/8325959.html

【rocketMQ】1、搭建MQ服务器,生产一个订单与消费一个订单相关推荐

  1. nodejs快速搭建MQTT服务器

    简介 MQTT(消息队列遥测传输)是ISO 标准(ISO/IEC PRF 20922)下基于发布/订阅范式的消息协议.它工作在TCP/IP协议族上,是为硬件性能低下的远程设备以及网络状况糟糕的情况下而 ...

  2. 用vlc搭建流媒体服务器

    用vlc搭建流媒体服务器 作者:axu82119 来源:CSDN知识库 VLC是一种开源的播放器,同时也可以用作流媒体服务器.今天试验了几种搭建流媒体服务器的方法,这里做一个归纳总结. 本文使用的VL ...

  3. 【转载】使用花生壳5.0在自己电脑上搭建FTP服务器

    一直感觉用QQ和微信在多终端间传文件较麻烦,就在自己的电脑上鼓捣了FTP服务器,记录一下在花生壳官网上找到的攻略 1.下载.安装.登录花生壳5.0客户端并注册账号申请域名 登录账号后 点击域名, 然后 ...

  4. 从零搭建基于 Java 的服务器生产环境

    之前的文章介绍了我最近开发的一款工具软件 移动工具箱,然而安装包放在华为应用市场上面,如果不安装华为应用市场就无法下载软件,无奈,只能自己从零搭建一个服务器来进行应用的宣传和下载.搭建一个服务器是很简 ...

  5. 搭建github服务器_搭建一个属于自己的公网博客

    相信每一位程序员都喜欢拥有一个属于自己的博客. 当然,在我认为,内容以及模块都要自己进行可扩展定义才是真正属于自己的. 那么想要一个博客就必须要有一个服务器和一个域名,这样的话才能让自己的博文内容发扬 ...

  6. caffe 搭建参数服务器(1)—— 用MPI实现多节点同时训练一个模型

    实现的训练过程的效果 因为主要目的是为了节点通讯,所以其他地方没改,下图是四个节点训练过程 1. 目的 使用OpenMPI进行节点间的通讯,搭建参数服务器,实现4节点同时训练一个模型 2. 思路 采用 ...

  7. 小程序服务器搭建前后端交互,手把手带你搭一个简单的微信小程序(包括前后端)...

    开发小程序除了大家能看到的客户端,前端小程序是如何与后端服务器进行数据交互的呢? 本文将通俗易懂的讲一下.这里以nodejs为例来进行讲解 1.首先要在服务器上安装nodejs服务器: ​ wget ...

  8. 使用DDNS搭建Wireguard服务器的一个小问题

    使用DDNS搭建Wireguard服务器的一个小问题 遇到的问题 解决方案 批处理脚本代码 最近使用家里闲置的树莓派搭建了一个Wireguard服务器. 家里电信宽带有动态公网IP,阿里云买个冷门域名 ...

  9. 基于ESP32搭建物联网服务器十三(自已搭建一个MQTT服务器)

    在之前的文章中:ESP32搭建WEB服务器十二(使用MQTT协议与ESP32互动)_你的幻境的博客-CSDN博客 我们已经实现了ESP32通过MQTT协议连接到公共MQTT服务器上,但是公共服务器在稳 ...

最新文章

  1. 浏览器tab关闭事件_Python--使用Pyqt5实现简易浏览器(最新版本测试过)
  2. html中引入ifrim视频,Making Of Rallypoint - Outer Rim
  3. sQLserver T-SQL 事务的用法
  4. ios点击大头针气泡不弹出_百度地图使用(二)自定义大头针和弹出气泡
  5. JavaSE(二十四)——冒泡排序、选择排序、直接插入排序以及二分查找
  6. 通过jsp向mysql批量导入数据_JSP+Servlet+C3P0+Mysql实现的图书馆管理系统
  7. YApi--使用YApi的目的
  8. 桶排序Bucket sort(转)
  9. final可以修饰哪些java名词_Java关键知识点 - Java final关键字到底修饰了什么?
  10. 三绕组变压器参数计算matlab,三绕组变压器等值参数计算
  11. Excel如何批量设置行高
  12. 支付宝api全(支付宝支付(app,h5,js),支付宝订单查询,支付宝退款,支付宝交易退款查询,支付宝提现,支付宝提现查询)
  13. 量子物理史话 第四章 白云深处
  14. 一篇文让你看懂NB-IoT、LoRa、eMTC、Sigfox及ZigBee的应用场景【转】
  15. STM32【复习串口】
  16. 07_02Redis
  17. android 手势识别代码
  18. Linux内存管理内存映射以及通过反汇编定位内存错误问题
  19. 阿里云虚拟云主机使用PHPMailer无法发送邮件的问题
  20. 10月17日科技资讯|拼多多用户超 4 亿;苹果欲研发“智能戒指”;MySQL 8.0.18 稳定版发布 | 极客头条

热门文章

  1. PHP中Cookie的使用
  2. HDU - 3790 最短路径问题
  3. 动态库在不同操作系统中的不同意义
  4. C Primer Plus 第9章 函数 9.4 多源代码文件程序的编译
  5. createSQLQuery与createQuery的区别
  6. 关于用 MySQL 存储 Emoji
  7. [20150518]关于块转储问题2.txt
  8. Virtual Machine Manager 2012 R2利用服务模板部署DC
  9. 北京欢迎你 (歌词)
  10. Jest中Mock网络请求