MQ消息队列
- 1.基本概念 Topic:消息主题,一级消息类型,通过 Topic 对消息进行分类。 Tag:消息便签,二级消息类型,用来进一步区分某个 Topic 下的消息分类。 SubTopic:MQTT的二级Topic。 Producer ID:一类 Producer 的标识,这类 Producer 通常生产并发送一类消息,且发送逻辑一致。 Consumer ID:一类 Consumer 的标识,这类 Consumer 通常接收并消费一类消息,且消费逻辑一致。 Message ID:消息的全局唯一标识,由 MQ 系统自动生成,唯一标识某条消息。 Message Key:消息的业务标识,由消息生产者(Producer)设置,唯一标识某个业务逻辑。 ClientID:MQTT下每个ClientID要求全局唯一,使用相同的ClientID接入MQTT,会被拒绝。
- 2.消息类型 普通消息 定时消息:Producer 将消息发送到 MQ 服务端,但并不期望这条消息立马投递,而是推迟到在当前时间点之后的某一个时间投递到 Consumer 进行消费,该消息即定时消息。 事务消息:MQ 提供类似 X/Open XA 的分布事务功能,通过 MQ 事务消息能达到分布式事务的最终一致。 顺序消息:MQ 提供的一种按照顺序进行发布和消费的消息类型, 分为全局顺序消息和分区顺序消息。
- 3.顺序消息的内容 顺序发布:对于指定的一个 Topic,客户端将按照一定的先后顺序进行发送消息。 顺序消费:对于指定的一个 Topic,按照一定的先后顺序进行接收消息,即先发送的消息一定会先被客户端接收到。 全局顺序消息:对于指定的一个 Topic,所有消息按照严格的先入先出(FIFO)的顺序进行发布和消费。 分区顺序消息:对于指定的一个 Topic,所有消息根据 sharding key 进行区块分区。同一个分区内的消息按照严格的 FIFO 顺序进行发布和消费。Sharding key 是顺序消息中用来区分不同分区的关键字段,和普通消息的 key 是完全不同的概念。
- 4.消息发送方式和应用场景 可靠同步:重要邮件通知,短信通知,营销短信等 可靠异步:对RT比较敏感的业务场景,如用户视频上传后通知转码服务,转码完成后通知推送转码结果等 oneway(类似UDP):耗时短,安全性要求不高的,如日志收集。
- 5.消息查询 消息回溯,消息轨迹,堆积监控警告
- 6.消费模式 集群消费模式:一个 Consumer ID 所标识的所有 Consumer 平均分摊消费消息。例如某个 Topic 有 9 条消息,一个 Consumer ID 有 3 个 Consumer 实例,那么在集群消费模式下每个实例平均分摊,只消费其中的 3 条消息。 广播消费:一个 Consumer ID 所标识的所有 Consumer 都会各自消费某条消息一次。例如某个 Topic 有 9 条消息,一个 Consumer ID 有 3 个 Consumer 实例,那么在广播消费模式下每个实例都会各自消费 9 条消息
- 7.消息过滤 订阅者可以根据消息标签(Tag)对消息进行过滤,确保订阅者最终只接收被过滤后的消息类型。消息过滤在 MQ 服务端完成。
ARMS业务实时监控
- 1.产品优势: 久经考验,海量吞吐,秒级延迟,持续计算能力,低学习成本,一站式集成
- 2.技术架构 消息通道-实时计算(清洗、聚合计算)-持久化存储-数据展示层 消息通道:从数据源统一进入消息通道,作统一管理和缓存作用
- 3.关键组件和流程 采集规则(必选):定义数据如何从不同数据源实例进行采集 清洗逻辑(必选):定义如何解析采集到的数据 数据集配置(必选):定义任务如何基于采集到的数据进行聚合计算,持久化存储,API访问输出 报表控件(可选):可视化输出展示功能 报警通知(可选):报警定义,通知方式,提供报警能力 大盘(可选):通过集成报表空间和报警通知数据,对用户提供可视化大盘功能
- 4.监控架构流程 数据源->任务监控->数据集->(报表控件&&报警规则)
- 5.数据的来源 ECS 数据源:通过日志采集的方式在 ECS 上采集数据。 MQ 数据源:通过对接 MQ 的方式采集数据。 SDK 数据源:用户通过发送集成 API 直接发送数据到 ARMS 的方式。
- 6.任务监控 有两个步骤:1、数据清洗(MAP)2、聚合计算(Reduce)
- 7.ARMS结果输出方式 访问在线报表 接收报警监控 访问数据集的OpenAPI:每个数据集类型SQL的一张表,可以通过OpenAPI进行聚合生产输出