在调用 TCP 协议的 SDK 收发消息前,您需在消息队列 RocketMQ 版控制台创建相关资源。您在调用 SDK 时需填写这些资源信息。

背景信息

针对 TCP 和 HTTP 两种通信协议,消息队列 RocketMQ 版分别提供了多语言客户端 SDK 来收发消息。您需创建消息队列 RocketMQ 版实例、Topic 和 Group ID。由于 TCP 协议和 HTTP 协议的客户端各不相同,您需为两种协议分别创建不同的 Group ID,换言之,Group ID 不可跨协议使用。

网络访问限制

在使用消息队列 RocketMQ 版时,请注意以下网络访问限制:

  • 只有在同一个地域下的同一个实例中的 Topic 和 Group ID 才能互通,例如,某 Topic 创建在华东1(杭州)地域的实例 A 中,那么该 Topic 只能被在华东1(杭州)地域的实例 A 中创建的 Group ID 对应的生产端和消费端访问。
  • 如果您需要通过公网(例如在本地非阿里云 ECS 服务器)使用消息队列 RocketMQ 版服务,请将 Topic 和 Group ID 都创建在公网地域下的实例中。mq_internet_acess

    生产端和消费端可以部署在本地或者部署在任意地域的 ECS 上,前提是本地服务器或者相应的 ECS 需要能够访问公网。

    有关地域的详细介绍请参见地域和可用区

创建实例

实例是用于消息队列 RocketMQ 版服务的虚拟机资源,会存储消息主题(Topic)和客户端 ID(Group ID)信息。

  1. 登录消息队列 RocketMQ 版控制台
  2. 在顶部菜单栏,选择地域,如华东1(杭州)
  3. 在左侧导航栏,单击实例列表
  4. 实例列表页面,单击create_icon图标创建实例。
  5. 创建实例对话框,选择实例类型,并输入实例名描述,然后单击确认
    create-instance

    标准版和铂金版实例计费详情请参见规格类型

    您可以在实例列表查看到您刚创建的实例。

创建 Topic

Topic 是消息队列 RocketMQ 版里对消息的一级归类,例如创建 Topic_Trade 这一 Topic 来识别交易类消息,消息生产者将消息发送到 Topic_Trade,而消息消费者则通过订阅该 Topic 来获取和消费消息。Topic 的使用说明如下:
  • Topic 不能跨实例使用,例如在实例 A 中创建的 Topic A 不能在实例 B 中使用。
  • 在同一实例中 Topic 名称必须唯一。
  • 您可创建不同的 Topic 来发送不同类型的消息,例如用 Topic A 发送普通消息,Topic B 发送事务消息,Topic C 发送定时和延时消息。
  1. 在刚创建的实例所在页面的左侧导航栏,选择 Topic 管理 > 创建 Topic
  2. 创建 Topic 对话框中的 Topic 文本框中,输入 Topic 名称,选择该 Topic 的消息类型普通消息,输入该 Topic 的描述,然后单击确认
    create-topic
    说明 本文以收发普通消息为例进行说明,因此,您按照本文提供的步骤创建的普通消息的 Topic,不能用于收发其他类型的消息。换言之,不同消息类型的 Topic 不能混用。消息类型的更多信息,请参见消息类型
    您创建的 Topic 将出现在 Topic 列表中。

创建 Group ID

创建完实例和 Topic 后,您需要为消息的消费者(或生产者)创建客户端 ID ,即 Group ID 作为标识。Group ID 的使用说明如下:
  • 在同一实例中 Group ID 必须唯一。
  • Group ID 和 Topic 的关系是 N:N,即一个消费者可以订阅多个 Topic,同一个 Topic 也可以被多个消费者订阅;一个生产者可以向多个 Topic 发送消息,同一个 Topic 也可以接收来自多个生产者的消息。
说明 消费者必须有对应的 Group ID,生产者不做强制要求。
  1. 在刚创建的实例所在页面的左侧导航栏,单击 Group 管理
  2. Group 管理页面,选择 TCP 协议 > 创建 Group ID
  3. 创建 Group ID 对话框中,输入 Group ID描述,然后单击确认
    create-GID
    您创建的 Group ID 将出现在 Group ID 列表中。

获取接入点

在控制台创建好资源后,您需通过消息队列 RocketMQ 版控制台获取实例的接入点。在收发消息时,您需要为生产端和消费端配置该接入点,以此接入某个具体实例或地域的服务。

  1. 在刚创建的实例所在页面的左侧导航栏,单击实例详情
  2. 在默认显示的实例信息页签,找到 TCP 协议客户端接入点区域,将鼠标移动至所需的 TCP 协议客户端接入点并单击该接入点即可完成复制。
    TCP-endpoint

    接入点说明如下:

    • 您在控制台看到的 TCP 协议接入点是某地域下某个具体实例的接入点。同一地域下的不同实例的接入点各不相同。
    • 只有在公网地域的实例才有 TCP 协议的公网接入点。其余地域的实例均只有 TCP 协议的内网接入点。
    • TCP 协议的接入点不可跨地域使用,详情请参见配置 TCP 内网接入点
    说明 HTTP 协议和 TCP 协议的接入点不可混用。

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

后续步骤

调用 TCP 协议的 SDK 收发普通消息