NSQ适配GaussDB验证任务心得

举报
yd_229853316 发表于 2024/11/15 16:13:42 2024/11/15
【摘要】 NSQ适配GaussDB 。NSQ是一个开源的实时分布式内存消息队列,由Go语言编写,旨在大规模地处理每天数以十亿计级别的消息。

背景介绍

开源for Huawei(参考:https://developer.huaweicloud.com/programs/opensource/contributing/)  通过和公司、高校、社区的开发者合作,完成鲲鹏、昇腾、欧拉、鸿蒙、高斯、云服务等与开源软件的适配开发,帮助繁荣Huawei的基础生态,同时让开源软件能够更加简单、高效的运行于华为云上。

适配思路

  1. 购买 华为云鲲鹏EulerOS环境的ECS 搭建NSQ运行环境
  2. 开发NSQ生产者脚本,使其可以连接GaussDB,并获取源数据
  3. 开发NSQ消费者脚本,使其可以获取生产者发出的源数据并进行消费,模拟生产环境。

适配准备

  1. 华为云鲲鹏EulerOS环境的ECS(华为云购买);
  2. openGauss数据库(华为云购买ECS);
  3. 开发NSQ生产者/消费者脚本。

2.1 ECS/gaussDB配置

openGauss:

  • 计费模式选择:按需计费
  • 区域:华北-北京四
  • CPU架构:鲲鹏计算
  • CPU规格:large.2
  • CPU规格:2vCPUs&&4GiB
  • 镜像类型:公共镜像
  • 镜像:openEuler 20.03 64bit with ARM100GiB

鲲鹏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开发

  1. 依赖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

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。