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 正则匹配效率详解
Apr 25 Golang
Go语言切片前或中间插入项与内置copy()函数详解
Apr 27 Golang
Golang之sync.Pool使用详解
May 06 Golang
go语言基础 seek光标位置os包的使用
May 09 Golang
一文搞懂Golang 时间和日期相关函数
Dec 06 Golang
Golang使用Panic与Recover进行错误捕获
Mar 22 Golang
Go归并排序算法的实现方法
Apr 06 Golang
golang的文件创建及读写操作
Apr 14 Golang
Golang MatrixOne使用介绍和汇编语法
Apr 19 Golang
Golang日志包的使用
Apr 20 Golang
GoFrame框架数据校验之校验结果Error接口对象
Jun 21 Golang
go goth封装第三方认证库示例详解
Aug 14 Golang
victoriaMetrics库布隆过滤器初始化及使用详解
如何解决goland,idea全局搜索快捷键失效问题
golang为什么要统一错误处理
简单聊聊Golang中defer预计算参数
Mar 25 #Golang
Go 中的空白标识符下划线
golang生成vcf通讯录格式文件详情
golang实现浏览器导出excel文件功能
You might like
PHP中ini_set与ini_get用法实例
2014/11/04 PHP
PHP实现HTML生成PDF文件的方法
2014/11/07 PHP
PHP实现linux命令tail -f
2016/02/22 PHP
php中的异常和错误浅析
2017/05/03 PHP
PHP实现动态压缩js与css文件的方法
2018/05/02 PHP
PHP调用微博接口实现微博登录的方法示例
2018/09/22 PHP
thinkphp框架类库扩展操作示例
2019/11/26 PHP
JavaScript中的闭包原理分析
2010/03/08 Javascript
跟我学习javascript解决异步编程异常方案
2015/11/23 Javascript
BootStrap组件之进度条的基本用法
2017/01/19 Javascript
Node.js实现文件上传的示例
2017/06/28 Javascript
利用10行js代码实现上下滚动公告效果
2017/12/08 Javascript
分享5个小技巧让你写出更好的 JavaScript 条件语句
2018/10/20 Javascript
Angular6新特性之Angular Material
2018/12/28 Javascript
利用Angular7开发一个Radio组件的全过程
2019/07/11 Javascript
微信js-sdk 录音功能的示例代码
2019/11/01 Javascript
Vue 列表页带参数进详情页的操作(router-link)
2020/11/13 Javascript
Python中的jquery PyQuery库使用小结
2014/05/13 Python
分析在Python中何种情况下需要使用断言
2015/04/01 Python
在Python中处理字符串之isdigit()方法的使用
2015/05/18 Python
浅谈python 四种数值类型(int,long,float,complex)
2016/06/08 Python
Python使用matplotlib的pie函数绘制饼状图功能示例
2018/01/08 Python
python3 拼接字符串的7种方法
2018/09/12 Python
numpy 对矩阵中Nan的处理:采用平均值的方法
2018/10/30 Python
python3实现微型的web服务器
2019/09/03 Python
关于torch.optim的灵活使用详解(包括重写SGD,加上L1正则)
2020/02/20 Python
Python如何在bool函数中取值
2020/09/21 Python
python如何对链表操作
2020/10/10 Python
pycharm 配置svn的图文教程(手把手教你)
2021/01/15 Python
DC Shoes官网:美国滑板鞋和服饰品牌
2017/09/03 全球购物
生物科学专业个人求职信范文
2013/12/05 职场文书
家居装修公司创业计划书范文
2014/03/20 职场文书
导游词之山东八大关
2019/12/18 职场文书
Python+Appium实现自动抢微信红包
2021/05/21 Python
Python实现猜拳与猜数字游戏的方法详解
2022/04/06 Python
python使用opencv对图像添加噪声(高斯/椒盐/泊松/斑点)
2022/04/06 Python