
[RocketMQ]
RocketMQ
我能在河边钓一整天的鱼
欢迎来到我的酒馆
展开
-
什么是消息队列MQ?
目录什么是MQAMQP和JMS什么是MQMQ即消息队列。消息队列是典型的:生产者、消费者模型。生产者不断向消息队列中生产消息,消费者不断的从队列中获取消息。因为消息的生产和消费都是异步的,而且只关心消息的发送和接收,没有业务逻辑的侵入,这样就实现了生产者和消费者的解耦。AMQP和JMSMQ是消息通信的模型,并不是具体实现。现在实现...原创 2020-02-19 20:33:17 · 476 阅读 · 0 评论 -
基于RocketMQ实现分布式WebSocket通信
目录分布式的WebSocket方案实现分布式消息发送导入RocketMQ相关依赖添加RocketMQ配置修改MessageHandler类序列化MessageID执行启动类实现分布式消息接收修改MessageHandler类启动测试,发送消息分布式的WebSocket方案分布式的WebSocket布置了多态socket服务端,并且所有...原创 2020-04-04 10:22:58 · 7008 阅读 · 1 评论 -
如何通过maven把github中的项目构建成jar包
目录需求详解下载rocketmq-spring项目使用maven构建jar包在项目中使用jar包需求详解我们的本地maven仓库会随着项目中pom文件引用的逐渐增多,而下载越来越多的依赖。这些依赖通常都是以jar包的形式存在于仓库中。但是有些我们需要的依赖并没有存在于maven的中央仓库,也就是无法通过pom文件的形式下载jar包。这个时候就需要我们自己下载...原创 2020-04-03 21:17:50 · 1614 阅读 · 0 评论 -
SpringBoot整合RocketMQ
环境搭建导入依赖 <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>2...原创 2020-04-04 08:38:50 · 472 阅读 · 0 评论 -
使用Ubuntu16.04搭建RocketMQ集群(2主2从)
创建2个master创建第一个nameserverdocker create -p 9876:9876 --name rmqserver01 \-e "JAVA_OPT_EXT=-server -Xms128m -Xmx128m -Xmn128m" \-e "JAVA_OPTS=-Duser.home=/opt" \-v /haoke/rmq/rmqserver01...原创 2020-04-03 12:01:38 · 473 阅读 · 0 评论 -
RocketMQ的集群模式
错误的集群部署方式在生产环境中,RocketMQ常被用于集群化部署,但是有一种部署方式却是错误的。即多主无从如图,有2个主broker。如果2个broker中都已经存储了不同的消息,这时其中一个broker崩了,那么这个broker里面的数据就会丢失,消费者无法从其他的broker中获取所需的数据正确的集群部署方式多主多从这种方式避免...原创 2020-04-02 19:27:51 · 484 阅读 · 0 评论 -
RocketMQ之错误消息重试策略
目录什么是重试策略?producer端重试consumer端重试exceptiontimeout什么是重试策略?在消息的发送和消费过程中,都有可能出现错误,如网络异常。出现了错误就需要进行错误重试,这种消息的重试需要分为2种,分别是producer端重试和consumer端重试注意:如果第一条消息发送失败,重试时会发送一条新的和上一条内容一样的消息...原创 2020-04-02 17:30:23 · 909 阅读 · 0 评论 -
RocketMQ之消息的存储
目录简介消息存储的位置同步刷盘与异步刷盘简介RocketMQ中的消息数据存储,采用零拷贝的技术(mmap+write方式),文件系统采用Linux Ext4文件系统进行存储。消息存储的位置在RocketMQ中,消息数据量保存在磁盘文件中,为了保证写入的性能,RocketMQ尽可能地保证顺序写入,顺序写入比随机写入的效率高很多Rock...原创 2020-03-21 16:42:16 · 566 阅读 · 0 评论 -
RocketMQ之重复消息的解决方案
网络不可达是造成消息重复的根本原因,但这种情况无法避免。当消费端收到两个一样的消息时,应该如何处理呢?1.消费端处理消息的业务逻辑保持幂等性原理是只要第二三四条消息执行时对项目不会造成影响,那么就不需要去管它。例如此消息为判断true或false2.保证每条消息都有唯一编号且保证消息处理成功与去重表的日志同时出现。原理是利用一张日志表来记录已经处理成功的消息ID,如果新来的...原创 2020-03-21 16:23:35 · 1386 阅读 · 0 评论 -
RocketMQ之消息队列模式
什么是消息模式当消息队列发送消息时,其实是发送给一个ConsumerGroup(消费者组),很多时候消费者组不是只有一个消费者。那么消息队列就要根据集群模式或广播模式两种方法,来决定如果把消息发送给多个消费者。集群模式同一个消费者组里的每一个Consumer只消费所订阅消息的一部分内容,同一个消费者组里所有消费者内容合起来才是所订阅Topic内容的整体,从而达到负载...原创 2020-03-21 16:16:17 · 1054 阅读 · 0 评论 -
RocketMQ之消费者获取消息的两种模式
Push&Pullpush:客户端与服务器建立连接后,当服务器有消息时,服务器将消息推送到客户端pull:客户端不断轮询请求服务端,来获取新的消息RocketMQ中的Push&PullRocketMQ中都是采取消费端主动拉取的方式,即consumer轮询从broker中拉取消息。原因是服务器如果主动给客户端推送消息的话,当客户端...原创 2020-03-21 15:57:47 · 2485 阅读 · 0 评论 -
RocketMQ之分布式事务消息
目录什么是分布式事务消息HalfMessage(半消息)Message Status Check(消息回查)分布式消息的执行原理模拟事务正常执行的功能模拟事务失败执行的功能模拟消息回查执行的功能什么是分布式事务消息聊什么是事务,最经典的例子就是转账操作,用户A转账给用户B1000元的过程如下:用户A发起转账请求,用户A账户减去1000元...原创 2020-03-21 13:24:51 · 382 阅读 · 0 评论 -
RocketMQ之消息的顺序发送与消费
目录顺序消息生产者消费者顺序消息在某些业务中,consumer在消费消息时,是需要按照生产者发送消息的顺序进行消费的,比如在电商系统中,订单的消息,会有创建订单、订单支付、订单完成,如果消息的顺序发生改变,那么这样的消息就没有意义了。(想实现订单的需求,生产时必须让每一笔订单单独存在于一个队列中,消费时在指定队列中按顺序消费)生产者在代码中...原创 2020-03-21 11:48:16 · 420 阅读 · 0 评论 -
RocketMQ之消息的多种订阅方式&消息过滤器
目录消息的消费(订阅全部)消息的消费(订阅指定操作)消息过滤器消息的消费(订阅全部)订阅时,我们设置通配符“*”意味订阅topic匹配的全部消息package cn.itcast.rocketmq.consumer;import org.apache.rocketmq.client.consumer.DefaultMQPushConsumer;imp...原创 2020-03-21 10:16:54 · 3168 阅读 · 0 评论 -
RocketMQ之手动创建Topic、发送消息(同步&异步)
目录手动创建topic发送消息(同步)发送消息(异步)手动创建topictopic是broker中的一个个分组,如果设置topic自动创建的话如果创建多了,可能会影响电脑的运行速度,所以我们来手动创建。首先我们先在Demo项目中新建一个TopicDemo类,关于Demo项目的搭建在这篇博客中有提到https://blog.youkuaiyun.com/Delici...原创 2020-03-20 22:34:13 · 9599 阅读 · 1 评论 -
部署RocketMQ的可视化管理工具rocketmq-console
下载rocketmq-console镜像docker pull styletang/rocketmq-console-ng:1.0.0创建并启动容器docker run -e "JAVA_OPTS=-Drocketmq.namesrv.addr=192.168.62.132:9876 -Dcom.rocketmq.sendMessageWith...原创 2020-03-19 22:59:10 · 421 阅读 · 1 评论 -
基于Docker安装RocketMQ4.3.2
目录拉取镜像创建nameserver容器创建broker容器启动容器测试消息是否可以发送成功拉取镜像我们拉取的不是官方提供的rocketmq,而是一个哥们自己整个的rocketmq版本。之所以不选择官方提供的最主要原因是,官方提供的版本有很多配置地方比较麻烦,这哥们整合的更好一些。docker pull foxiswho/rocketmq:serv...原创 2020-03-19 22:15:28 · 894 阅读 · 1 评论 -
使用Ubuntu16.04安装RocketMQ4.3.2(不使用Docker)
解压安装包我们把下载好的安装包放到项目文件夹中解压cd /haokeunzip rocketmq-all-4.3.2-bin-release.zip启动nameservercd rocketmq-all-4.3.2-bin-release/bin/./mqnamesrv但是我们发现启动失败,从报错信息可...原创 2020-03-19 20:32:23 · 712 阅读 · 0 评论 -
什么是RocketMQ?
RocketMQ简介Apache RocketMQ是一个采用Java语言开发的分布式的消息系统,由阿里巴巴团队开发,与2016年底贡献给Apache,成为Apache的一个顶级项目。在 2017 年的双十一当天,整个阿里巴巴集团通过 RocketMQ 流转的线上消息达到了 万亿级,峰值 TPS 达到5600 万,在阿里大中台策略上发挥着举足轻重的作用 。Roc...原创 2020-03-19 15:21:00 · 756 阅读 · 0 评论