1.Producer

即消息生产者,负责产生消息,一般由业务系统负责产生消息。

2.Consumer

即消息消费者,负责消费消息,一般是后台系统负责异步消费。

3.Push Consumer

Consumer的一种,应用通常向Consumer对象注册一个Listener接口,一旦收到消息,Consumer对象立刻回调Listener接口方法。

4.Pull Consumer

Consumer的一种,应用通常主动调用Consumer的拉消息方法从Broker拉消息,主动权由应用控制。

5.Producer Group

一类Producer的集合名称,这类Producer通常发送一类消息,且发送逻辑一致。

6.Consumer Group

一类Consumer的集合名称,这类Consumer通常消费一类消息,且消费逻辑一致。

7.Broker

消息中转角色,负责存储消息,转发消息,一般也称Server。在JMS规范中称Provider。

8.广播消费

一条消息被多个Consumer消费,即使这些Consumer属于同一个Consumer Group,消息也会被该Consumer Group中的每个Consumer消费一次。广播消费中的Consumer Group可以认为在消息划分方面没意义。

在CORBA Notification规范中,消费方式都属于广播消费

在JMS规范中,相当于JMS publish/subscribe model

9.集群消费

一个Consumer Group中的Consumer实例平均分摊消费消息。如某个Topic由9条消息,其中一个Consumer Group有3个实例(可能是3个进程,3台机器等),那么每个实例只消费3条消息。

在CORBA Notification规范中,无此消费方式。

在JMS规范中,JMS point-to-point model 与之类似。但rocketmq的集群消费功能大等于PTP模型。rocketmq单个Consumer Group内的消费者类似PTP,但一个Topic/Queue可以被多个Consumer Group消费。

10。顺序消息

消费消息的顺序要同发送消息的顺序一致。在rocketmq中,主要指局部顺序。即一类消息为满足顺序性,必须Producer单线程顺序发送,且发送到同一个队列,这样Consumer就可以按照Producer发送顺序去消费消息。

11.普通顺序消息

顺序消息的一种。正常情况下可以保证完全的顺序消息,但一旦发生通信异常,broker重启,由于队列总数发生变化,哈希取模后定位的队列会变化,产生短暂的消息顺序不一致。

如果业务能容忍在集群异常情况(如某个broker宕机或重启)下,消息短暂乱序,使用普通顺序方式比较合适。

12.严格顺序消息

顺序消息的一种。异常情况下也能保证顺序。但是牺牲了分布式Failover特性。即broker集群中只要有一台机器不可用,则整个集群都不可用,服务可用性大大降低。

如果服务器部署成同步双写模式,此缺陷可通过备机自动切换成主机避免。不过仍会有几分钟的服务不可用。

目前已知的应用只有数据库 binlog 同步强依赖严格顺序消息,其他应用绝大部分都可以容忍短暂乱序,推 荐使用普通的顺序消息。

13.消息队列

在rocketmq中,消息队列都是持久化,长度无限的数据结构。长度无限指的是队列中每个存储单元都是定长,访问其中的存储单元使用offset来访问,offset是java的long类型,64位,理论上在100年内不会溢出,所以认为是长度无限。另外队列中只保存最近几天的数据,之前的数据会按过期时间删除。

也可以认为消息队列是一个长度无限的数组,offset就是下标。

RocketMQ之基本信息的更多相关文章

  1. 阿里云RocketMQ的生产者简单实现

    // MQ的应用场景有比如 订单变更消息可以通过产生这个事件的地方(比如前端调用后端的接口post一个订单,那么就是在这个mapping方法里做一个生产者[不过最好通过aop来实现,不然n多个接口都要 ...

  2. SpringBoot如何优雅的使用RocketMQ

    目录 SpringBoot如何优雅的使用RocketMQ SpringBoot如何优雅的使用RocketMQ MQ,是一种跨进程的通信机制,用于上下游传递消息.在传统的互联网架构中通常使用MQ来对上下 ...

  3. RocketMQ源码详解 | Broker篇 · 其二:文件系统

    概述 在 Broker 的通用请求处理器将一个消息进行分发后,就来到了 Broker 的专门处理消息存储的业务处理器部分.本篇文章,我们将要探讨关于 RocketMQ 高效的原因之一:文件结构的良好设 ...

  4. RocketMQ原理解析-Remoting

    Remoting2. 通信层底层传输协议 RocketMq服务器与客户端通过传递RemotingCommand来交互,通过NettyDecoder,对RemotingCommand进行协议的编码与解码 ...

  5. RocketMQ原理解析-Broker

    broker 1. broker的启动 brker的启动 Broker向namesrv注册 1. 获取namesrv的地址列表(是乱序的) 2. 遍历向每个namesrv注册topic的配置信息top ...

  6. RocketMQ原理解析-Consumer

    consumer 1.启动 有别于其他消息中间件由broker做负载均衡并主动向consumer投递消息,RocketMq是基于拉模式拉取消息,consumer做负载均衡并通过长轮询向broker拉消 ...

  7. RocketMQ原理解析-Producer

    producer  producer 1.启动流程 Producer如何感知要发送消息的broker即brokerAddrTable中的值是怎么获得的, 1. 发送消息的时候指定会指定topic,如果 ...

  8. 分布式开放消息系统(RocketMQ)的原理与实践

    分布式消息系统作为实现分布式系统可扩展.可伸缩性的关键组件,需要具有高吞吐量.高可用等特点.而谈到消息系统的设计,就回避不了两个问题: 消息的顺序问题 消息的重复问题 RocketMQ作为阿里开源的一 ...

  9. rocketmq生产者和消费者

    1.生产者: package com.ebways.mq.test.mq; import com.alibaba.rocketmq.client.exception.MQClientException ...

随机推荐

  1. MySQL--增删改查分页存储过程以及事务

    添加和修改写在一起了 可以用id判断添加和修改 和事务在一起编码 可以让代码更严谨 在这里简单的说一下事务的四大特性 事务四大特性之原子性:原子性是指事务是一个不可再分割的工作单位,事务中的操作要么都 ...

  2. vue2.0模拟锚点实现定位平滑滚动

    vue2.0模拟锚点实现定位平滑滚动 效果为点击哪一个标题,平滑滚动到具体的详情. 如果是传统项目,这个效果就非常简单.但是放到 Vue 中,就有两大难题: 1. 在没有 jQuery 的 anima ...

  3. 关于MySQL Server影响ASP.NET网站使用的问题:未能加载文件或程序集MySql.Web.v20

    最近开发的ASP.NET MVC 4网站,之前头头说如果遇到装过MySQL的机器就绕着走,还觉得奇怪 嘛,该来的迟早都会来 于是撞上了一台 启动网站再访问,总是出错,提示“未能加载文件或程序集”,名字 ...

  4. Spring Cloud系列(三) 应用监控与管理Actuator

    Spring Cloud系列(二) 应用监控与管理Actuator 前言:要想使用Spring Cloud ,Spring Boot 提供的spring-boot-starter-actuator模块 ...

  5. 3.SpringBoot整合Thymeleaf模板

    一.前言 SrpingBoot支持如JSP.Thymeleaf.FreeMarker.Mustache.Velocity等各种模板引擎,同时还为开发者提供了自定义模板扩展的支持. 使用嵌入式Servl ...

  6. 第二次训练 密码acmore

    网址:http://acm.hust.edu.cn/vjudge/contest/view.action?cid=26733#overview 贪心全场!!!! A题: #include <io ...

  7. poj 3469 最小割模板sap+gap+弧优化

    /*以核心1为源点,以核心2为汇点建图,跑一遍最大流*/ #include<stdio.h> #include<string.h> #include<queue> ...

  8. ORM进阶:Hibernate框架搭建及开发

    本节将開始.使用hibernate搭建持久层.当然在决定用不用之前,还请斟酌一下是否使用.了解一下Hibernate的优缺点. Hibernate优劣对照 Hibernate是一个持久的ORM框架.首 ...

  9. 开源工作流BPM软件JFlow安装配置视频教程

    上周上传了一次,被抽了.刚開始不知道CSDN没有视频许可.造成一些爱好者无法下载,对此感到羞愧. 在下载后,依照文档内的连接,直接取出来就能够了,包括文档说明.视频教程两部分. http://down ...

  10. Java程序猿的JavaScript学习笔记(9—— jQuery工具方法)

    计划按例如以下顺序完毕这篇笔记: Java程序猿的JavaScript学习笔记(1--理念) Java程序猿的JavaScript学习笔记(2--属性复制和继承) Java程序猿的JavaScript ...