在创建并部署消息队列Kafka版实例后,您可以使用消息队列Kafka版控制台直接发送消息,快速测试服务端是否正常。

前提条件

您已创建并部署消息队列Kafka版实例,且实例处于服务中状态。

操作流程

快速测试消息队列Kafka版服务端的流程如下:

  1. 创建Topic
  2. 发送消息
  3. 查看分区状态
  4. 按位点查询消息

您可以多次重复步骤2到步骤4,如果多次操作正常,则说明服务端正常。

说明 如果服务端正常,但发送消息依然失败,建议您去调用方(例如,原生客户端、生态组件端等)排查问题。

创建Topic

  1. 概览页面的资源分布区域,选择地域。
    重要 Topic需要在应用程序所在的地域(即所部署的ECS的所在地域)进行创建。Topic不能跨地域使用。例如Topic创建在华北2(北京)这个地域,那么消息生产端和消费端也必须运行在华北2(北京)的ECS。
  2. 实例列表页面,单击目标实例名称。
  3. 在左侧导航栏,单击Topic 管理
  4. Topic 管理页面,单击创建 Topic
  5. 创建 Topic面板,设置Topic属性,然后单击确定
    创建Topic
    参数 说明 示例
    名称 Topic名称。 demo
    描述 Topic的简单描述。 demo test
    分区数 Topic的分区数量。 12
    存储引擎
    说明 当前仅专业版实例支持选择存储引擎类型,标准版暂不支持,默认选择为云存储类型。
    Topic消息的存储引擎。

    消息队列Kafka版支持以下两种存储引擎。

    • 云存储:底层接入阿里云云盘,具有低时延、高性能、持久性、高可靠等特点,采用分布式3副本机制。实例的规格类型标准版(高写版)时,存储引擎只能为云存储
    • Local 存储:使用原生Kafka的ISR复制算法,采用分布式3副本机制。
    云存储
    消息类型 Topic消息的类型。
    • 普通消息:默认情况下,保证相同Key的消息分布在同一个分区中,且分区内消息按照发送顺序存储。集群中出现机器宕机时,可能会造成消息乱序。当存储引擎选择云存储时,默认选择普通消息
    • 分区顺序消息:默认情况下,保证相同Key的消息分布在同一个分区中,且分区内消息按照发送顺序存储。集群中出现机器宕机时,仍然保证分区内按照发送顺序存储。但是会出现部分分区发送消息失败,等到分区恢复后即可恢复正常。当存储引擎选择Local 存储时,默认选择分区顺序消息
    普通消息
    日志清理策略 Topic日志的清理策略。

    存储引擎选择Local 存储(当前仅专业版实例支持选择存储引擎类型为Local存储,标准版暂不支持)时,需要配置日志清理策略

    消息队列Kafka版支持以下两种日志清理策略。

    • Delete:默认的消息清理策略。在磁盘容量充足的情况下,保留在最长保留时间范围内的消息;在磁盘容量不足时(一般磁盘使用率超过85%视为不足),将提前删除旧消息,以保证服务可用性。
    • Compact:使用Kafka Log Compaction日志清理策略。Log Compaction清理策略保证相同Key的消息,最新的value值一定会被保留。主要适用于系统宕机后恢复状态,系统重启后重新加载缓存等场景。例如,在使用Kafka Connect或Confluent Schema Registry时,需要使用Kafka Compact Topic存储系统状态信息或配置信息。
      重要 Compact Topic一般只用在某些生态组件中,例如Kafka Connect或Confluent Schema Registry,其他情况的消息收发请勿为Topic设置该属性。具体信息,请参见消息队列Kafka版Demo库
    Compact
    标签 Topic的标签。 demo
    创建完成后,在Topic 管理页面的列表中显示已创建的Topic。

发送消息

向已创建的Topic发送消息。

  1. Topic 管理页面,找到目标Topic,在其操作列中,选择更多 > 体验发送消息
  2. 快速体验消息收发面板,发送测试消息。
    • 发送方式选择控制台
      1. 消息 Key文本框中输入消息的Key值,例如demo。
      2. 消息内容文本框输入测试的消息内容,例如 {"key": "test"}。
      3. 设置发送到指定分区,选择是否指定分区。
        • 单击,在分区 ID文本框中输入分区的ID,例如0。如果您需查询分区的ID,请参见查看分区状态
        • 单击,不指定分区。
      4. 根据界面提示信息,通过SDK订阅消息,或者执行Docker命令订阅消息。
    • 发送方式选择Docker,运行Docker容器。
      1. 执行运行 Docker 容器生产示例消息区域的Docker命令,发送消息。
      2. 执行发送后如何消费消息?区域的Docker命令,订阅消息。
    • 发送方式选择SDK,根据您的业务需求,选择需要的语言或者框架的SDK以及接入方式,通过SDK体验消息收发。

查看分区状态

往指定分区发送消息后,查看该分区的状态。

Topic 管理页面,找到目标Topic,在其操作列中,选择更多 > 分区状态
表 1. 分区状态信息
参数 说明
分区ID 该Topic分区的ID号。
最小位点 该Topic在当前分区下的最小消费位点。
最大位点 该Topic在当前分区下的最大消费位点。
最近更新时间 本分区中最近一条消息的存储时间。
分区状态信息

按位点查询消息

  1. 登录消息队列Kafka版控制台
  2. 概览页面的资源分布区域,选择地域。
  3. 实例列表页面,单击目标实例名称。
  4. 在左侧导航栏,单击消息查询
  5. 消息查询页面的查询方式列表中,选择按位点查询
  6. Topic列表中,选择消息所属Topic名称;在分区列表中,选择消息所属的分区;在起始位点文本框,输入消息所在分区的位点,然后单击查询

    展示该查询位点及以后连续的消息。例如,指定的分区和位点都为“5”,那么返回的结果从位点“5”开始。

    表 2. 查询结果参数解释
    参数 描述
    分区 消息的Topic分区。
    位点 消息的所在的位点。
    Key 消息的键(已强制转化为String类型)。
    Value 消息的值(已强制转化为String类型),即消息的具体内容。
    消息创建时间 发送消息时,客户端自带的或是您指定的ProducerRecord中的消息创建时间。
    说明
    • 如果配置了该字段,则按配置值显示。
    • 如果未配置该字段,则默认取消息发送时的系统时间。
    • 如果显示值为1970/x/x x:x:x,则说明发送时间配置为0或其他有误的值。
    • 0.9及以前版本的消息队列Kafka版客户端不支持配置该时间。
    操作
    • 单击下载 Key:下载消息的键值。
    • 单击下载 Value:下载消息的具体内容。
    重要
    • 查询到的每条消息在控制台上最多显示1 KB的内容,超过1 KB的部分将自动截断。如需查看完整的消息内容,请下载相应的消息。
    • 仅专业版支持下载消息。
    • 下载的消息最大为10 MB。如果消息超过10 MB,则只下载10 MB的内容。