当前仓库属于关闭状态,部分功能使用受限,详情请查阅 仓库状态说明
16 Star 10 Fork 4

cloudzone / cloudmq-go-client
关闭

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
贡献代码
同步代码
取消
提示: 由于 Git 不支持空文件夾,创建文件夹后会生成空的 .keep 文件
Loading...
README

#cloudmq-go-client


增加部分新特性
1、增加消息msgId字段解析
2、增加消息tag和消息key字段解析
3、增加消息storeHost、bornHost、bornTimestamp、storeTimestamp字段解析
4、消费消息主业务,增加消费成功(CommitMessage)、消息失败(ReconsumeLater) 等业务标识
5、消费消息,诸如topic、tag、consumerGroupId、namesrv、clientIp等参数采用配置文件读取
6、调整consumser实例的InstanceName名称,增加进程pid标识
7、调整原始的日志框架为beego/logs,日志级别默认Info
8、新增tps测试用例


部分未完成功能
1、consumer业务没有shutdown功能,使用kill -9关闭程序,可能存在小部分数据丢失的情况,具体会丢失多少数据量待详细测试
2、tps用例测试不够完善,进一步可引进其官方自带的benchmark测试,待后续完善
3、部署到服务器后,如果配置文件cfg.json不能识别,则检查代码
4、绝对不要在服务器配置环境变量“CORE_CONFIG”,该环境变量多个模块会读取,配置后反而导致其他模块异常


消费业务使用示例

package main

import (
	"fmt"

	"git.oschina.net/cloudzone/cloudmq-go-client/cloudmq"
)

func main() {
	conf := &cloudmq.Config{
		Nameserver:   "10.122.1.201:9876",
		InstanceName: "DEFAULT",
	}
	consumer, err := cloudmq.NewDefaultConsumer("ConsumerGroupName", conf)
	if err != nil {
		panic(err)
	}
	consumer.Subscribe("testTopic", "*")

	var count int
	consumer.RegisterMessageListener(func(msgs []*cloudmq.MessageExt) (int, error) {
		for _, msg := range msgs {
			count++
			fmt.Printf("count=%d|msgId=%s|topic=%s|storeTimestamp=%d|bornTimestamp=%d|storeHost=%s|bornHost=%s"+
				"|msgTag=%s|msgKey=%s|sysFlag=%d|storeSize=%d|queueId=%d|body=%s\n",
				count, msg.MsgId, msg.Topic, msg.StoreTimestamp, msg.BornTimestamp, msg.StoreHost, msg.BornHost,
				msg.Tag(), msg.Key(), msg.SysFlag, msg.StoreSize, msg.QueueId, msg.Body)
		}
		return cloudmq.Action.CommitMessage, nil
	})
	consumer.Start()

	select {}
}

空文件

简介

Golang版本的rocketMQ客户端 展开 收起
取消

发行版

暂无发行版

贡献者

全部

近期动态

加载更多
不能加载更多了
1
https://gitee.com/cloudzone/cloudmq-go-client.git
git@gitee.com:cloudzone/cloudmq-go-client.git
cloudzone
cloudmq-go-client
cloudmq-go-client
dev

搜索帮助