消息队列Kafka「检索组件」重磅上线!

简介: 本文对消息队列 Kafka「检索组件」进行详细介绍,首先通过对消息队列使用过程中的痛点问题进行介绍,然后针对痛点问题提出相应的解决办法,并对关键技术技术进行解读,旨在帮助大家对消息队列 Kafka「检索组件」的特点及使用方式更加熟悉,以期可以帮助大家更有效的解决在消息排查过程中遇到的痛点问题。

作者:Kafka&Tablestore团队


前言


还在为消息队列使用时,不能高效排查重复和失败的消息而困扰吗?

还在为消息队列使用时,无法准确查找消息内容和定位问题而苦恼吗?

。。。

消息队列 Kafka「检索组件」来帮您~


本文对消息队列 Kafka「检索组件」进行详细介绍,首先通过对消息队列使用过程中的痛点问题进行介绍,然后针对痛点问题提出相应的解决办法,并对关键技术技术进行解读,旨在帮助大家对消息队列 Kafka「检索组件」的特点及使用方式更加熟悉,以期可以帮助大家更有效的解决在消息排查过程中遇到的痛点问题。


痛点问题介绍


在消息队列的使用过程中,业内默认的是假设消息进入消息队列后,消息是可靠的,丢失的概率也是低的。但实际应用中会面临各种各样的问题:


应用时面临的痛点问题


  • 由于分布式系统的特性,消息的失败、重复是不可避免的,对于失败和重复的排查,通常是依靠客户端的日志来推导,但如果规模庞大,客户手动做这个事情的难度也会很大,这就会使消息的可靠性受到挑战;


  • 此外,较大的项目一般由多人或多团队协作完成,消息发送和消费的代码实现方式也各异,这会给消息最终是否成功完成使命带来挑战;


  • 除了对问题结果的排查外,消息会不会在产生时就不符合预期呢?这同样也是困扰客户的难点之一。从目前消息队列的体系来看,还无法提供按照内容查看的方式来排查,导致了业务的正确性排查难度较大。


简单来说,消息领域往往每条消息都能代表具体的含义和动作,一旦出现失败、丢失和错误,在业内现有的消息队列现状下,很难排查具体问题,从而会导致定位整个上下游链路的问题难度较大。


技术侧面临的痛点问题


以上是客户在消息应用的场景中会面临的问题。基于应用场景问题,在技术侧同样会面临不少痛点,在处理消息问题排查时:


  • 首先需要研发的代码投入、部署和运维,同时运维人员需要比较熟悉 Kafka 的使用,需要通过使用 Kafka 客户端进行消费者消费,然后按照遍历的方式进行消息确认,从而确认消息的存在;


  • 除了需要研发的代码投入、部署和运维外,可能还需要引入其他产品,如对接流计算,通过流计算遍历消息等。


更为麻烦的是,目前这种排查往往是非常频繁的,经常以周、甚至以天为单位,会使得研发、部署和运维投入较高的时间成本;同时每次需要确认的元信息都不一样,会导致投入较大,而且灵活性也不高。


总结来说,消息队列在使用过程中对失败和重复等问题排查时,一来在没有较好的工具和方式完成对内容的检索,排查难度较高,准确性和易用性都不足;二来需要投入较高的时间和人力成本,投入大且不灵活。这些问题都会给用户在进行消息问题排查时带来不少困扰。


Kafka 检索组件介绍


通过上述痛点问题的介绍可以看到,目前在消息领域,对消息排查等存在比较多的痛点问题,为了解决以上问题,阿里云消息队列 Kafka 版重磅推出消息检索组件。下面对组件内容进行详细介绍:


检索组件简介


消息队列 Kafka「检索组件」是一个全托管、高弹性、交互式的检索组件,具备万亿级别消息内容检索的秒级响应能力。


  • 主要面向运维人员故障排查和恢复场景,用于消息相关的全链路消息排查,包括消息的发送、重复生产和丢失校验;主要功能包括支持消息按 Topic 分区、位点范围和时间范围检索,同时支持按消息 Key 和 Value 关键字检索等;


  • 主要用来解决业内消息产品不支持检索消息内容的难题。


消息队列 Kafka「消息检索」借助 Kafka Connect 功能及表格存储(Tablestore)实现,通过 Connector 对 Topic 中的消息进行转储,然后发送到表格存储中的数据表中,最后通过表格存储索引功能提供消息检索的能力。


其核心是提供了完备的消息内容检索能力,可以快速定位问题,同时便捷操作、节省人力;当用户使用时,在完成消息队列 Kafka 实例创建后,仅需简单五步即可实现对 Kafka 检索组件的应用:


1.png


下面简要对消息队列 Kafka 版消息检索的操作步骤进行介绍。


检索组件操作介绍


1)开通消息检索


首先开通某个实例下 Topic 的消息检索功能,以便根据需要对其 Topic 中的消息进行检索。步骤如下:


  • 登录消息队列 Kafka 版控制台;
  • 在概览页面的资源分布区域,选择地域;
  • 在左侧导航栏,单击消息检索;
  • 在消息检索页面,从选择实例的下拉列表选择需检索 Topic 消息所属的实例,然后单击开通消息检索;
  • 开通消息检索面板,填写开通参数,然后单击确定。


2.png


2)测试发送消息


开通消息检索后,可以向消息队列 Kafka 版的数据源 Topic 发送消息,以此来调度任务和测试消息检索是否创建成功。


  • 在消息检索页面,找到需要测试的目标 Topic,根据任务状态在对应位置操作;
  • 在快速体验消息收发面板中发送测试消息。


3.png

image.gif

3)搜索消息


  • 在消息检索页面,找到目标 Topic,在其操作列,单击搜索;
  • 在搜索面板,设置搜索条件,在搜索项下拉列表中选择需要添加的搜索项,单击添加搜索项,添加搜索项并在值列设置搜索信息,然后单击确定即可。


4.png

5.png

image.gif

4)查看消息检索任务详情


  • 开通消息检索后,即可查看自动创建的 Topic、Group、表格存储实例名称、表格存储数据表表名等详细信息,也可以在详情中直接进入表格存储数据表;
  • 在消息检索页面,找到目标 Topic,在其操作列,单击详情;
  • 在任务详情页面可以查看到目标 Topic 相关消息检索的详细信息;也可以在基础信息区域的目标服务栏,单击表格存储,即可进入数据表详情页面查看。


6.png


5)查看消费详情


支持查看订阅当前 Topic 的在线 Group 在 Topic 各个分区的消费进度,了解消息的消费和堆积情况。


  • 在消息检索页面,找到需要查看消费进度的目标 Topic,在其操作列,单击消费进度;
  • 如下图,在消费详情页面,可以查看 Topic 各分区的消费情况:


7.png


除以上功能外,在运行消息检索功能时,还可以实现暂停消息检索任务、启用消息检索任务和删除消息检索任务等操作。


Kafka 检索组件技术解读

之前消息队列 Kafka 版的消息检索方式仅支持根据消费位点或创建时间的两种范围来查找,依靠 Kafka 系统本身无法很好的支持用户对于通过关键字检索消息的需求。


为了更好的解决这个问题,Kafka 与 Tablestore 强强联合,将 Kafka 消息通过 Connector 导入 Tablestore 的数据表中,利用 Tablestore 的能力实现关键字检索。

image.gif

8.png


下面对关键技术进行解读:


Kafka Connect


Kafka Connect 的核心是为解决异构数据的同步问题。解决的思路是在各个数据源之间加一层消息中间件,所有的数据都经过消息中间件进行存储和分发。


9.png


这样做的好处有以下两点:


1)通过消息中间件做异步解耦,所有系统只和消息中间件通信;


2)需要开发的解析工具数量,也从原来的 n 平方个,变成线性的 2*n 个;Kafka Connect 则用于连接消息系统和数据源,根据数据的流向不同,连接可以分为 Source Connector 和 Sink Connector。


其原理也很简单,Source Connector 负责解析来源数据,转换成标准格式的消息,通过 Kafka Producer 发送到 Kafka Broker中。同理,Sink Connector 则通过 Kafka Consumer 消费对应的 Topic,然后投递到目标系统中。在整个过程中,Kafka Connect 统一解决了任务调度、与消息系统交互、自动扩缩容、容错以及监控等问题,大大减少了重复劳动。


消息队列 Kafka 版提供了全托管、免运维的 Kafka Connect,用于消息队列 Kafka 版和其他阿里云服务之间的数据同步。如下图所示,可以看到消息队列 Kafka 版支持了表格存储 Tablestore、Mysql Source Connector、OSS Sink Connector、MaxCompute Sink Connector 以及 FC Sink Connector 等主流的 Connector。如果用户想要使用这些 Connector 进行数据同步,只用在消息队列 Kafka 控制台的图形界面上做几个配置,就可以一键拉起 Connector 任务。


10.pngimage.gif


表格存储 Tablestore


表格存储 Tablestore 是构建在阿里云飞天分布式系统之上的海量结构化数据存储服务。基于飞天盘古分布式文件系统作为存储底座,采用存储计算分离架构,弹性共享资源池设计,实现了一个云原生的 Serverless 存储产品。内置分布式索引系统,可根据写入流量自动扩展构建索引所需的计算资源,支撑极高的写入流量。同时优化了索引结构,能够支持更快速的模糊查询。存算分离架构、高吞吐实时索引等关键能力让 Tablestore 能够支撑 Kafka 中海量数据的写入与高效搜索,帮助快速有效检索所需信息。


11.png


技术领先性


Kafka+Kafka Connect+ 表格存储 Tablestore 的云原生数据应用解决方案,通过 Kafka Connect 作为实时处理任务触发器,能够实时接收到新发送到消息队列集群的数据,然后转发到表格存储 Tablestore。


作为后续数据流转中的一环,Kafka Connect 除了保障数据的实时性以外,还解决了任务调度、与消息系统交互、自动扩缩容、容错以及监控等问题,大大减少了重复劳动。数据到了表格存储 Tablestore 以后,借助表格存储的分布式存储和强大的索引引擎,能够支持 PB 级存储、千万 TPS 和毫秒级延迟的服务能力,同时支持全托管、高弹性、交互式的检索组件,从而可实现秒级响应的万亿级别消息内容检索能力。


面向用户的价值与优势

Kafka 检索组件功能不仅具备较强的技术优势,同时还能为用户的实际工作带来更多便利:


1、排查成本低

只需要控制台的简单配置就能实现 Kafka 服务器集群内所有的消息的查看;


2、排查速度快

免开发、免资源评估、免部署、免运维;只要建立好检索条件,即可实现秒级查询响应;


3、排查准确性高

该检索组件功能由消息商业化团队和 Tablestore 团队核心研发联合打造,依托于阿里云云原生的能力,检索准确性高,可靠性和可用性可以得到很好的保障。


总结来说,Kafka 检索组件功能在实际业务中具备如下优势:


  • 快速定位问题,可实现消息上下游产品的故障、异常快速恢复,减少业务资损;
  • 节省企业成本,减少运维、研发等人员投入;
  • 降低学习成本,对消息产品的理解机制要求降低。


image.gif12.png

总结


阿里云消息队列 Kafka「检索组件」是消息队列领域内率先支持交互式消息内容检索的组件,具备免开发、免运维、高弹性的特点。对于在消息领域中的中、重度用户来说,阿里云消息队列 Kafka「检索组件」是日常排查消息存在 & 正确性的利器。


13.png


点击此处,前往相关产品文档了解详情!

相关文章
|
1月前
|
消息中间件 Java Kafka
初识Apache Kafka:搭建你的第一个消息队列系统
【10月更文挑战第24天】在数字化转型的浪潮中,数据成为了企业决策的关键因素之一。而高效的数据处理能力,则成为了企业在竞争中脱颖而出的重要武器。在这个背景下,消息队列作为连接不同系统和服务的桥梁,其重要性日益凸显。Apache Kafka 是一款开源的消息队列系统,以其高吞吐量、可扩展性和持久性等特点受到了广泛欢迎。作为一名技术爱好者,我对 Apache Kafka 产生了浓厚的兴趣,并决定亲手搭建一套属于自己的消息队列系统。
56 2
初识Apache Kafka:搭建你的第一个消息队列系统
|
2月前
|
消息中间件 监控 Kafka
Apache Kafka 成为实时数据流处理的关键组件
【10月更文挑战第8天】随着大数据技术的发展,Apache Kafka 成为实时数据流处理的关键组件。Kafka Manager 提供了一个简洁易用的 Web 界面,方便管理和监控 Kafka 集群。本文详细介绍了 Kafka Manager 的部署步骤和基本使用方法,包括配置文件修改、启动服务、创建和管理 Topic 等操作,帮助你快速上手。
52 3
|
1月前
|
消息中间件 监控 Kafka
Apache Kafka 成为处理实时数据流的关键组件。Kafka Manager 提供了一个简洁的 Web 界面
随着大数据技术的发展,Apache Kafka 成为处理实时数据流的关键组件。Kafka Manager 提供了一个简洁的 Web 界面,方便管理和监控 Kafka 集群。本文详细介绍了 Kafka Manager 的部署步骤和基本使用方法,包括配置文件的修改、启动命令、API 示例代码等,帮助你快速上手并有效管理 Kafka 集群。
45 0
|
2月前
|
消息中间件 中间件 Kafka
解锁Kafka等消息队列中间件的测试之道
在这个数字化时代,分布式系统和消息队列中间件(如Kafka、RabbitMQ)已成为日常工作的核心组件。本次公开课由前字节跳动资深专家KK老师主讲,深入解析消息队列的基本原理、架构及测试要点,涵盖功能、性能、可靠性、安全性和兼容性测试,并探讨其主要应用场景,如应用解耦、异步处理和限流削峰。课程最后设有互动答疑环节,助你全面掌握消息队列的测试方法。
|
4月前
|
图形学 人工智能 C#
从零起步,到亲手实现:一步步教你用Unity引擎搭建出令人惊叹的3D游戏世界,绝不错过的初学者友好型超详细指南 ——兼探索游戏设计奥秘与实践编程技巧的完美结合之旅
【8月更文挑战第31天】本文介绍如何使用Unity引擎从零开始创建简单的3D游戏世界,涵盖游戏对象创建、物理模拟、用户输入处理及动画效果。Unity是一款强大的跨平台游戏开发工具,支持多种编程语言,具有直观编辑器和丰富文档。文章指导读者创建新项目、添加立方体对象、编写移动脚本,并引入基础动画,帮助初学者快速掌握Unity开发核心概念,迈出游戏制作的第一步。
248 1
|
4月前
|
消息中间件 传感器 缓存
为什么Kafka能秒杀众多消息队列?揭秘它背后的五大性能神器,让你秒懂Kafka的极速之道!
【8月更文挑战第24天】Apache Kafka作为分布式流处理平台的领先者,凭借其出色的性能和扩展能力广受好评。本文通过案例分析,深入探讨Kafka实现高性能的关键因素:分区与并行处理显著提升吞吐量;批量发送结合压缩算法减少网络I/O次数及数据量;顺序写盘与页缓存机制提高写入效率;Zero-Copy技术降低CPU消耗;集群扩展与负载均衡确保系统稳定性和可靠性。这些机制共同作用,使Kafka能够在处理大规模数据流时表现出色。
68 3
|
4月前
|
消息中间件 存储 Kafka
ZooKeeper助力Kafka:掌握这四大作用,让你的消息队列系统稳如老狗!
【8月更文挑战第24天】Kafka是一款高性能的分布式消息队列系统,其稳定运行很大程度上依赖于ZooKeeper提供的分布式协调服务。ZooKeeper在Kafka中承担了四大关键职责:集群管理(Broker的注册与选举)、主题与分区管理、领导者选举机制以及消费者组管理。通过具体的代码示例展示了这些功能的具体实现方式。
127 2
|
4月前
|
消息中间件 存储 Kafka
现代消息队列与云存储问题之Kafka在海量队列场景下存在性能的问题如何解决
现代消息队列与云存储问题之Kafka在海量队列场景下存在性能的问题如何解决
|
5月前
|
消息中间件 测试技术 RocketMQ
消息队列 MQ使用问题之上线无法消费是什么导致的
消息队列(MQ)是一种用于异步通信和解耦的应用程序间消息传递的服务,广泛应用于分布式系统中。针对不同的MQ产品,如阿里云的RocketMQ、RabbitMQ等,它们在实现上述场景时可能会有不同的特性和优势,比如RocketMQ强调高吞吐量、低延迟和高可用性,适合大规模分布式系统;而RabbitMQ则以其灵活的路由规则和丰富的协议支持受到青睐。下面是一些常见的消息队列MQ产品的使用场景合集,这些场景涵盖了多种行业和业务需求。
|
6月前
|
消息中间件 存储 Java
深度探索:使用Apache Kafka构建高效Java消息队列处理系统
【6月更文挑战第30天】Apache Kafka是分布式消息系统,用于高吞吐量的发布订阅。在Java中,开发者使用Kafka的客户端库创建生产者和消费者。生产者发送序列化消息到主题,消费者通过订阅和跟踪偏移量消费消息。Kafka以持久化、容灾和顺序写入优化I/O。Java示例代码展示了如何创建并发送/接收消息。通过分区、消费者组和压缩等策略,Kafka在高并发场景下可被优化。
119 1

相关产品

  • 云消息队列 Kafka 版