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

一、下载安装RocketMq

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

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

选择一个目录解压,一般情况路径是:/usr/local/bin,下面是我自己的路径是:

Golang RocketMq安装及简单应用(Mac环境)_第2张图片

由于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

上述命令尽量按照顺序来执行!

分别打开两个窗口,启动之后分别可以看到如下:
image.png

image.png

二、根据个人需要可以安装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环境)_第3张图片

输入地址:127.0.0.1:8080,显示如下效果:

Golang RocketMq安装及简单应用(Mac环境)_第4张图片

三、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 main

import (
    "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())
    }
}

执行go run main.go 出现如下的结果:
Golang RocketMq安装及简单应用(Mac环境)_第5张图片
查看可视化界面:
Golang RocketMq安装及简单应用(Mac环境)_第6张图片

你可能感兴趣的:(后端golang)