简介:本文详细介绍消息队列Kafka“检索组件”。首先介绍了消息队列在使用过程中的痛点,然后针对痛点提出了相应的解决方案,并对关键技术进行了解读。目的是帮助您更加熟悉消息队列Kafka“检索组件”的特性和使用方法,从而更有效地帮助您解决消息排查过程中遇到的痛点。作者:Kafka&TablestoreTeam前言您是否还在为使用消息队列无法高效排查重复消息和失败消息而苦恼?您还在为使用消息队列时无法准确查找消息内容和定位问题而苦恼吗?...消息队列Kafka的“检索组件”来帮你~本文详细介绍了消息队列Kafka的“检索组件”。关键技术解读旨在帮助您更加熟悉消息队列Kafka“检索组件”的特性和用法,以帮助您更有效地解决消息排查过程中遇到的痛点。痛点介绍在使用消息队列的过程中,业界默认假设消息进入消息队列后,消息是可靠的,丢失概率很低。但在实际应用中会面临各种问题:应用过程中面临的痛点由于分布式系统的特性,消息失败和重复是不可避免的。排查故障和重复问题,通常是依赖客户端的日志进行推导,但如果规模很大,客户手动做起来会非常困难,对消息的可靠性提出挑战;此外,较大的项目一般由多人或团队共同完成,消息发送和消费的代码实现方式也不同,这都会给消息最终能否顺利完成使命带来挑战;除了排查问题的结果,消息生成的时候会不会不符合预期?这也是困扰客户的难点之一。从目前的消息队列系统来看,还是无法提供按内容来校验的方式,这就造成了业务正确性校验的困难。简单来说,消息域中的每条消息往往可以代表特定的含义和动作。一旦出现故障、丢失、错误,在业界目前消息队列的现状下,很难排查具体的问题,这会导致定位整个上下游链路的问题更加困难。技术端面临的痛点以上是客户在消息类应用场景中会面临的问题。基于应用场景问题,技术端也会有很多痛点。在排查消息问题时:首先需要在研发代码、部署和运维上进行投入。同时运维人员需要熟悉Kafka的使用。消费者在最后消费,然后根据遍历方法确认消息,从而确认消息的存在;除了研发需要的代码投入、部署和运维,可能还需要引入其他产品,比如对接流计算、遍历流计算新闻等。比较麻烦的是,目前这种调查往往非常频繁,往往每周甚至每天,这将导致研发、部署和运维的时间成本很高;同时,每次需要确认的元信息不一样,会导致投入较大,灵活性不高。综上所述,在排查消息队列使用过程中的失败、重复等问题时,首先,没有更好的工具和方法来完成内容的检索,排查难度大,准确性和可用性不足;其次,未来需要投入高昂的时间和人力成本,投资大且不灵活。这些问题都会给用户在排查消息问题时带来很大的麻烦。Kafka检索组件简介通过以上痛点的介绍,我们可以看出消息领域存在很多痛点,比如消息排查。为了解决以上问题,阿里云消息队列Kafka版推出了消息检索组件。以下是对该组件内容的详细介绍:Kafka消息队列检索组件简介“检索组件”是一个全托管、高弹性、交互式的检索组件,对万亿级消息内容具有秒级响应能力恢复。主要面向运维人员排查和恢复场景,用于消息相关的全链路消息排查,包括消息发送、复产、验损;主要功能包括支持按主题分区、位置范围、时间范围检索消息,支持消息Key、Value关键字检索等;主要用于解决业界消息产品不支持消息内容检索的问题。消息队列Kafka“消息检索”是借助KafkaConnect功能和表存储(Tablestore)实现的。通过Connector将Topic中的消息转储,然后发送到表存中的数据表中,最后通过表存索引函数提供消息检索能力。其核心是提供完整的消息内容检索能力,可以快速定位问题,同时方便操作,节省人力;用户在使用时,完成消息队列Kafka实例的创建后,只需要简单的五个步骤就可以实现Kafka检索组件应用:下面简单介绍一下Kafka版消息队列消息检索的操作步骤。检索组件操作介绍1)开启消息检索首先开启某个实例下某个主题的消息检索功能,以便根据需要检索该主题中的消息。步骤如下:登录消息队列的Kafka控制台;在概览页面的资源分布区,选择区域;在左侧导航栏中,点击消息搜索;在消息搜索页面,在所选实例实例的下拉列表中选择要检索的Topic消息,然后点击启用消息检索;激活消息检索面板,填写激活参数,然后单击确定。2)测试发送消息开启消息检索后,可以向Kafka版消息队列的数据源Topic发送消息进行任务调度,测试消息检索是否创建成功。在消息检索页面,找到需要测试的目标主题,根据任务状态在相应位置进行操作;在快速体验消息收发面板发送测试消息。3)搜索消息在消息检索页面,找到目标主题,点击其操作栏中的搜索;在搜索面板中,设置搜索条件,在搜索项下拉列表中选择要添加的搜索项,点击添加搜索项,在值栏中添加搜索项并设置搜索信息,然后点击确定.4)查看消息检索任务详情开启消息检索后,可以查看自动创建的Topic、Group、表格存储实例名、表格存储数据表名等详细信息,也可以直接在表格存储数据表中输入细节;在消息检索页面,找到目标主题,在其操作栏中点击详情;在任务详情页,可以查看目标Topic相关消息检索的详细信息;也可以在基本信息区的目标服务栏中点击表格存储,即可以进入数据表详情页查看。5)查看消费明细支持在主题各分区查看订阅当前主题的在线群的消费进度,了解消息的消费和累积情况。在消息检索页面,找到需要查看消费进度的目标话题,在操作栏点击消费进度;如下图,在消费详情页,可以查看该主题各分区的消费状态:除了以上功能外,在运行取消息时,使用该功能时,可以进行暂停取消息等操作也可以实现任务,启用取消息任务,删除取消息任务。Kafka检索组件技术解读之前Kafka版消息队列的消息检索方式只支持基于消费位置或创建时间两个范围的查找。依赖Kafka系统本身并不能很好地支持用户通过关键字搜索消息的需求。为了更好的解决这个问题,将Kafka和Tablestore强强联手,通过Connector将Kafka消息导入到Tablestore的数据表中,利用Tablestore的能力实现关键字检索。以下是对关键技术的解读:KafkaConnectKafkaConnect的核心是解决异构数据的同步问题。解决方案是在各个数据源之间加一层消息中间件,所有的数据都通过消息中间件进行存储和分发。这样做的好处有以下两点:1)通过消息中间件完成异步解耦,所有系统只与消息中间件通信;2)需要开发的分析工具数量也从原来的n平方变为线性2*n;KafkaConnect用于连接消息系统和数据源。根据数据的流向,连接可以分为SourceConnector和SinkConnector。原理也很简单。SourceConnector负责解析源数据,将其转化为标准格式的消息,通过KafkaProducer发送给KafkaBroker。同样,SinkConnector通过KafkaConsumer消费对应的Topic,然后投递到目标系统。在整个过程中,KafkaConnect统一解决了任务调度、与消息系统交互、自动伸缩、容错、监控等问题,大大减少了重复劳动。MessageQueueforKafka提供了一个全托管、免运维的KafkaConnect,用于MessageQueueforKafka与阿里云其他服务之间的数据同步。如下图所示,可以看到消息队列Kafka版本支持Tablestore、MysqlSourceConnector、OSSSinkConnector、MaxComputeSinkConnector、FCSinkConnector等主流连接器。如果用户想使用这些连接器进行数据同步,只需要在消息队列Kafka控制台的图形界面上进行一些配置,就可以一键启动连接器任务。表格存储Tablestore表格存储是基于阿里云飞天分布式系统构建的海量结构化数据存储服务。基于飞天盘古分布式文件系统作为存储基础,采用存储计算分离架构和弹性共享资源池设计,实现云原生的Serverless存储产品。内置分布式索引系统,可根据写入流量自动扩展构建索引所需的计算资源,支持极高的写入流量。同时优化索引结构,支持更快的模糊查询。存储计算分离架构、高吞吐实时索引等关键能力使Tablestore能够支持Kafka海量数据的写入和高效检索,有助于快速有效地检索所需信息。技术领先的Kafka+KafkaConnect+Tablestore云原生数据应用方案,以KafkaConnect作为实时处理任务触发器,实时接收发送到消息队列集群的新数据,再转发到Tablestore。KafkaConnect作为后续数据流中的一个环节,不仅保证了数据的实时性,还解决了任务调度、与消息系统交互、自动伸缩、容错、监控等问题,大大减少了重复劳动。数据到达Tablestore后,借助Tablestore的分布式存储和强大的索引引擎,可以支持PB级存储、千万级TPS和毫秒级时延的服务能力,同时支持全托管、高弹性、交互检索组件,实现秒级响应的万亿级消息内容检索能力。面向用户的价值和优势Kafka检索组件功能不仅具有强大的技术优势,也为用户的实际工作带来了更多便利:1.故障排除成本低,只需简单配置控制台即可实现Kafka服务器集群视图数据库中的所有消息;2.快速排障,无需开发,无需资源评估,无需部署,无需运维;只要建立搜索条件,即可实现秒级查询响应;3.排查准确率高搜索组件功能消息商业化团队核心研发团队与Tablestore团队共同打造,依托阿里云云原生能力,检索准确率高,可靠性和可用性得到很好的保障.综上所述,Kafka检索组件功能在实际业务中具有以下优势:快速定位问题,使能消息上下游产品故障,快速恢复异常,减少业务资金损失;节约企业成本,减少运维、研发等人员投入;降低学习成本,降低对消息产品理解机制的要求。总结阿里云消息队列Kafka“检索组件”是消息队列领域第一个支持交互式消息内容检索的组件。具有免开发、免运维、高度灵活的特点。对于消息领域的中重度用户,阿里云消息队列Kafka“检索组件”是日常排查消息存在性和正确性的利器。原文链接本文为阿里云原创内容,未经许可不得转载。
