rocketmq

RocketMQ 消息队列单机部署及使用

你。 提交于 2020-01-29 09:02:03
转载请注明来源: http://blog.csdn.net/loongshawn/article/details/51086876 相关文章: 《RocketMQ 消息队列单机部署及使用》 《 java编写简单消息队列。实现高德坐标变形服务》 0 RocketMQ简单介绍 0.1 介绍 RocketMQ是一个消息中间件。 消息中间件中有两个角色:消息生产者和消息消费者。RocketMQ里相同有这两个概念。消息生产者负责创建消息并发送到RocketMQ服务器。RocketMQ服务器会将消息持久化到磁盘,消息消费者从RocketMQ服务器拉取消息并提交给应用消费。 0.2 特点 RocketMQ是一款分布式、队列模型的消息中间件,具有下面特点: 支持严格的消息顺序 支持Topic与Queue两种模式 亿级消息堆积能力 比較友好的分布式特性 同一时候支持Push与Pull方式消费消息 历经多次天猫双十一海量消息考验 0.3 部署结构 上图所看到的为RocketMQ的部署结构,图中Meta字样为RocketMQ早期代号。 1 RocketMQ 消息队列单机部署 1.1 系统配置环境 主机:Linux 内存:8G 硬盘:250G CPU:4核 1.2 须要用到的软件包和文档 眼下在Github上可下载最新的安装包alibaba-rocketmq-3.2.6.tar 下载地址: https:/

rocketMQ之七 延时任务

爱⌒轻易说出口 提交于 2020-01-29 03:49:27
延时任务 延时生产者 延时任务无法指定任意时间延迟,只能设置几个固定的延时等级,从1s到2h分别是1到18 public class ScheduledMessageProducer { public static void main(String[] args) throws Exception { //初始化生产者 DefaultMQProducer producer = new DefaultMQProducer("producer_group"); //指定nameServer地址 producer.setNamesrvAddr("localhost:9876"); //启动 producer.start(); int totalMessagesToSend = 100; for (int i = 0; i < totalMessagesToSend; i++) { //创建消息,指定topic,tag和消息体 Message msg = new Message("topicList", "tag", ("rocketMQ" + i).getBytes(RemotingHelper.DEFAULT_CHARSET)); msg.setDelayTimeLevel(4); //发送并有result返回,可根据result判断发送是否成功,第二个参数是队列选择器

SpringBoot学习笔记十五:springBoot整合RocketMQ

▼魔方 西西 提交于 2020-01-28 18:10:33
1. SpringBoot学习笔记十五:springBoot整合RocketMQ 文章目录 1. SpringBoot学习笔记十五:springBoot整合RocketMQ 1.1. RocketMQ简介 1.1.1. 概念 1.2. linux安装rocketMQ 1.3. 安装rocketMQ的可视化控制台 1.4. 阿里云配置RocketMQ(已经安装好jdk8) 1.5. SpringBoot2.x整合rocketMq 1.5.1. springBoot2.x开发rocketmq的生产者 1.5.2. springBoot2.x开发消息队列的消费者 1.6. RocketMQ大致流程 1.7. 常见问题处理 1.1. RocketMQ简介 是阿里巴巴的开源框架 在高压下1毫秒内响应延迟超过99.6% 适合金融性业务,高可用的跟踪和审计功能。 支持发布订阅模型,和点对点模式 支持拉pull和推push两种消息模式 单一队列百万消息 支持单master节点,多master节点,多master和slave节点 1.1.1. 概念 Producer:消息生产组 ProducerGroup:消息生产组,发送同类消息的一个消息生产组 Consumer:消费者 ConsumerGroup:消费同一个消息的多个实例 Tag:标签,子主题,用于区分同一个主题下的不同业务的消息。 Topic

RockerMq之事务消息

倾然丶 夕夏残阳落幕 提交于 2020-01-28 18:09:59
本篇博客的RocketMq版本为4.3.0,首先附上RocketMq事务消息的流程图,以下的实践也都是基于此流程图 生产端项目 RocketMqConfig配置生产者 package com.yj.producer.config; import org.apache.rocketmq.client.producer.TransactionMQProducer; import org.springframework.beans.factory.annotation.Value; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import com.yj.producer.listener.MyTransactionListener; @Configuration public class RocketMqConfig { @Value("${rocketmq.producer.groupName}") private String producerGroupName; @Value("${rocketmq.namesrv.addr}") private String nameServerAddress;

RocketMQ集群搭建

走远了吗. 提交于 2020-01-26 18:58:31
1 、 RocketMQ 介绍 1.1. 简介 RocketMQ 是一款分布式、队列模型的消息中间件,具有以下特点: 能够保证严格的消息顺序 提供丰富的消息拉取模式 高效的订阅者水平扩展能力 实时的消息订阅机制 亿级消息堆积能力 选用理由: 强调集群无单点,可扩展,任意一点高可用,水平可扩展。 海量消息堆积能力,消息堆积后,写入低延迟。 支持上万个队列 消息失败重试机制 消息可查询 开源社区活跃 成熟度(经过双十一考验) 1.2. 关键概念 1.2.1. 主题与标签 主题Tpoic:第一级消息类型,书的标题 标签Tags:第二级消息类型,书的目录,可以基于Tag做消息过滤 例如: 主题:订单交易 标签:订单交易-创建 订单交易-付款 订单交易-完成 1.2.2. 发送与订阅群组 生产组: 用于消息的发送。 消费组: 用于消息的订阅处理。 生产组和消费组,方便扩缩机器,增减处理能力,集群组的名字,用于标记用 途中的一员。每次只会随机的发给每个集群中的一员。 2 、 RocketMQ 集群方式 推荐的几种 Broker 集群部署方式,这里的Slave 不可写,但可读,类似于 Mysql 主备方式。 2.1.单个 Master 这种方式风险较大,一旦Broker 重启或者宕机时,会导致整个服务不可用,不建议线上环境使用。 2.2.多 Master 模式 一个集群无 Slave,全是

RocketMQ知识点汇总

流过昼夜 提交于 2020-01-26 14:02:18
目录 消息队列功能 解耦 异步 流量削峰 消息分发 不同类型的消费者 推模型DefaultMQPushConsumer 推模型实现原理 推模型流量控制 拉模型DefaultMQPullConsumer 拉模型的操作方式 不同类型的生产者 DefaultMQProducer 同步发送 异步发送 单向发送 延迟消息 分布式消息队列的协调者 NameServer 的功能 集群状态的存储结构 为何不用ZooKeeper 消息存储结构 顺序写 随机读 零拷贝 高可用 消费端的高可用 发送端的高可用 刷盘方式 异步刷盘 同步刷盘 配置方式 主从复制方式 同步复制 异步复制 配置方式 刷盘、主从复制方式小结 顺序消息 全局顺序消息 部分顺序消息 发送端 消费端 消息重复 消息优先级 创建多个Topic 创建多个MessageQueue 吞吐量优先 在Broker端进行消息过滤 通过Tag进行过滤 通过SQL表达式进行过滤 通过FilterServer进行过滤 提高Consumer处理能力 增加Consumer实例数量,增加消费线程数量 以批量方式消费 跳过非重要消息 提高Producer发送速度 通过OneWay方式发送 多个Producer同时发送 消息发送超时 消费失败 并发消费失败 顺序消费失败 死信队列 消息队列功能 解耦 异步 流量削峰 消息分发 消息分发如下,各个子系统(消费者组

rocketmq-4.6.0-简单消息示例

ε祈祈猫儿з 提交于 2020-01-24 16:21:34
rocketmq-4.6.0-简单消息示例 使用RocketMQ以三种方式发送消息:可靠的同步,可靠的异步和单向传输。 使用RocketMQ消费消息 添加maven依赖 < dependency > < groupId > org.apache.rocketmq </ groupId > < artifactId > rocketmq-client </ artifactId > < version > 4.3.0 </ version > </ dependency > 2.1同步发送消息 对于重要的通知消息,如SMS通知,SMS营销系统等广泛的场景中使用可靠的同步传输。 public class SyncProducer { public static void main ( String [ ] args ) throws Exception { //Instantiate with a producer group name. DefaultMQProducer producer = new DefaultMQProducer ( "please_rename_unique_group_name" ) ; // Specify name server addresses. producer . setNamesrvAddr ( "localhost:9876" ) ; /

关于ActiveMQ、RocketMQ、RabbitMQ、Kafka的区别

二次信任 提交于 2020-01-24 15:02:16
综合上面的材料得出以下两点: (1)中小型软件公司,建议选RabbitMQ.一方面,erlang语言天生具备高并发的特性,而且他的管理界面用起来十分方便。正所谓,成也萧何,败也萧何!他的弊端也在这里,虽然RabbitMQ是开源的,然而国内有几个能定制化开发erlang的程序员呢?所幸,RabbitMQ的社区十分活跃,可以解决开发过程中遇到的bug,这点对于中小型公司来说十分重要。不考虑rocketmq和kafka的原因是,一方面中小型软件公司不如互联网公司,数据量没那么大,选消息中间件,应首选功能比较完备的,所以kafka排除。不考虑rocketmq的原因是,rocketmq是阿里出品,如果阿里放弃维护rocketmq,中小型公司一般抽不出人来进行rocketmq的定制化开发,因此不推荐。 (2)大型软件公司,根据具体使用在rocketMq和kafka之间二选一。一方面,大型软件公司,具备足够的资金搭建分布式环境,也具备足够大的数据量。针对rocketMQ,大型软件公司也可以抽出人手对rocketMQ进行定制化开发,毕竟国内有能力改JAVA源码的人,还是相当多的。至于kafka,根据业务场景选择,如果有日志采集功能,肯定是首选kafka了。具体该选哪个,看使用场景。 使用场景: 在我们的电商中,在发送短信和商品上下架的时候使用了rebbitMQ 来源: CSDN 作者:

RabbitMQ核心组件及应用场景

雨燕双飞 提交于 2020-01-24 01:54:03
一、适用场景 1.解耦 2.最终一致性 3.广播 4.错峰与流控(秒杀业务用于流量削峰场景) 秒杀场景 二、核心组件,关键点(交换器、队列、绑定) AMPQ消息路由必要三部分:交换器、队列、绑定。 Java核心组件:ConnectionFactory、Connection、Channel、Delivery、DeliverCallback、CancelCallback 队列 1. 建立连接 ConnectionFactory factory = new ConnectionFactory(); factory.setHost("127.0.0.1"); factory.setPort(5672); factory.setUsername("admin"); factory.setPassword("admin"); Connection connection = factory.newConnection(); Channel channel = connection.createChannel(); 2. 声明队列 如果在同一条信道上订阅了另一个队列,那就不能再声明队列,必须先取消订阅。 Queue.DeclareOk queueDeclare(String queue, boolean durable, boolean exclusive, boolean autoDelete,

SpringBoot整合阿里RocketMQ

六眼飞鱼酱① 提交于 2020-01-23 23:58:02
什么是RocketMQ 阿里消息队列 RocketMQ版既可为分布式应用系统提供异步解耦和削峰填谷的能力,同时也具备互联网应用所需的海量消息堆积、高吞吐、可靠重试等特性,同时是收费的产品。 应用场景 削峰填谷 诸如秒杀、抢红包、企业开门红等大型活动时皆会带来较高的流量脉冲,或因没做相应的保护而导致系统超负荷甚至崩溃,或因限制太过导致请求大量失败而影响用户体验,消息队列 RocketMQ 版可提供削峰填谷的服务来解决该问题。 异步解耦 交易系统作为淘宝/天猫主站最核心的系统,每笔交易订单数据的产生会引起几百个下游业务系统的关注,包括物流、购物车、积分、流计算分析等等,整体业务系统庞大而且复杂,消息队列 RocketMQ 版可实现异步通信和应用解耦,确保主站业务的连续性。 顺序收发 细数日常中需要保证顺序的应用场景非常多,例如证券交易过程时间优先原则,交易系统中的订单创建、支付、退款等流程,航班中的旅客登机消息处理等等。与先进先出(First In First Out,缩写 FIFO)原理类似,消息队列 RocketMQ 版提供的顺序消息即保证消息 FIFO。 分布式事务一致性 交易系统、支付红包等场景需要确保数据的最终一致性,大量引入消息队列 RocketMQ 版的分布式事务,既可以实现系统之间的解耦,又可以保证最终的数据一致性。 大数据分析 数据在“流动”中产生价值