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

前提条件

您已根据网络环境购买并部署消息队列Kafka版服务:

背景信息

在成功部署消息队列Kafka版服务后,您需要创建Topic和Consumer Group。
  • Topic:消息队列Kafka版里对消息进行的一级归类,例如可以创建 “Topic_Trade” 这一主题用来识别交易类消息。使用消息队列Kafka版的第一步就是先为您的应用创建Topic。
  • Consumer Group:一类Consumer,这类Consumer通常接收并消费同一类消息,且消费逻辑一致。Consumer Group和Topic的关系是N:N,即同一个Consumer Group可以订阅多个Topic,同一个Topic也可以被多个Consumer Group订阅。

步骤一:创建Topic

请按照以下步骤创建Topic:

  1. 登录消息队列Kafka版控制台
  2. 在顶部菜单栏,选择地域。
    注意 Topic需要在应用程序所在的地域(即所部署的ECS的所在地域)进行创建。Topic不能跨地域使用。例如Topic创建在华北2(北京)这个地域,那么消息生产端和消费端也必须运行在华北2(北京)的ECS上。地域详情,请参见地域和可用区
  3. 在左侧导航栏,单击Topic管理
  4. Topic管理页面,单击创建Topic
  5. 创建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设置该属性。详情请参见消息队列Kafka版Demo库
      消息类型 消息队列Kafka版支持以下消息类型:
      • 普通消息:默认情况下,保证相同Key的消息分布在同一个分区中,且分区内消息按照发送顺序存储。集群中出现机器宕机时,可能会造成消息乱序。
      • 分区顺序消息:默认情况下,保证相同Key的消息分布在同一个分区中,且分区内消息按照发送顺序存储。集群中出现机器宕机时,仍然保证分区内按照发送顺序存储。但是会出现部分分区发送消息失败,等到分区恢复后即可恢复正常。
    完成后,您创建的Topic将出现在Topic管理页面的列表中。

步骤二:创建Consumer Group

请按照以下步骤创建Consumer Group:

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

后续步骤

根据网络环境使用SDK收发消息: