# 使用客户端连接RocketMQ（关闭SSL）
本文主要介绍在Linux系统的命令行模式下连接关闭SSL的RocketMQ实例的方法。关闭SSL表示客户端和RocketMQ实例进行通信时，数据通过明文传输，性能更好。
#### 操作视频
本视频演示连接RocketMQ实例的操作。
因产品功能演进，操作界面可能存在差异，相关视频仅供参考，具体以实际环境为准。
<video controls="controls" preload="none" id="object3411135125" class="idp-external-video" src="https://res-video.hc-cdn.com/cloudbu-site/china/zh-cn/support/rocketmq-video/AccessingaRocketMQInstance.mp4" title="连接未开启SSL的RocketMQ实例" poster="https://support.huaweicloud.com/usermanual-hrm/zh-cn_image_0000002356580197.jpg" height="300.0000" width="600.0000"></video>
 #### 前提条件
- 已购买RocketMQ实例，并已将 "加密方式"设置为"PLAINTEXT"或"PERMISSIVE"。
- 客户端和RocketMQ实例之间网络已互通，具体网络要求请参见[连接RocketMQ网络要求](https://support.huaweicloud.com/usermanual-hrm/hrm-ug-075.html)页面。
- 已配置正确的安全组。 客户端访问RocketMQ实例时，需要在RocketMQ实例中配置正确的安全组规则，否则会连接失败。安全组规则的配置请参见[表2](https://support.huaweicloud.com/usermanual-hrm/hrm-ug-075.html#hrm-ug-075__table161395381402)或[表3](https://support.huaweicloud.com/usermanual-hrm/hrm-ug-075.html#hrm-ug-075__table068716651714)。
  
- 已获取RocketMQ实例的连接地址。
  在RocketMQ控制台的"概览 \> 连接信息"中可以获取到连接地址。
  - 如果客户端使用的是TCP协议，请获取"内网连接地址 IPv4"或"公网连接地址"。
  
  - 如果客户端使用的是gRPC协议，请获取"grpc连接地址 IPv4"或"grpc公网连接地址"。 仅5.x版本的RocketMQ实例涉及gRPC协议。
    
    
- 已[创建Topic](https://support.huaweicloud.com/usermanual-hrm/hrm-ug-008.html)并已获取Topic名称，且Topic具有发布和订阅权限。
- 客户端所在服务器已安装[Java Development Kit 1.8.111或以上版本](https://www.oracle.com/java/technologies/downloads/#java8)，并完成环境变量配置。环境变量的具体配置方法请参见[安装JDK并配置环境变量](https://support.huaweicloud.com/qs-hrm/hrm-qs-001.html#hrm-qs-001__li749112348369)。
- 客户端所在服务器需能访问公网，用于下载示例软件包。
 
#### 命令行模式连接实例
1. 使用SSH工具登录客户端所在服务器。
2. 下载"rocketmq-tutorial"示例软件包。 
   ```
   wget https://dms-demos.obs.cn-north-1.myhuaweicloud.com/rocketmq-tutorial.zip
   ```
   
   
3. 解压"rocketmq-tutorial"。 
   ```
   unzip rocketmq-tutorial.zip
   ```
   
   
4. （可选）如果RocketMQ实例开启了ACL访问控制，执行**mqadmin** 命令时，需要鉴权。
   
   切换到解压后的软件包目录下，在"conf/tools.yml"文件中，增加如下内容。
   ```
   accessKey:*******
   secretKey:*******
   ```
   accessKey和secretKey表示在控制台"实例管理 \> 用户管理"页面，创建的用户名和密钥，具体可参见[创建用户](https://support.huaweicloud.com/usermanual-hrm/hrm-ug-035.html#hrm-ug-035__section491614421020)。
   
   
5. 进入"rocketmq-tutorial/bin"目录。 
   ```
   cd rocketmq-tutorial/bin
   ```
   
   
6. 运行生产普通消息示例。
   
   ```
   sh mqadmin sendMessage -n "${连接地址}" -t ${Topic名称} -p "消息内容"
   ```
    表1生产消息参数说明 
   | 参数名称    | 说明                                                                                             | 取值示例                                                      |
   |:---|:---|:---|
   | 连接地址   | RocketMQ实例的连接地址，从[前提条件]中获取。       | 11.xxx.xxx.89:8200;11.xxx.xxx.144:8200（以公网连接地址为例，内网端口为8100） |
   | Topic名称 | RocketMQ实例下创建的Topic名称，从[前提条件]中获取。 | topic-test                                                  |
   | 消息内容     | 自定义生产消息的内容。 RocketMQ支持的最大消息大小是4 MB，且不支持修改。                         | hello rocketmq                                             |
      
   将[表1]的取值示例代入命令示例中，执行如下命令生产普通消息：
   ```
   sh mqadmin sendMessage -n "11.xxx.xxx.89:8200;11.xxx.xxx.144:8200" -t topic-test -p "hello rocketmq"
   ```
   显示如下红色方框中信息，则表示消息生产成功。
   ![](https://support.huaweicloud.com/usermanual-hrm/zh-cn_image_0000002371881673.png "点击放大")
   
   
7. 运行消费普通消息示例。 
   ```
   sh mqadmin consumeMessage -n "${连接地址}" -t ${Topic名称}
   ```
   将[表1]的取值示例代入命令示例中，执行如下命令消费普通消息：
   ```
   sh mqadmin consumeMessage -n "11.xxx.xxx.89:8200;11.xxx.xxx.144:8200" -t topic-test
   ```
   显示如下红色方框中信息，则表示消息消费成功。
   ![](https://support.huaweicloud.com/usermanual-hrm/zh-cn_image_0000002337843592.png "点击放大")
   如需停止消费使用**Ctrl+C**命令退出。
   
   
8. 运行生产带消息轨迹的消息示例。 
   ```
   sh mqadmin sendMessage -n "${连接地址}" -t ${Topic名称} -p "消息内容" -m true
   ```
   将[表1]的取值示例代入命令示例中，执行如下命令生产带消息轨迹的消息：
   ```
   sh mqadmin sendMessage -n "11.xxx.xxx.89:8200;11.xxx.xxx.144:8200" -t topic-test -p "hello rocketmq" -m true
   ```
   显示如下红色方框中信息，则表示消息生产成功。
   ![](https://support.huaweicloud.com/usermanual-hrm/zh-cn_image_0000002338003364.png "点击放大")
   
   
9. 运行消费消息示例，并发送消息轨迹。 
   ```
   sh mqadmin consumeMessage -n "${连接地址}" -t ${Topic名称} -m true
   ```
   将[表1]的取值示例代入命令示例中，执行如下命令消费带消息轨迹的消息：
   ```
   sh mqadmin consumeMessage -n "11.xxx.xxx.89:8200;11.xxx.xxx.144:8200" -t topic-test -m true
   ```
   显示如下红色方框中信息，则表示消息消费成功。
   ![](https://support.huaweicloud.com/usermanual-hrm/zh-cn_image_0000002371961529.png "点击放大")
   如需停止消费使用**Ctrl+C**命令退出。
   
   
 
#### 相关文档
- 关闭SSL的方法具体请参见[修改RocketMQ实例的SSL配置](https://support.huaweicloud.com/usermanual-hrm/hrm-ug-061.html)。
- 开启ACL访问控制和配置ACL用户信息的方法具体请参见[开启RocketMQ ACL访问](https://support.huaweicloud.com/usermanual-hrm/hrm-ug-070.html)和[配置RocketMQ ACL用户](https://support.huaweicloud.com/usermanual-hrm/hrm-ug-035.html)。
- [连接实例失败，报错RemotingTooMuchRequestException: sendDefaultImpl call timeout](https://support.huaweicloud.com/hrm-faq/hrm_faq_023.html)
- 消费消息后，对于消费失败且重试后依然失败的消息，可以在控制台的死信队列中进行重投，具体请参见[管理RocketMQ死信消息](https://support.huaweicloud.com/usermanual-hrm/hrm-ug-023.html)。
 
