golang操作rocketmq的示例代码


Posted in Golang onApril 06, 2022

下载

go get github.com/apache/rocketmq-client-go/v2

代码

func main() {
	// 1. 创建主题
	//CreateTopic("test-04", 10909)
	// 2. 生产者向主题中发送消息
	//SendSyncMessage("hello world0002")
	// 3. 消费者订阅主题并消费
	SubscribeMessage()
}
func CreateTopic(topicName string, port int) {
	// 创建主题
	testAdmin, err := admin.NewAdmin(admin.WithResolver(primitive.NewPassthroughResolver([]string{"ip:server_port"})))
	if err != nil {
		fmt.Println(err)
	}
	err = testAdmin.CreateTopic(
		context.Background(),
		admin.WithTopicCreate(topicName),
		admin.WithBrokerAddrCreate(fmt.Sprintf("ip:%d", port)),
	)
	fmt.Println(err)
func SendSyncMessage(message string) {
	endPoint := []string{"ip:server_port"}
	p, err := rocketmq.NewProducer(
		producer.WithNameServer(endPoint),
		//producer.WithNsResolver(primitive.NewPassthroughResolver(endPoint)),
		producer.WithRetry(2),
	err = p.Start()
	result, err := p.SendSync(context.Background(), &primitive.Message{
		Topic: "test",
		Body:  []byte(message),
	})
	fmt.Println(result.Status, result)
func SubscribeMessage() {
	// 订阅主题、并消费
	c, err := rocketmq.NewPushConsumer(
		consumer.WithNameServer(endPoint),
		consumer.WithConsumerModel(consumer.Clustering),
		consumer.WithGroupName("GID_TEST01"),
		//fmt.Println(err)
	err = c.Subscribe("test", consumer.MessageSelector{}, func(ctx context.Context,
		msgs ...*primitive.MessageExt) (consumer.ConsumeResult, error) {
		for i := range msgs {
			fmt.Printf("subscribe callback: %v \n", msgs[i])
		}
		return consumer.ConsumeSuccess, nil
		//fmt.Println(err.Error())
	// Note: start after subscribe
	err = c.Start()
		os.Exit(-1)
	c.Shutdown()

参考文档

到此这篇关于golang操作rocketmq的示例代码的文章就介绍到这了,更多相关golang操作rocketmq内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Golang 相关文章推荐
goland 清除所有的默认设置操作
Apr 28 Golang
go语言中json数据的读取和写出操作
Apr 28 Golang
golang 接口嵌套实现复用的操作
Apr 29 Golang
Golang: 内建容器的用法
May 05 Golang
解决goland 导入项目后import里的包报红问题
May 06 Golang
go语言中http超时引发的事故解决
Jun 02 Golang
Golang 语言控制并发 Goroutine的方法
Jun 30 Golang
go开发alertmanger实现钉钉报警
Jul 16 Golang
Golang Elasticsearches 批量修改查询及发送MQ
Apr 19 Golang
Go获取两个时区的时间差
Apr 20 Golang
Go Grpc Gateway兼容HTTP协议文档自动生成网关
Jun 16 Golang
Go微服务项目配置文件的定义和读取示例详解
Jun 21 Golang
victoriaMetrics库布隆过滤器初始化及使用详解
如何解决goland,idea全局搜索快捷键失效问题
golang为什么要统一错误处理
简单聊聊Golang中defer预计算参数
Mar 25 #Golang
Go 中的空白标识符下划线
golang生成vcf通讯录格式文件详情
golang实现浏览器导出excel文件功能
You might like
PHP产生随机字符串函数
2006/12/06 PHP
PHP cron中的批处理
2008/09/16 PHP
PHP函数按引用传递参数及函数可选参数用法示例
2018/06/04 PHP
PHP基于PDO扩展操作mysql数据库示例
2018/12/24 PHP
yii框架数据库关联查询操作示例
2019/10/14 PHP
jquery tools 系列 scrollable(2)
2009/09/06 Javascript
避免 showModalDialog 弹出新窗体的原因分析
2010/05/31 Javascript
jquery 操作DOM的基本用法分享
2012/04/05 Javascript
SeaJS入门教程系列之使用SeaJS(二)
2014/03/03 Javascript
Javascript正则控制文本框只能输入整数或浮点数
2014/09/02 Javascript
使用JavaScript 编写简单计算器
2014/11/24 Javascript
JS清除文本框内容离开在恢复及鼠标离开文本框时触发js的方法
2016/01/12 Javascript
jQuery+PHP实现微信转盘抽奖功能的方法
2016/05/25 Javascript
JSON字符串转换JSONObject和JSONArray的方法
2016/06/03 Javascript
AngularJs html compiler详解及示例代码
2016/09/01 Javascript
jquery hover 不停闪动问题的解决方法(亦为stop()的使用)
2017/02/10 Javascript
js实现PC端根据IP定位当前城市地理位置
2017/02/22 Javascript
关于javascript作用域的常见面试题分享
2017/06/18 Javascript
JS设计模式之单例模式(一)
2017/09/29 Javascript
vue2配置scss的方法步骤
2019/06/06 Javascript
layui动态表头的实现代码
2019/08/22 Javascript
一篇文章带你浅入webpack的DLL优化打包
2020/02/20 Javascript
[05:39]2014DOTA2西雅图国际邀请赛 淘汰赛7月14日TOPPLAY
2014/07/14 DOTA
[41:17]完美世界DOTA2联赛PWL S3 access vs CPG 第二场 12.13
2020/12/17 DOTA
python写入xml文件的方法
2015/05/08 Python
Python如何实现爬取B站视频
2020/05/20 Python
Pymysql实现往表中插入数据过程解析
2020/06/02 Python
python操作toml文件的示例代码
2020/11/27 Python
Python 实现RSA加解密文本文件
2020/12/30 Python
amazeui页面校验功能的实现代码
2020/08/24 HTML / CSS
萨克斯第五大道精品百货店: Saks Fifth Avenue
2017/04/28 全球购物
大学自荐信
2013/12/12 职场文书
中学生爱国演讲稿
2013/12/31 职场文书
《鲁班和橹板》教学反思
2014/04/27 职场文书
2014年外联部工作总结
2014/11/17 职场文书
怎样做好公众演讲能力?
2019/08/28 职场文书