RemotingCommand: flag倒数第一位表示请求类型,0请求1返回.倒数第二位1.表示oneway 单条消息发送时,消息体的内容将保存在body种,批量消息发送,需要将多条消息体的内容存储在body中,RocketMQ采取的方式是,对单条消息内容使用固定格式进行存储 首先调用batch方法,将一批消息封装成MessageBatch对象,MessageBatch继承自Message对象,MessageBatch内部持有List<Message>messages,这样的话,批量消息发送…
前景回顾 [mq]从零开始实现 mq-01-生产者.消费者启动 [mq]从零开始实现 mq-02-如何实现生产者调用消费者? [mq]从零开始实现 mq-03-引入 broker 中间人 [mq]从零开始实现 mq-04-启动检测与实现优化 [mq]从零开始实现 mq-05-实现优雅停机 [mq]从零开始实现 mq-06-消费者心跳检测 heartbeat [mq]从零开始实现 mq-07-负载均衡 load balance [mq]从零开始实现 mq-08-配置优化 fluent [mq]从零…
今天我们再来看看RocketMQ的另外两个小功能,消息的批量发送和过滤.这两个小功能提升了我们使用RocketMQ的效率. 批量发送 以前我们发送消息的时候,都是一个一个的发送,这样效率比较低下.能不能一次发送多个消息呢?当然是可以的,RocketMQ为我们提供了这样的功能.但是它也有一些使用的条件: 同一批发送的消息的Topic必须相同: 同一批消息的waitStoreMsgOK 必须相同: 批量发送的消息不支持延迟,就是上一节说的延迟消息: 同一批次的消息,大小不能超过1MiB: 好了,只要…
MQ系列1:消息中间件执行原理 MQ系列2:消息中间件的技术选型 MQ系列3:RocketMQ 架构分析 MQ系列4:NameServer 原理解析 在之前的篇章中,我们学习了RocketMQ的原理,以及RocketMQ中 命名服务 ServiceName 的运行流程,本篇从消息的生产.消费来理解一条消息的生命周期. 1 消息生产 在RocketMQ中,消息生产指的是 消息生产者往消息队列中写入数据的过程.因为业务场景的复杂性,RocketMQ架构设计了多种不同的发送策略.下面先讨论几种常见的场…
前言 概述 大多数应用中,可通过消息服务中间件来提升系统异步通信.扩展解耦的能力. 消息服务中两个重要概念:消息代理(message broker)和目的地(destination).当消息发送者发送消息后,将由消息代理接管,消息代理保证消息传递到指定目的地. 消息队列主要有两种形式的目的地: 队列(queue):点对点消息通信(point-to-point). 主题(topic):发布(publish)/订阅(subscribe)消息通信. 点对点: 消息发送者发送消息,消息代理将其放入一个队…
一.功能介绍 要实现一个消息的定时发送功能,也就是让消息可以在某一天某一个时间具体节点进行发送.而我们公司的业务场景是类似短信的业务,而且数量不小,用户会进行号码.消息内容.定时发送时间等信息的提交.等到了设定的定时时间,则进行消息的发送工作. 二.思考实现逻辑 前提准备: MySQL RocketMQ,最好broker开启队列自动创建的配置 刚开始我想的是基于MySQL去实现定时发送,后来觉得这种扫描方式单线程的时候并发能力不够,多线程也得需要做并发控制,还得做一些任务的调度,比如线程执行一半…
/** * 推送消息 APP.短信 * @param message * @throws Exception */ public void sendMsg(Message message) throws Exception{ try { logger.info("send message start..."); long startTime = System.currentTimeMillis(); BlockingQueue<Runnable> queue = new L…
概述 在上一节 RocketMQ源码详解 | Producer篇 · 其一:Start,然后 Send 一条消息 中,我们了解了 Producer 在发送消息的流程.这次我们再来具体下看消息的构成与其发送的链路 Message 在 RocketMQ 的使用中,Message 类是在发送消息时必须用到的,其中 body 即是消息的存放位置,还有的就是消息的 标识(flag) 和 属性(properties) public class Message { private String topic;…
微信时代的今天,短信一样不可缺席,大系统都有集成短信接口.若只是临时用一下,若能够直接在Excel上加工好内容就可以直接发送,这些假设在此篇批量群发短信功能中都为大家带来完美答案. 业务场景 不多说,发送短信人人都有需求,自己云思考如何使用这个短信的好工具就好. 功能实现 此篇仅对众多短信接口中的腾讯云短信功能给予支持,其他接口没有开发,原理也相似,实在有其他接口需求时,可给予赞助下,Excel催化剂将其实现出来. 要批量发送短信,在现在工信部对短信垃圾严查的时代,就没那么容易了,需要自己在各大…
最近在做一个基于Azure云的物联网分析项目: .netcore采集程序向Azure事件中心(EventHubs)发送数据,通过Azure EventHubs Capture转储到Azure BlogStorage,供数据科学团队分析. 为什么使用Azure事件中心? Azure事件中心是一种Azure上完全托管的实时数据摄取服务, 每秒可流式传输来自website.app.device任何源的数百万个事件.提供的统一流式处理平台和时间保留缓冲区,将事件生成者和事件使用者分开. 事件生成者: 可…