Golang RocketMq安装及简单应用(Mac环境)

一、下载安装RocketMq

地址:https://rocketmq.apache.org/dowloading/releases/

我选择的是这个二进制版本安装:
Golang RocketMq安装及简单应用(Mac环境)
文章图片

选择一个目录解压,一般情况路径是:/usr/local/bin,下面是我自己的路径是:
Golang RocketMq安装及简单应用(Mac环境)
文章图片

由于RocketMq是纯java编写,确认自己是否有jdk环境,执行如下命令:
cd rocketmq-all-5.0.0-ALPHA-bin-release/bin ./mqnamesrv -n 127.0.0.1:9876 ./bin/mqbroker -n 127.0.0.1:9876 -c conf/broker.conf autoCreateTopicEnable=true

上述命令尽量按照顺序来执行!
分别打开两个窗口,启动之后分别可以看到如下:
Golang RocketMq安装及简单应用(Mac环境)
文章图片

Golang RocketMq安装及简单应用(Mac环境)
文章图片

二、根据个人需要可以安装RocketMq可视化工具界面:下载链接如下:
https://github.com/apache/rocketmq-dashboard/tree/release-1.0.0

执行如下命令:(确认已安装mvn!)
cd rocketmq-externals-rocketmq-console-1.0.0/rocketmq-console mvn clean package -Dmaven.test.skip=true

上述命令执行成功后会在rocketmq-externals-rocketmq-console-1.0.0/rocketmq-console下产生一个target文件夹,执行如下命令:
cd target java -jar rocketmq-console-ng-1.0.0.jar --server.port=8080 --rocketmq.config.namesrvAddr=127.0.0.1:9876

成功界面:
Golang RocketMq安装及简单应用(Mac环境)
文章图片

输入地址:127.0.0.1:8080,显示如下效果:
Golang RocketMq安装及简单应用(Mac环境)
文章图片

三、golang介入
执行如下命令:
go get github.com/apache/rocketmq-client-go/v2 go get github.com/apache/rocketmq-client-go/v2/primitive go get github.com/apache/rocketmq-client-go/v2/producer

创建main.go文件,下面的例子是同步生产消息机制
package mainimport ( "context" "fmt" "os" "strconv""github.com/apache/rocketmq-client-go/v2" "github.com/apache/rocketmq-client-go/v2/primitive" "github.com/apache/rocketmq-client-go/v2/producer" )func main() {p, _ := rocketmq.NewProducer( producer.WithNsResolver(primitive.NewPassthroughResolver([]string{"127.0.0.1:9876"})), producer.WithRetry(2), ) err := p.Start() if err != nil { fmt.Printf("start producer error: %s", err.Error()) os.Exit(1) } topic := "testmq"for i := 0; i < 10; i++ { msg := &primitive.Message{ Topic: topic, Body:[]byte("Hello RocketMQ Go Client! " + strconv.Itoa(i)), } res, err := p.SendSync(context.Background(), msg)if err != nil { fmt.Printf("send message error: %s\n", err) } else { fmt.Printf("send message success: result=%s\n", res.String()) } } err = p.Shutdown() if err != nil { fmt.Printf("shutdown producer error: %s", err.Error()) } }

【Golang RocketMq安装及简单应用(Mac环境)】执行go run main.go 出现如下的结果:
Golang RocketMq安装及简单应用(Mac环境)
文章图片

查看可视化界面:
Golang RocketMq安装及简单应用(Mac环境)
文章图片

    推荐阅读