Fork me on GitHub

RocketMQ--消息幂等(去重)通用解决方案

​ 消息中间件是分布式系统常用的组件,无论是异步化、解耦、削峰等都有广泛的应用价值。我们通常会认为,消息中间件是一个可靠的组件——这里所谓的可靠是指,只要我把消息成功投递到了消息中间件,消息就不会丢失,即消息肯定会至少保证消息能被消费者成功消费一次,这是消息中间件最基本的特性之一,也就是我们常说的“AT LEAST ONCE”,即消息至少会被“成功消费一遍”。 ​ ...

RocketMQ--消息文件过期原理

RocketMQ——消息ACK机制及消费进度管理 文中提过,所有的消费均是客户端发起Pull请求的,告诉消息的offset位置,broker去查询并返回。但是有一点需要非常明确的是,消息消费后,消息其实并没有物理地被清除,这是一个非常特殊的设计。本文来探索此设计的一些细节。 消费完后的消息去哪里了?消息的存储是一直存在于CommitLog中的。而由于CommitLog是以文件为单位(而非消息...

RocketMQ--消息ACK机制及消费进度管理

RokectMQ——水平扩展及负载均衡详解 中剖析过,consumer的每个实例是靠队列分配来决定如何消费消息的。那么消费进度具体是如何管理的,又是如何保证消息成功消费的?(RocketMQ有保证消息肯定消费成功的特性,失败则重试)? 本文将详细解析消息具体是如何ack的,又是如何保证消费肯定成功的。 由于以上工作所有的机制都实现在PushConsumer中,所以本文的原理均只适用于Rock...

RocketMQ--水平扩展及负载均衡详解

RocketMQ是一个分布式具有高度可扩展性的消息中间件。本文旨在探索在broker端,生产端,以及消费端是如何做到横向扩展以及负载均衡的。 Broker端水平扩展Broker负载均衡Broker是以group为单位提供服务。一个group里面分master和slave,master和slave存储的数据一样,slave从master同步数据(同步双写或异步复制看配置)。 通过nameser...

RocketMQ--权限控制

1. 权限控制 1.1 权限控制特性介绍权限控制(ACL)主要为RocketMQ提供Topic资源级别的用户访问控制。用户在使用RocketMQ权限控制时,可以在Client客户端通过 RPCHook注入AccessKey和SecretKey签名;同时,将对应的权限控制属性(包括Topic访问权限、IP白名单和AccessKey和SecretKey签名等)设置在distribution/co...

SpringCloud Stream整合RocketMQ实现消息发送与接收

RocketMQ 介绍RocketMQ 是一款开源的分布式消息系统,基于高可用分布式集群技术,提供低延时的、高可靠的消息发布与订阅服务。同时,广泛应用于多个领域,包括异步通信解耦、企业解决方案、金融支付、电信、电子商务、快递物流、广告营销、社交、即时通信、移动应用、手游、视频、物联网、车联网等。 具有以下特点: 能够保证严格的消息顺序 提供丰富的消息拉取模式 高效的订阅者水平扩展能力 实时...

RocketMQ--最佳实践

1. 最佳实践 1.1 生产者1.1.1 发送消息注意事项1 Tags的使用一个应用尽可能用一个Topic,而消息子类型则可以用tags来标识。tags可以由应用自由设置,只有生产者在发送消息设置了tags,消费方在订阅消息时才可以利用tags通过broker做消息过滤:message.setTags(“TagA”)。 2 Keys的使用每个消息在业务层面的唯一标识码要设置到keys字段,...

RocketMQ--样例

1. 样例 1.1 基本样例在基本样例中我们提供如下的功能场景: 使用RocketMQ发送三种类型的消息:同步消息、异步消息和单向消息。其中前两种消息是可靠的,因为会有发送是否成功的应答。 使用RocketMQ来消费接收到的消息。 1.1.1 加入依赖:12345678maven:<dependency> <groupId>org.apache.rocket...

RocketMQ插件部署console控制台

RocketMQ插件部署console控制台

RocketMQ插件部署 下载 地址:https://github.com/apache/rocketmq-externals 下载完成之后,进入‘rocketmq-externals\rocketmq-console\src\main\resources’文件夹,打开‘application.properties’进行配置 编译启动 ​ 进入‘\rocketmq-e...

windows下安装部署RocketMQ

windows下安装部署RocketMQ

一.预备环境 系统 1Windows 环境 1JDK1.8、Maven、Git 二. RocketMQ部署 下载 地址:http://rocketmq.apache.org/release_notes/release-notes-4.4.0/ 选择‘Binary’进行下载 解压已下载工程 三. 配置 系统环境变量配置 ​ 变量名:ROCKETMQ...