在使用消息队列 Kafka 版进行消息收发之前,您需要先在消息队列 Kafka 版控制台上创建资源,否则将无法通过鉴权认证及使用相关的管控运维功能。这里的资源概念是指 Topic 和 Consumer Group。

步骤一:创建 Topic

消息主题(Topic)是消息队列 Kafka 版里对消息进行的一级归类,例如可以创建 “Topic_Trade” 这一主题用来识别交易类消息。使用消息队列 Kafka 版的第一步就是先为您的应用创建 Topic。

请按照以下步骤创建 Topic:

  1. 登录消息队列 Kafka 版控制台。在顶部导航栏,选择地域。
  2. 在左侧导航栏,单击 Topic管理
  3. Topic管理页面,单击创建Topic 按钮。
  4. 创建Topic对话框,设置 Topic 属性,然后单击创建
    • 标准版实例:

      创建Topic 页面,输入 Topic 名称,选择标签,选择 Topic 所在的实例,输入备注,选择分区数,然后单击创建

    • 专业版实例:

      创建Topic 页面,输入 Topic 名称,选择标签,选择 Topic 所在的实例,输入备注,选择分区数,单击高级设置,选择存储引擎消息类型,然后单击创建

      参数 说明
      存储引擎 消息队列 Kafka 版支持以下存储引擎:
      • 云存储:底层接入阿里云云盘,具有低时延、高性能、持久性、高可靠等特点,采用分布式 3 副本机制。如需 900 GB 磁盘容量,由于 3 副本,则需购买 2700 GB 磁盘容量。
      • Local存储:使用原生 Kafka 的 ISR 复制算法,采用分布式 3 副本机制,且 min.insync.replicas = 2。如需 900 GB 磁盘容量,由于 3 副本,则需购买 2700 GB 磁盘容量。
        注意 目前仅开源版本为 2.2.0 的专业版消息队列 Kafka 版实例支持 Local 存储,如需升级实例服务版本,详情请参见升级实例服务版本

      关于两种存储引擎的对比,详情请参见Topic 存储最佳实践

      cleanup.policy

      当您选择了 Local 存储时,才需配置日志清理策略(cleanup.policy)。消息队列 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 设置该属性。具体详情请仔细阅读各生态组件的 Demo 文档
      消息类型 消息队列 Kafka 版支持以下消息类型:
      • 普通消息:默认情况下,保证相同 Key 的消息分布在同一个分区中,且分区内消息按照发送顺序存储。集群中出现机器宕机时,可能会造成消息乱序。
      • 分区顺序消息:默认情况下,保证相同 Key 的消息分布在同一个分区中,且分区内消息按照发送顺序存储。集群中出现机器宕机时,仍然保证分区内按照发送顺序存储。但是会出现部分分区发送消息失败,等到分区恢复后即可恢复正常。
      说明
      • Topic 也需要在应用程序所在的地域(即所部署的 ECS 的所在地域)进行创建。
      • Topic 不能跨地域使用。例如 Topic 创建在华北2(北京)这个地域,那么消息生产端和消费端也必须运行在华北2(北京)的 ECS 上。
      • 地域的详细介绍请参见 ECS 文档中的地域和可用区

    完成后,您创建的 Topic 将出现在 Topic管理页面的列表中。

步骤二:创建 Consumer Group

创建完 Topic 后,请按以下步骤创建 Consumer Group:

  1. 消息队列 Kafka 版控制台的左侧导航栏,单击 Consumer Group管理
  2. Consumer Group管理页面,单击 创建Consumer Group
  3. 创建Consumer Group 页面,填写 Consumer Group 的名称,并选择该 Consumer Group 所在的实例,选择标签,然后单击创建

完成后,您创建的 Consumer Group 将出现在 Consumer Group管理页面的列表中。

注意 Consumer Group 和 Topic 的关系是 N:N。 同一个 Consumer Group 可以订阅多个 Topic,同一个 Topic 也可以被多个 Consumer Group 订阅。