消息队列(下)

96 阅读2分钟

这是我参与「第五届青训营 」伴学笔记创作活动的第 16 天

消息队列(下)

消息队列-BMQ

BMQ简介

兼容Kafka协议,存算分离,云原生消息队列

BMQ介绍

image.png

运维操作对比

image.png

HDFS写文件流程

随机选择一定数量的 DataNode进行写入

image.png

BMQ文件结构

Kafka

image.png

BMQ

image.png

Broker-Partition状态机

保证对于任意分片在同一时刻只能在一个 Broker上存活

image.png

Broker-写文件流程

image.png

Broker-写文件Failover

image.png

Proxy

image.png

多机房部署

image.png

BMQ-高级特性

image.png

泳道消息

多个人同时测试,需要等待上一个人测试完成

image.png 每多一个测试人员,都需要重新搭建一个相同配置的Topic,造成人力和资源的浪费。

image.png 对于PPE的消费者来说,资源没有生产环境多,所以无法承受生产环境的流量。 image.png

解决主干泳道流量隔离问题以及泳道资源重复创建问题。

image.png

Databus

image.png

image.png 直接使用原生SDK会有什么问题? 1.客户端配置较为复杂5578 2.不支持动态配置,更改配置需要停掉服务 3.对于latency不是很敏感的业务,batch效果不佳

image.png

1.简化消息队列客户端复杂度 2.解耦业务与Topic 3.缓解集群压力,提高吞吐

Mirror

image.png

image.png 使用Mirror通过最终一致的方式,解决跨Region读写问题。

Index

image.png 如果希望通过写入的Logld、Userld或者其他的业务字段进行消息的查询,应该怎么做?

image.png 直接在BMQ中将数据结构化,配置索引DDL,异步构建索引后,通过Index Query服务读出数据。

Parquet

Apache Parquet是Hadoop生态圈中一种新型列式存储格式,它可以兼容Hadoop生态圈中大 多数计算框架(Hadoop、Spark等),被多种查询引擎支持(Hive、Impala、Drill等)。

image.png

image.png

image.png 直接在BMQ中将数据结构化,通过Parquet Engine,可以使用不同的方式构建Parquet格式文件.