当云消息队列 Kafka 版控制台提供的按位点查询和按时间查询消息的功能无法满足您搜索消息的需求时,您可以使用云消息队列 Kafka 版消息检索功能。消息检索支持按Topic分区、位点范围、时间范围以及消息Key和Value关键字检索。本文介绍如何开通消息检索、添加检索条件以及进行暂停、启用、删除管理操作。
前提条件
已为云消息队列 Kafka 版实例创建数据源Topic。更多信息,请参见步骤一:创建Topic。
说明Serverless实例暂不支持消息检索功能。
云消息队列 Kafka 版实例所在地域已支持消息检索功能。查看地域支持情况,请参见开服地域。
背景信息
云消息队列 Kafka 版消息检索借助云消息队列 Kafka 版的Connector功能及表格存储(Tablestore)实现,通过Connector对Topic中的消息进行转储,发送到表格存储中的数据表中,由表格存储引功能提供消息检索的能力。
开通消息检索相当于自动化创建了一个云消息队列 Kafka 版同步数据至表格存储的Connector任务,任务名称格式为:ots-ms-{Topic名称}-{6位随机字符}。任务详情查看操作,请参见查看消息检索任务详情。
首次开通消息检索后,云消息队列 Kafka 版自动为您开通同地域下的表格存储服务,并创建表格存储实例和对应的数据表。每个开通消息检索的Topic会在表格存储中对应创建一张数据表。自动创建的实例和数据表名称格式如下:
实例名称:kfk-{云消息队列 Kafka 版实例名称后12位字符}
数据表表名:{Topic名称}:kafka_topic_{Topic名称}_{6位随机字符}
每个开通消息检索的Topic会在云消息队列 Kafka 版实例中自动创建4个Topic和2个Group,用于记录任务配置和任务状态。名称格式如下:
任务位点Topic:connect-offset-{任务名称}
任务配置Topic:connect-config-{任务名称}
任务状态Topic:connect-status-{任务名称}
死信队列Topic/异常数据Topic:connect-error-{任务名称}
Connector消费组:connect-{任务名称}
任务集群Group:connect-cluster-{任务名称}
计费说明
云消息队列 Kafka 版消息检索处于公测阶段,暂时不会在云消息队列 Kafka 版侧产生费用。
消息检索公测阶段,使用消息检索时,自动在表格存储创建的实例和数据表,暂时不收费。
阿里云不承诺消息检索的SLA,使用消息检索所依赖的其他产品的SLA和费用说明请以对应产品为准。
注意事项
单个云消息队列 Kafka 版实例默认最多同时支持3个Topic的消息检索。
表格存储单一属性列String类型的列值大小上限为2 MB,超过2 MB的消息不会被同步,也不会被检索出来。
表格存储中的数据保留时长与云消息队列 Kafka 版实例消息保留时长具有相同的数据生命周期(TTL),当数据超过消息保留时长时,将会自动清除并移除相关索引。关于云消息队列 Kafka 版消息保留时长相关配置和说明信息,请参见变更消息配置。
由于表格存储数据过期策略与云消息队列 Kafka 版并不完全一致,故最终检索到的数据请以实际获取的为准。
消息检索操作步骤
步骤一:开通消息检索
开通某个实例下Topic的消息检索功能,以便于您根据需要对其Topic中消息进行检索。
首次开通消息检索时,仅会自动开通同地域下的表格存储服务。
首次开通消息检索时,云消息队列 Kafka 版会为您自动创建服务关联角色AliyunServiceRoleForAlikafkaConnector,以便使用Connector功能。如果已创建服务关联角色,云消息队列 Kafka 版不会重复创建。关于服务关联角色的更多信息,请参见服务关联角色。
在概览页面的资源分布区域,选择地域。
在左侧导航栏,单击实例列表。
在实例列表页面,单击目标实例名称。
在左侧导航栏,单击消息检索,然后单击开通消息检索。
在开通消息检索面板,填写开通参数,然后单击确定。
说明如果您是首次在当前实例下开通消息检索功能,单击开通消息检索后,需在您尚未开通当前实例的 Connector 功能提示对话框,单击确认,然后再在开通消息检索面板填写参数。
在消息检索页面您可以查看到刚开通搜索功能的Topic。
步骤二:发送测试消息
开通消息检索后,您可以向云消息队列 Kafka 版的数据源Topic发送消息,测试消息检索是否创建成功。
在消息检索页面,找到需要测试的目标Topic,在其操作列,单击详情。
在任务详情页面,单击测试。
在发送消息面板,填写消息参数,然后单击确定。
在消息 Key文本框中输入消息的Key值,例如demo。
在消息内容文本框输入测试的消息内容,例如 {"key": "test"}。
设置发送到指定分区,选择是否指定分区。
单击是,在分区 ID文本框中输入分区的ID,例如0。如果您需查询分区的ID,请参见查看分区状态。
单击否,不指定分区。
步骤三:搜索消息
在消息检索页面,找到目标Topic,在其操作列,单击搜索。
在搜索面板,设置搜索条件,在搜索项下拉列表中选择需要添加的搜索项,单击添加搜索项,添加搜索项并在值列设置搜索信息,然后单击确定。
说明搜索条件可以根据分区、位点范围、时间范围、Key和Value自由组合,设置多个搜索条件时,将采用交集进行搜索。
建议发送消息的时候使用业务的唯一标识作为Key值,以便在搜索时能够实现精准匹配。
在Topic搜索页面,展示检索的消息如下:
说明消息检索结果最多显示10条,建议在设定搜索条件时尽可能具体,以便在搜索过程中实现精准匹配
查询到的每条消息在控制台上最多显示1 KB的内容,超过1 KB的部分将自动截断。如需查看完整的消息内容,请下载相应的消息。
其他操作
查看消息检索任务详情
开通消息检索后,即可查看自动创建的Topic、Group、表格存储实例名称、表格存储数据表表名等详细信息,您也可以在详情中直接进入表格存储数据表。
在消息检索页面,找到目标Topic,在其操作列,单击详情。
查看消费详情
您可以查看订阅当前Topic的在线Group在Topic各个分区的消费进度,了解消息同步到表格存储时的消费和堆积情况。
在消息检索页面,找到需要查看消费进度的目标Topic,在其操作列,单击消费进度。
在消费详情页面,您可以查看Topic各分区的消费情况。
暂停消息检索任务
在消息检索页面,找到目标Topic,在其操作列,选择 。
在弹出的对话框单击确认。
启用消息检索任务
您可以根据需要重新启用某个已经暂停的消息检索任务。
在消息检索页面,找到目标Topic,在其操作列,选择 。
在弹出的对话框单击确认。
删除消息检索任务
删除Topic的消息检索任务后,表格存储的数据表与多元索引会同步删除,该Topic不再提供消息检索功能。如果需要继续使用该Topic消息检索,请重新创建并等待数据同步。
在消息检索页面,找到需要删除的目标Topic,根据任务状态在对应位置操作。
如果任务处于运行中和已暂停状态以外的其他状态,则在其操作列,单击删除。
如果任务处于运行中和已暂停状态,则在其操作列,选择
。
在弹出的对话框单击确认。
在消息检索页面,您已看不到刚才已删除的Topic。