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 相关文章推荐
golang判断key是否在map中的代码
Apr 24 Golang
go语言-在mac下brew升级golang
Apr 25 Golang
解决Golang time.Parse和time.Format的时区问题
Apr 29 Golang
golang DNS服务器的简单实现操作
Apr 30 Golang
Golang全局变量加锁的问题解决
May 08 Golang
Golang 语言控制并发 Goroutine的方法
Jun 30 Golang
Go语言基础知识点介绍
Jul 04 Golang
Go 通过结构struct实现接口interface的问题
Oct 05 Golang
Go归并排序算法的实现方法
Apr 06 Golang
golang生成并解析JSON
Apr 14 Golang
Go获取两个时区的时间差
Apr 20 Golang
victoriaMetrics库布隆过滤器初始化及使用详解
如何解决goland,idea全局搜索快捷键失效问题
golang为什么要统一错误处理
简单聊聊Golang中defer预计算参数
Mar 25 #Golang
Go 中的空白标识符下划线
golang生成vcf通讯录格式文件详情
golang实现浏览器导出excel文件功能
You might like
分享下页面关键字抓取www.icbase.com站点代码(带asp.net参数的)
2014/01/30 PHP
smarty模板引擎中内建函数if、elseif和else的使用方法
2015/01/22 PHP
php实现用户登陆简单实例
2017/04/04 PHP
Laravel下生成验证码的类
2017/11/15 PHP
详解PHP神奇又有用的Trait
2019/03/25 PHP
php字符串函数 str类常见用法示例
2020/05/15 PHP
用php实现分页效果的示例代码
2020/12/10 PHP
Javascript document.referrer判断访客来源网址
2020/05/15 Javascript
基于jquery+thickbox仿校内登录注册框
2010/06/07 Javascript
扩展Jquery插件处理mouseover时内部有子元素时发生样式闪烁
2011/12/08 Javascript
JQuery each()函数如何优化循环DOM结构的性能
2012/12/10 Javascript
js jquery验证银行卡号信息正则学习
2013/01/21 Javascript
基于jquery扩展漂亮的下拉框可以二次修改
2013/11/19 Javascript
第九章之路径分页标签与徽章组件
2016/04/25 Javascript
JQuery和PHP结合实现动态进度条上传显示
2016/11/23 Javascript
生产制造追溯系统之在线打印功能
2019/06/03 Javascript
一文秒懂nodejs中的异步编程
2021/01/28 NodeJs
详细探究Python中的字典容器
2015/04/14 Python
使用Python装饰器在Django框架下去除冗余代码的教程
2015/04/16 Python
Python两个内置函数 locals 和globals(学习笔记)
2016/08/28 Python
python 删除大文件中的某一行(最有效率的方法)
2017/08/19 Python
python实现学生信息管理系统
2020/04/05 Python
Django 使用logging打印日志的实例
2018/04/28 Python
python实现几种归一化方法(Normalization Method)
2019/07/31 Python
Python新手学习装饰器
2020/06/04 Python
css3中flex布局宽度不生效的解决
2020/12/09 HTML / CSS
一张图片能隐含千言万语之隐藏你的程序代码
2012/12/13 HTML / CSS
解析浏览器的一些“滚动”行为鉴赏
2019/09/16 HTML / CSS
亲戚结婚的请假条
2014/02/11 职场文书
精神文明建设标语
2014/06/16 职场文书
英语课前三分钟演讲稿(6篇)
2014/09/13 职场文书
2014年政教处工作总结
2014/12/20 职场文书
地雷战观后感
2015/06/09 职场文书
干部外出学习心得体会
2016/01/18 职场文书
MySQL分库分表与分区的入门指南
2021/04/22 MySQL
python垃圾回收机制原理分析
2022/04/13 Python