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项目中使用init()
Apr 12 Golang
go语言-在mac下brew升级golang
Apr 25 Golang
Golang 实现超大文件读取的两种方法
Apr 27 Golang
golang 比较浮点数的大小方式
May 02 Golang
Golang全局变量加锁的问题解决
May 08 Golang
go语言使用Casbin实现角色的权限控制
Jun 26 Golang
Go 语言下基于Redis分布式锁的实现方式
Jun 28 Golang
Go 语言结构实例分析
Jul 04 Golang
如何解决goland,idea全局搜索快捷键失效问题
Apr 03 Golang
victoriaMetrics库布隆过滤器初始化及使用详解
Apr 05 Golang
Golang jwt身份认证
Apr 20 Golang
Go中使用gjson来操作JSON数据的实现
Aug 14 Golang
victoriaMetrics库布隆过滤器初始化及使用详解
如何解决goland,idea全局搜索快捷键失效问题
golang为什么要统一错误处理
简单聊聊Golang中defer预计算参数
Mar 25 #Golang
Go 中的空白标识符下划线
golang生成vcf通讯录格式文件详情
golang实现浏览器导出excel文件功能
You might like
php获取从百度搜索进入网站的关键词的详细代码
2014/01/08 PHP
php实现获取局域网所有用户的电脑IP和主机名、及mac地址完整实例
2014/07/18 PHP
基于Jquery的表格隔行换色,移动换色,点击换色插件
2010/12/22 Javascript
javascript移动设备Web开发中对touch事件的封装实例
2014/06/05 Javascript
JavaScript中实现异步编程模式的4种方法
2014/09/24 Javascript
JQuery遍历json数组的3种方法
2014/11/08 Javascript
jQuery控制cookie过期时间的方法
2015/04/07 Javascript
json数据处理及数据绑定
2017/01/25 Javascript
使用jQuery实现动态添加小广告
2017/07/11 jQuery
vue教程之toast弹框全局调用示例详解
2020/08/24 Javascript
浅谈React + Webpack 构建打包优化
2018/01/23 Javascript
AngularJS双向数据绑定原理之$watch、$apply和$digest的应用
2018/01/30 Javascript
vue3.0 CLI - 2.1 -  component 组件入门教程
2018/09/14 Javascript
layui点击弹框页面 表单请求的方法
2019/09/21 Javascript
Vue项目中使用mock.js的完整步骤
2021/01/12 Vue.js
Python中json格式数据的编码与解码方法详解
2016/07/01 Python
pycharm设置注释颜色的方法
2018/05/23 Python
Numpy 将二维图像矩阵转换为一维向量的方法
2018/06/05 Python
python random从集合中随机选择元素的方法
2019/01/23 Python
Pycharm 字体大小调整设置的方法实现
2019/09/27 Python
Python笔记之代理模式
2019/11/20 Python
python爬虫库scrapy简单使用实例详解
2020/02/10 Python
python实现将字符串中的数字提取出来然后求和
2020/04/02 Python
Python3.7安装PyQt5 运行配置Pycharm的详细教程
2020/10/15 Python
英国著名的小众美容品牌网站:Alyaka
2017/08/08 全球购物
英国在线房屋中介网站:Yopa
2018/01/09 全球购物
市场营销专业推荐信
2013/11/03 职场文书
服务整改报告
2014/11/06 职场文书
2014年污水处理厂工作总结
2014/12/19 职场文书
给老师的感谢信
2015/01/20 职场文书
2015年公民道德宣传日活动总结
2015/03/23 职场文书
钓鱼岛事件感想
2015/08/11 职场文书
环保主题班会教案
2015/08/13 职场文书
解读Vue组件注册方式
2021/05/15 Vue.js
基于Python实现射击小游戏的制作
2022/04/06 Python
windows10声卡驱动怎么安装?win10声卡驱动安装操作步骤教程
2022/08/05 数码科技