一.简介
StormMQ是一个支持消息发布-订阅的消息中间件,java语言开发,采用netty网络框架.Kryo序列化框架为网络传输数据序列化,protostruff序列化框架作为数据持久化的序列化
二.功能简介
1.支持消息者集群.
消费者A是一个集群,订阅了topicA,broker收到topicA的某条消息后,只投递给消费者A集群中的一台机器.消费者集群的每台机器每秒消费的消息是均衡的.
2.简单的支持消息属性过滤订阅.
broker只能投递符合属性条件的消息给订阅者
支持消费者的退订服务.
3.提供可靠的消息服务
broker保证数据同步落盘后才向生产者返回成功Ack.(生产者发布一个消息阻塞等待其Ack,超时时间是10s,避免忙轮询等待,基于netty的事件通知);
生产者也支持异步发送消息给broker.(生产者发布一个消息后不阻塞,Ack返回后触发回调函数).
消息投递后,如果消费失败、消费超时进行消息重投.
消费者订阅主题后同步等待broker发送Ack确认broker收到订阅消息
消费者收到消息后,回答broker消费结果,如果消费失败,broker会尽快重投.
三.性能优化点
持久化采用缓存技术,减少磁盘.
记录线程的发送速度,控制重发线程的启动.(5秒记录一次)
采用netty的主从Reactor线程模型.
采用protostruff和Kryo序列化框架.
相关推荐
此文档是C#开发的消息队列系统,适用于消息队列入门与新手。 在Windows 7 上安装消息队列的步骤 打开“控制面板”。 单击“程序”,然后在“程序和功能”下, 单击“打开或关闭 Windows 功能”。 -或者-单击“经典...
发送端读取指定的文件,并且按照环境变量中设置的消息队列键值进行发送。如果要改代码,只要把键值改一下,结构体储存要发送的消息的那个数组对应改成自己想发送的值,就可以很好的实现功能。接收端同样按环境变量...
本文将从消息队列的基本概念开始,逐步深入到消息队列的设计原则、事务消息、索引设计、日志段读写解析、控制器事件处理全流程解析、请求处理全流程解析等方面,涵盖了RocketMQ和Kafka两种常见的消息队列实现方式。...
C#消息队列发送及接收
进程与消息队列进程与消息队列简单例进程与消息队列进程与消息队列简单例进程与消息队列进程与消息队列简单例进程与消息队列进程与消息队列简单例进程与消息队列进程与消息队列简单例
消息队列编程C++示例 消息队列编程是一种进程间通信机制,在 Unix 系统 V 版本中广泛应用。消息队列是一个链表,存储着具有特定格式和优先级的消息记录。对消息队列有写权限的进程可以添加新消息,而对消息队列有读...
描述ucOS消息队列的使用,此文网络截文,感谢原创作者。
消息队列工具,这是一个在查看消息队列中消息的一个很好的工具软件。
FreeRTOS PPT_消息队列的介绍,本章节为大家讲解 FreeRTOS 的一个重要的通信机制----消息队列,初学者要熟练掌握,因为消息队列在实际项目中应用较多。 消息队列的概念及其作用 消息队列就是通过RTOS 内核提供的...
消息队列中间件调研文档。ActiveMQ、RabbitMQ、RocketMq、Joram、HornetQ、OpenMQ等的对比。
进程间通信之消息队列 ( message queue ) 消息队列是消息的链表,具有特定的格式,并由消息队列标识符标识. 七种进程间通信方式: 一.无名管道( pipe ) 二.有名管道( fifo ) 三.共享内存 ( shared memory ) 四....
Java消息队列常见面试题,2022年最新,104页,祝您斩获高薪offer! Java消息队列常见面试题,2022年最新,104页,祝您斩获高薪offer! Java消息队列常见面试题,2022年最新,104页,祝您斩获高薪offer! Java消息...
C++封装实现的异步加锁消息队列,支持多线程,完美封装,可用于消息接收、处理
消息队列控制块结构体中有几个重要的成员变量:OSQPtr 指针指向消息队列控制块的下一个控件,OSQStart 指针指向消息指针数组的起始地址,OSQSize 指针指向消息指针数组的大小,OSQOut 指针指向消息队列中的下一个...
LabVIEW程序设计模式-消息队列型状态机模式 LabVIEW程序设计模式-消息队列型状态机模式是一种改进的状态机模式,旨在解决基本状态机模式中的三个问题:状态分类不清晰、缺乏数据共享和错误处理机制、每一个状态分支...
实现消息队列的关键因素是考量不同线程访问消息队列的同步问题。本实现涉及到几个知识点 std::lock_guard 介绍 std::lock_gurad 是 C++11 中定义的模板类。定义如下: template <class> class lock_guard; lock_...
解决 “消息队列不可用 ” 附加案例 :消息队列异步接收 消息队列局域网发送与接收
Linux消息队列 ---------学习linux下 c编程之消息队列
易语言简单的多线程消息队列。@Patek。
进程与消息队列进程与消息队列进程与消息队列进程与消息队列进程与消息队列进程与消息队列进程与消息队列进程与消息队列进程与消息队列