使用客户端连接RocketMQ(开启SSL)
实例开启SSL时,数据使用加密传输,安全性更高。本文主要介绍在Linux系统的命令行模式下,调用TCP协议连接已开启SSL的RocketMQ实例。
创建实例时或者在实例基本信息中,将“SSL”配置为“SSL”或“PERMISSIVE”(通过密文传输),即为已开启SSL。
前提条件
- 已创建RocketMQ实例,并记录实例详情中的“连接地址”(内网访问)/“公网连接地址”(公网访问)。内网访问的连接端口为8100,公网环境下访问的连接端口为8200。
- 客户端和RocketMQ实例之间网络已互通,具体网络要求参见连接RocketMQ网络要求页面。
- 已配置安全组。
- 已创建Topic。
- 客户端所在服务器已安装Java Development Kit 1.8.111或以上版本,并完成环境变量配置。
命令行模式连接实例
- 登录客户端所在服务器。
- 下载“rocketmq-tutorial”示例软件包。
wget https://dms-demos.obs.cn-north-1.myhuaweicloud.com/rocketmq-tutorial.zip
- 解压“rocketmq-tutorial”。
unzip rocketmq-tutorial.zip
- (可选)如果RocketMQ实例开启了ACL访问控制,执行mqadmin命令时,需要鉴权。
切换到解压后的软件包目录下,在“conf/tools.yml”文件中,增加如下内容。
accessKey:******* secretKey:*******
accessKey和secretKey表示在控制台“用户管理”页面,创建的用户名和密钥,具体可参见创建用户。
- 进入“rocketmq-tutorial/bin”目录。
cd rocketmq-tutorial/bin
- 运行生产普通消息示例。
JAVA_OPT=-Dtls.enable=true sh mqadmin sendMessage -n "${连接地址}" -t ${Topic名称} -p "hello rocketmq"
参数说明如下:
- 连接地址:表示RocketMQ实例的“连接地址”(内网访问)/“公网连接地址”(公网访问)。
- Topic名称:RocketMQ实例下创建的Topic名称。
示例如下,其中“11.xxx.xxx.89:8200;11.xxx.xxx.144:8200”为RocketMQ实例的元数据公网连接地址,“topic-test”为Topic名称。
JAVA_OPT=-Dtls.enable=true sh mqadmin sendMessage -n "11.xxx.xxx.89:8200;11.xxx.xxx.144:8200" -t topic-test -p "hello rocketmq"
使用Ctrl+C命令退出。
- 运行消费普通消息示例。
JAVA_OPT=-Dtls.enable=true sh mqadmin consumeMessage -n "${连接地址}" -t ${Topic名称}
参数说明如下:
- 连接地址:表示RocketMQ实例的“连接地址”(内网访问)/“公网连接地址”(公网访问)。
- Topic名称:RocketMQ实例下创建的Topic名称。
示例如下,其中“11.xxx.xxx.89:8200;11.xxx.xxx.144:8200”为RocketMQ实例的元数据公网连接地址,“topic-test”为Topic名称。
JAVA_OPT=-Dtls.enable=true sh mqadmin consumeMessage -n "11.xxx.xxx.89:8200;11.xxx.xxx.144:8200" -t topic-test
如需停止消费使用Ctrl+C命令退出。
- 运行生产带消息轨迹的消息示例。
JAVA_OPT=-Dtls.enable=true sh mqadmin sendMessage -n "${连接地址}" -t ${Topic名称} -p "hello rocketmq" -m true
参数说明如下:
- 连接地址:表示RocketMQ实例的“连接地址”(内网访问)/“公网连接地址”(公网访问)。
- Topic名称:RocketMQ实例下创建的Topic名称。
示例如下,其中“11.xxx.xxx.89:8200;11.xxx.xxx.144:8200”为RocketMQ实例的元数据公网连接地址,“topic-test”为Topic名称。
JAVA_OPT=-Dtls.enable=true sh mqadmin sendMessage -n "11.xxx.xxx.89:8200;11.xxx.xxx.144:8200" -t topic-test -p "hello rocketmq" -m true
使用Ctrl+C命令退出。
- 运行消费消息示例,并发送消息轨迹。
JAVA_OPT=-Dtls.enable=true sh mqadmin consumeMessage -n "${连接地址}" -t ${Topic名称} -m true
参数说明如下:
- 连接地址:表示RocketMQ实例的“连接地址”(内网访问)/“公网连接地址”(公网访问)。
- Topic名称:RocketMQ实例下创建的Topic名称。
示例如下,其中“11.xxx.xxx.89:8200;11.xxx.xxx.144:8200”为RocketMQ实例的元数据公网连接地址,“topic-test”为Topic名称。
JAVA_OPT=-Dtls.enable=true sh mqadmin consumeMessage -n "11.xxx.xxx.89:8200;11.xxx.xxx.144:8200" -t topic-test -m true
使用Ctrl+C命令退出。