准备环境
资源链接

Demo示例包含SDK包,新创建的工程需要引入SDK包,如果直接在Demo示例工程进行编码,则不需要单独下载SDK包。
下文以Linux系统为例介绍Java客户端如何连接DMS服务。
开发环境
Eclipse:Eclipse 3.6.0及以上版本,可至Eclipse官方网站下载。
JDK:Java Development Kit 1.8.111及以上版本,可至Oracle官方下载页面下载。
Maven:Apache Maven 3.0.3及以上版本,可至Maven官方下载页面下载。
获取队列ID和消费组的ID

使用SDK接口访问DMS队列服务,需要先创建队列和消费组,当前DMS队列仅支持在控制台或使用API方式创建队列和创建消费组,不支持从客户端创建。
生产消息和消费消息的功能,可参考示例代码导读,可通过客户端实现。
本章节以在控制台创建队列、消费组和获取队列ID、消费组ID操作为例,使用API的方式,请参考《分布式消息服务 API参考》。
操作步骤如下:
- 登录管理控制台。
- 单击“服务列表”,选择“应用服务 > 分布式消息服务”,进入分布式消息服务信息页面。
- 单击左侧菜单栏的“队列管理”。
- 在“队列管理”页面,单击页面上方的“创建队列”。
每个用户默认最多可以创建30个队列,您可以在“删除队列”按钮上面看到您还可以创建多少个队列。如果您想创建更多队列,请联系客服申请增加配额。
- 填写队列名称和描述信息。
表1 参数说明 参数
说明
队列名称
队列的名称,必须唯一。
DMS为您自动生成了队列名称,您可以根据需要修改,队列名称只能包含a~z,A~Z,0-9,-,_,长度是[1,64]。
创建队列后不能修改名称。
队列类型
- 普通队列:包括分区有序和全局有序
- Kafka队列:支持使用开源kafka客户端进行生产消息和消费消息,支持高吞吐和高可靠两种模式。
队列模式
队列类型为普通队列时,队列模式取值范围:- 分区有序:的普通队列具有更高的并发性能,不保证先入先出(FIFO)的严格顺序。
- 全局有序:的普通队列保证消息先入先出(FIFO)的严格顺序。
队列类型为Kafka队列时,队列模式取值范围:- 高吞吐:消息副本异步落盘,具有较高的性能
- 高可靠:消息多副本同步落盘,保证消息的可靠性。
是否开启死信
仅队列类型为普通队列时,才有该参数。
是否开启死信消息,死信消息是指无法被正常消费的消息。
当达到最大消费次数仍然消费失败后,DMS会将该条消息转存到死信队列中,有效期为72小时,用户可以根据需要对死信消息进行重新消费。
消费死信消息时,只能消费该消费组产生的死信消息。
全局有序的队列的死信消息依然按照先入先出(FIFO)的顺序存储在死信队列中。
默认值:关闭。
最大消费次数
仅开启死信时,才有该参数。
消息进入死信队列前可重复接收次数。
取值范围:1~100
默认值:3
描述(可选)
队列描述不能包含<>,长度是[0,160]。
图1 创建队列 - 单击“确定”。创建队列完成。
- 单击队列名称,显示队列详情,获取队列ID,如图2所示。
- 单击“创建消费组”。进入“创建消费组”页面。
- 填写消费组的名称。
DMS为您自动生成了消费组名称,您可以根据需要修改,消费组的名称只能包含a~z,A~Z,0~9,-,_,长度是[1,32]。同个队列的消费组名称不能重复。
- 单击“确定”。创建消费组完成,获取消费组ID,如图3所示。
获取project id
在调用接口的时候,需要填入项目编号project_id,所以需要先在管理控制台上获取到项目编号,步骤如下:
- 注册并登录管理控制台。
- 单击用户名,在下拉列表中单击“我的凭证”。
- 在“我的凭证”页面的“项目列表”中查看项目ID。
获取AK/SK
- 登录管理控制台。
- 单击用户名,在下拉列表中单击“我的凭证”。
- 在“我的凭证”页,单击“管理访问密钥”页签。
- 单击“新增访问密钥”,进入“新增访问密钥”页面。
- 输入当前用户的登录密码。
- 通过邮箱或者手机进行验证,输入对应的验证码。
- 单击“确定”,下载访问密钥。
为防止访问密钥泄露,建议您将其保存到安全的位置。
- 保存文件到本地,从下载的credentials.csv文件中获取“Access Key Id”和“Secret Access Key”。
获取区域和Endpoint
Region |
Endpoint |
说明 |
---|---|---|
中国-香港 |
dms-tcp.ap-southeast-1.myhuaweicloud.com |
使用该Endpoint访问DMS服务。 |
购买弹性云服务器
- 使用DMS TCP SDK之前,需要购买弹性云服务器ECS,否则公网无法直接访问DMS。
弹性IP用于登录弹性云服务器,以及上传文件等。
环境信息汇总
类型 |
项目 |
收集的信息- |
---|---|---|
弹性云服务器 |
弹性IP |
- |
用户名 |
- |
|
密码 |
- |
|
分布式消息服务 |
队列名称 |
- |
队列ID |
- |
|
队列类型 |
- |
|
队列模式 |
- |
|
消费组名称 |
- |
|
消费组ID |
- |
|
访问密钥 |
AK (Access Key Id) |
- |
SK (Secret Access Key) |
- |
|
项目ID |
所属区域 |
- |
项目 |
- |
|
项目ID |
- |
|
区域和Endpoint |
区域名称 |
- |
Endpoint |
- |
|
DNS |
DNS服务器IP |
- |