NSQ适配GaussDB验证任务心得
【摘要】 NSQ适配GaussDB 。NSQ是一个开源的实时分布式内存消息队列,由Go语言编写,旨在大规模地处理每天数以十亿计级别的消息。
背景介绍
开源for Huawei(参考:https://developer.huaweicloud.com/programs/opensource/contributing/) 通过和公司、高校、社区的开发者合作,完成鲲鹏、昇腾、欧拉、鸿蒙、高斯、云服务等与开源软件的适配开发,帮助繁荣Huawei的基础生态,同时让开源软件能够更加简单、高效的运行于华为云上。
1 适配思路
- 购买 华为云鲲鹏EulerOS环境的ECS 搭建NSQ运行环境;
- 开发NSQ生产者脚本,使其可以连接GaussDB,并获取源数据;
- 开发NSQ消费者脚本,使其可以获取生产者发出的源数据并进行消费,模拟生产环境。
2 适配准备
- 华为云鲲鹏EulerOS环境的ECS(华为云购买);
- openGauss数据库(华为云购买ECS);
- 开发NSQ生产者/消费者脚本。
2.1 ECS/gaussDB配置
openGauss:
- 计费模式选择:按需计费
- 区域:华北-北京四
- CPU架构:鲲鹏计算
- CPU规格:large.2
- CPU规格:2vCPUs&&4GiB
- 镜像类型:公共镜像
- 镜像:openEuler 20.03 64bit with ARM(100GiB)
鲲鹏ECS:
- 计费模式选择:按需计费
- 区域:华北-北京四
- CPU架构:x86计算
- CPU规格:xlarge.4
- CPU规格:4vCPUs&&16GiB
- 镜像类型:公共镜像
- 镜像:Huawei Cloud EulerOS 2.0 标准版 64位 ARM版
2.2 openGauss安装
openGauss安装:参考https://blog.csdn.net/m0_56123985/article/details/123555605
2.3 其他
ECS安全组配置 配置规则 → 出/入方向规则 → 一键放通常用端口
放通openGauss的默认端口 5432。
3 Demo开发
- 依赖openGauss数据库 生产者获取openGauss的数据提供给消费者消费,模拟生产环境业务场景。
4 适配过程中的问题记录
- 连接openGauss 需要先获取openGauss的Go语言驱动包,执行下面的命令
go get gitee.com/opengauss/openGauss-connerctor-go-pq
- 生产端 发布数据的方法
p.Publish("testTopic", []byte(id)),[]byte为固定写法 需要转换数据类型, id为从数据库获取的数据 必须为 string 类型,其他类型代码运行会报错。
- 使用数据库管理工具无法连接到openGauss
解决方法:在服务器上修改openGauss的配置文件
参考:https://blog.csdn.net/weixin_39976528/article/details/132765806
- 用100万条数据量测试时候发现由于消费端耗时较长,消费端任务是在后台运行,可重新运行消费端的脚本查看目前的消费offset。
【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)