注意,当前使用的不是grpc协议
生产者
package main
import (
"context"
"fmt"
"github.com/apache/rocketmq-client-go/v2"
"github.com/apache/rocketmq-client-go/v2/primitive"
"github.com/apache/rocketmq-client-go/v2/producer"
"time"
)
func main() {
newProducer, err := rocketmq.NewProducer(producer.WithNameServer([]string{"192.168.252.128:9876"}), producer.WithRetry(2))
defer func(newProducer rocketmq.Producer) {
err := newProducer.Shutdown()
if err != nil {
panic("关闭producer失败")
}
}(newProducer)
if err != nil {
panic("生成producer失败")
}
if err = newProducer.Start(); err != nil {
panic("启动producer失败")
}
res, err := newProducer.SendSync(context.Background(), primitive.NewMessage("SimpleTopic", []byte("一条简单消息")))
if err != nil {
panic("消息发送失败" + err.Error())
}
nowStr := time.Now().Format("2006-01-02 15:04:05")
fmt.Printf("%s: 消息: %s发送成功 \n", nowStr, res.String())
}
消费者
package main
import (
"context"
"fmt"
"github.com/apache/rocketmq-client-go/v2"
"github.com/apache/rocketmq-client-go/v2/consumer"
"github.com/apache/rocketmq-client-go/v2/primitive"
"time"
)
func main() {
newPushConsumer, err := rocketmq.NewPushConsumer(consumer.WithNameServer([]string{"192.168.252.128:9876"}), consumer.WithGroupName("test"))
defer func(newPushConsumer rocketmq.PushConsumer) {
err := newPushConsumer.Shutdown()
if err != nil {
panic("关闭consumer失败")
}
}(newPushConsumer)
err = newPushConsumer.Subscribe("SimpleTopic", consumer.MessageSelector{}, func(ctx context.Context, msgs ...*primitive.MessageExt) (consumer.ConsumeResult, error) {
for _, msg := range msgs {
nowStr := time.Now().Format("2006-01-02 15:04:05")
fmt.Printf("%s 读取到一条消息,消息内容: %s \n", nowStr, string(msg.Body))
}
return consumer.ConsumeSuccess, nil
})
if err != nil {
fmt.Println("读取消息失败")
}
if err = newPushConsumer.Start(); err != nil {
panic("启动consumer失败")
}
time.Sleep(time.Hour)
}
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)