一、下载安装RocketMq
地址:https://rocketmq.apache.org/dowloading/releases/
我选择的是这个二进制版本安装:
文章图片
选择一个目录解压,一般情况路径是:/usr/local/bin,下面是我自己的路径是:
文章图片
由于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
上述命令尽量按照顺序来执行!
分别打开两个窗口,启动之后分别可以看到如下:
文章图片
文章图片
二、根据个人需要可以安装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
成功界面:
文章图片
输入地址:127.0.0.1:8080,显示如下效果:
文章图片
三、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 出现如下的结果:
文章图片
查看可视化界面:
文章图片