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 相关文章推荐
go原生库的中bytes.Buffer用法
Apr 25 Golang
Golang 实现超大文件读取的两种方法
Apr 27 Golang
golang 生成对应的数据表struct定义操作
Apr 28 Golang
golang goroutine顺序输出方式
Apr 29 Golang
golang elasticsearch Client的使用详解
May 05 Golang
go语言中GOPATH GOROOT的作用和设置方式
May 05 Golang
Golang生成Excel文档的方法步骤
Jun 09 Golang
golang 语言中错误处理机制
Aug 30 Golang
Go语言安装并操作redis的go-redis库
Apr 14 Golang
Golang Elasticsearches 批量修改查询及发送MQ
Apr 19 Golang
Golang 并发编程 SingleFlight模式
Apr 26 Golang
Golang 入门 之url 包
May 04 Golang
victoriaMetrics库布隆过滤器初始化及使用详解
如何解决goland,idea全局搜索快捷键失效问题
golang为什么要统一错误处理
简单聊聊Golang中defer预计算参数
Mar 25 #Golang
Go 中的空白标识符下划线
golang生成vcf通讯录格式文件详情
golang实现浏览器导出excel文件功能
You might like
fleaphp rolesNameField bug解决方法
2011/04/23 PHP
Php output buffering缓存及程序缓存深入解析
2013/07/15 PHP
php实现异步数据调用的方法
2015/12/24 PHP
Javascript 原型和继承(Prototypes and Inheritance)
2009/04/01 Javascript
根据对象的某一属性进行排序的js代码(如:name,age)
2010/08/10 Javascript
谈谈encodeURI和encodeURIComponent以及escape的区别与应用
2015/11/24 Javascript
JavaScript Split()方法
2015/12/18 Javascript
jQuery Easyui 下拉树组件combotree
2016/12/16 Javascript
Angular的$http的ajax的请求操作(推荐)
2017/01/10 Javascript
微信小程序 列表的上拉加载和下拉刷新的实现
2017/04/01 Javascript
jQuery滚动插件scrollable.js用法分析
2017/05/25 jQuery
详解用node.js实现简单的反向代理
2017/06/26 Javascript
vue2中的keep-alive使用总结及注意事项
2017/12/21 Javascript
《javascript少儿编程》location术语总结
2018/05/27 Javascript
移动端自适应flexible.js的使用方法(不用三大框架,仅写一个单html页面使用)推荐
2019/04/02 Javascript
vue-cli webpack配置文件分析
2019/05/20 Javascript
微信小程序中如何使用flyio封装网络请求
2019/07/03 Javascript
layui实现数据分页功能(ajax异步)
2019/07/27 Javascript
JavaScript前后端JSON使用方法教程
2020/11/23 Javascript
Python操作SQLite数据库的方法详解【导入,创建,游标,增删改查等】
2017/07/11 Python
python中eval与int的区别浅析
2019/08/11 Python
执行Django数据迁移时报 1091错误及解决方法
2019/10/14 Python
python-视频分帧&多帧合成视频实例
2019/12/10 Python
Python新手学习raise用法
2020/06/03 Python
python 获取字典键值对的实现
2020/11/12 Python
Wedgwood英国官方网站:英式精致骨瓷餐具、礼品与生活精品,源于1759年
2019/09/02 全球购物
质检部职责
2013/12/28 职场文书
《小猫刮胡子》教学反思
2014/02/21 职场文书
环保倡议书500字
2014/05/15 职场文书
初中毕业典礼演讲稿
2014/09/09 职场文书
英语导游词
2015/02/13 职场文书
忠诚与背叛观后感
2015/06/04 职场文书
再见,2019我们不负使命;你好,2020我们砥砺前行
2020/01/03 职场文书
Keras在mnist上的CNN实践,并且自定义loss函数曲线图操作
2021/05/25 Python
OpenCV图像变换之傅里叶变换的一些应用
2021/07/26 Python
Zabbix对Kafka topic积压数据监控的问题(bug优化)
2022/07/07 Servers