• RocketMQ之基本信息


    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就是下标。

  • 相关阅读:
    mysql优化---订单查询优化(1):视图优化+索引创建
    docker系列(一):docker基础与安装笔记
    Linux进程管理
    scrapy-redis源码解读之发送POST请求
    anaconda虚拟环境管理,从此Python版本不用愁
    Ubuntu18.04安装mongodb
    Python开发之日志记录模块:logging
    Git学习笔记:基础篇
    python开发之虚拟环境管理:virtualenv、virtualenvwrapper、pycharm
    Python开发之序列化与反序列化:pickle、json模块使用详解
  • 原文地址:https://www.cnblogs.com/yushangzuiyue/p/9684178.html
Copyright © 2020-2023  润新知