全部产品
云市场

发送一条普通消息

更新时间:2019-09-18 12:45:48

本教程的学习目标如下:

  1. 定义并注册一个合法的消息主题。
  2. 定义发布者唯一标识 groupId
  3. 掌握消息发布者的配置方式。
  4. 掌握查询消息发送日志的方式。

配置消息主题元数据

消息类型为消息分类的维度,是消息队列产品的一个关键概念。由 TOPIC 和 EVENTCODE 共同唯一标识。通常描述如下:

发布者 A 发送消息类型 TP_DEFAULTEC_DEFAULT

消息类型必须经过注册以后才会生效,否则发送者无法成功发送消息。本教程中使用的 TOPIC 和 EVENTCODE 分别定义为 TP_DEFAULTEC_DEFAULT。关于消息类型元数据添加步骤,参见 新增消息主题

命名发布者唯一标识

发布者为发送消息的应用,是消息中间件的一个关键角色。

发布者的唯一标识为 groupId,命名约定形式为 P\_appname\_service。其中,前缀 “P_” 代表 Publisher。在本教程中,我们将其命名为 P_mq_tutorial

发布者 groupId 不需要申请,只需要在应用中配置,主要通过约定形式保证唯一性。

添加消息队列依赖

打开 mqtutorial-publish-message 根目录下的配置文件 pom.xml, 可以看到已经添加好的消息队列依赖:

  1. <!-- mq dependency -->
  2. <dependency>
  3. <groupId>com.alipay.boot</groupId>
  4. <artifactId>mq-spring-boot-starter</artifactId>
  5. <version>${mq.version}</version>
  6. </dependency>

配置消息发布者

打开配置文件 mqtutorial-publish-message-endpoint 查看发布者配置,具体路径如下:

  1. mqtutorial-publish-message/app/endpoint/src/main/resources/META-INF/mqtutorial-publish-message/mqtutorial-publish-message-endpoint.xml

发布者配置的核心元素是 sofa:publisher,具体内容如下:

  1. <!-- Declare a publisher bean with id "mqPublisher" -->
  2. <sofa:publisher id="mqPublisher" group="P_mq_tutorial">
  3. <sofa:channels>
  4. <sofa:channel value="TP_DEFAULT"/>
  5. </sofa:channels>
  6. <sofa:binding.msg_broker/>
  7. </sofa:publisher>

以上配置中有三个关键元素,具体说明如下:

  • id 属性值是 Spring Bean 唯一标识,用于服务依赖注入。
  • group 属性值是发布者 group,请修改为 自定义的 groupId
  • sofa:channel 元素的 value 属性值是需要发送的消息类型 TOPIC 值。

打开源代码文件 com.antcloud.tutorial.mq.endpoint.service.MqService,查看具体发送消息示例。

mqtutorial-publish-message 项目发布部署到 SOFAStack 平台上。具体发布部署方式,参见 发布应用