全部产品
存储与CDN 数据库 安全 应用服务 数加·人工智能 数加·大数据基础服务 互联网中间件 视频服务 阿里云办公 培训与认证 物联网
消息队列 MQ

步骤二:申请资源

更新时间:2017-08-23 18:34:51

在 MQ 消息系统中,消息发布者将消息发送到某个指定的消息主题(Topic) ,而消息订阅者则通过订阅该指定的 Topic 来获取和消费消息。

一个新的应用接入 MQ 需要先申请相关的 MQ 资源,包括:

注意:当您删除相关资源,比如 Topic、消息发布者、消息生产者的时候,相关的资源也会在 10 分钟内进行清理。

创建 Topic

消息主题(Topic)是 MQ 里对消息进行的一级归类,比如可以创建“Topic_Trade”这一主题用来识别交易类消息。使用MQ的第一步需要先为您的应用申请 Topic 资源,即创建 Topic。

您可以按照以下步骤创建 Topic:

  1. 登录 MQ 控制台,默认进入Topic 管理页面。

  2. 在页面左上角选择相应的域(比如公网域),然后单击页面右上角的发布 Topic 按钮。

    注意:

    • 如果只是测试,或者需要在本地(非阿里云 ECS 服务器)使用 MQ 服务,请将 Topic 创建在公网环境。生产端和消费端可以部署在本地或者部署在任意地域的 ECS 上。本地服务器或者相应的 ECS 需要能够访问公网。
    • 如果在生产环境使用 MQ 服务,需要将应用部署在阿里云 ECS 上,同时 Topic 也需要在应用程序所在的地域进行创建。
    • Topic 不能跨域使用。比如 Topic 创建在“华北 2”这个域,那么消息生产端和消费端也必须运行在“华北 2”的 ECS 上。
    • 有关域的详细介绍请参见阿里云 ECS 文档地域选择说明
  3. 发布 Topic 对话框输入 Topic 名称及备注,单击确定。您创建的 Topic 将出现在 Topic 列表中。

    create_topic

  • Topic:Topic 名称必须全局唯一。如果名称已经被其他用户使用,您将无法创建相同名称的 Topic。
  • 消息类型:分为以下几种。

    • 无序消息:不保证先入先出(FIFO)的严格顺序,包含普通消息、定时消息、事务消息。建议创建不同的 Topic 来发送不同类型的消息,例如用 Topic A 发送普通消息,Topic B 发送事务消息, Topic C 发送延时/定时消息。
    • 全局顺序消息:所有消息严格按照 FIFO 的严格顺序进行发布和消费。
    • 分区顺序消息:消息根据 sharding key 进行分区,提高整体并发度与使用性能。同一个分区的消息严格按照 FIFO 的严格顺序进行发布和消费。
    • Kafka 消息:兼容 MQ 及 Kafka 协议(kafka-client-0.10 及以上版本)的消息类型。

创建 Producer ID

创建好 Topic 后,要为这个 Topic 申请消息生产端的资源,即创建 Producer ID。一个 Topic 只能对应一个 Producer ID。

请按照以下步骤为您的 Topic 创建 Producer ID:

  1. 在 MQ 控制台左侧菜单栏选择Topic 管理

  2. 在 Topic 列表中找到您刚刚创建的 Topic,单击操作选项中的申请发布

    publish

  3. 申请发布对话框输入 Producer ID,单击确定

    注意:

    • Producer ID 必须全局唯一。如果名称已存在,您将无法创建相同名称的 Producer ID。
    • Topic对应的生产端必须和这个 Topic 在同一个域,比如您在“公网”域创建了“Topic_open”,那么和“Topic_open”对应的 Producer ID 也必须在同一个域。
    • Producer ID 和 Topic 的关系是 1:N,即一个 Topic 只能绑定一个 Producer ID, 但是同一个 Producer ID 可以对应多个 Topic。

创建 Consumer ID

创建好消息生产关系后,您需要为 Topic 申请相应的消息消费资源,即创建 Consumer ID。

请按以下步骤创建 Consumer ID:

  1. 在 MQ 控制台左侧菜单栏选择 Topic 管理

  2. 找到您创建的 Topic,单击右侧操作选项里的申请订阅

  3. 订阅 Topic对话框输入 Consumer ID,单击确定

    subscribe

    注意:

    • Consumer ID 必须全局唯一。如果名称已存在,您将无法创建相同名称的 Consumer ID。
    • Consumer ID 必须和对应的 Topic 在同一个域,比如给“公网”域的“Topic_open”绑定 Consumer ID “CID_123”后,“华北1”域内的“Topic_huabei1”将不能绑定同一个 Consumer ID。
    • Consumer ID 和 Topic 的关系是 N:N。同一个 Consumer ID 可以订阅多个 Topic,同一个 Topic 也可以对应多个 Consumer ID。

创建阿里云 AccessKey 和 SecretKey

在调用 SDK/API 进行消息发送和订阅的时候,除了需要指定创建的 Topic, Producer ID 以及 Consumer ID 以外,还需输入您在阿里云服务器管理控制台创建的身份验证信息,即 Access Key ID 和 Acess Key Secret。

请登录阿里云服务器管理控制台创建密钥。如果您已经创建了 Access Key ID 和 Acess Key Secret,也可以返回此页面查看密钥。

aliyun

完成以上准备工作后,您就可以运行示例代码,用 MQ 进行消息发送和订阅了。

本文导读目录