摘要: 在项目中,我们通常需要设置一些环境变量,用来保存一些凭证或其它数据,这时我们可以使用 dotenv 这个 crate。 首先在项目中添加 dotenv 这个依赖: 例如在下面这个项目中,需要设置数据库连接字符串和 Debug 等级这两个环境变量。在开发环境下,我们可以在项目根目录下创建 .env 这 阅读全文
posted @ 2022-01-22 07:30 yangxu-pro 阅读(2566) 评论(0) 推荐(4) 编辑
摘要: 这次,我们使用 postgres 这个 crate 来连接和操作 PostgreSQL 数据库。 创建好项目后,在 cargo.toml 里添加 postgres 的依赖: 首先,导入相关的类型,并创建一个 Person struct: 再创建 create_db 函数,用来创建数据库和表,它返回一 阅读全文
posted @ 2022-01-21 22:32 yangxu-pro 阅读(1435) 评论(0) 推荐(1) 编辑
摘要: 使用 Rust 语言连接操作 SQLite 数据库,我使用 rusqlite 这个 crate。 看例子: 首先,使用 cargo 创建一个 Rust 项目,然后添加依赖 rusqlite: 来到 main.rs,其余所有的代码都写在这里。 首先引入 rusqlite 相关的类型,并建立一个 Per 阅读全文
posted @ 2022-01-21 21:24 yangxu-pro 阅读(2052) 评论(0) 推荐(2) 编辑
摘要: 配套教材:《The Rust Programming Language》或中文版《Rust权威指南》。 视频在 B 站:https://www.bilibili.com/video/BV1hp4y1k7SV/ 下方公众号(扫二维码)内也有 阅读全文
posted @ 2021-04-17 22:29 yangxu-pro 阅读(1676) 评论(0) 推荐(1) 编辑
摘要: 数据库 我使用的是 PostgreSQL。 使用的驱动是 github.com/lib/pq 这个网址 https://pkg.go.dev/github.com/lib/pq 是官方文档。 创建数据表 打开 PostgreSQL 的管理工具 pgAdmin 4(web 版),创建一个数据库: 数据 阅读全文
posted @ 2021-04-10 20:10 yangxu-pro 阅读(343) 评论(0) 推荐(1) 编辑
摘要: 从本节开始,我介绍一下如何将相关数据持久化到数据库,也就是上图中蓝色的部分。 目前的问题 我先运行 6 个传感器和2 个协调器,这里我使用了批处理文件: 运行后,看一下 RabbitMQ 的管理控制台: 注意上面前面几个 Queue,这些 Queue 就是我们让传感器和协调器监听那两个 Fanout 阅读全文
posted @ 2021-04-09 21:06 yangxu-pro 阅读(455) 评论(1) 推荐(1) 编辑
摘要: 到目前为止,我一直专注于如何让消息进出消息代理,也就是RabbitMQ。 实际上,我们可以继续使用 RabbitMQ 和它的 Exchanges 来连接这个应用程序的其他部分,但是我想探索一个稍微不同的模型:我想使用协调器来跟踪哪些类型的消费者得到消息通知。 这样的话,我断开了传感器数据生成器和数据 阅读全文
posted @ 2021-04-04 14:11 yangxu-pro 阅读(498) 评论(2) 推荐(2) 编辑
摘要: 到目前为止,我们项目的结果大致如下: 传感器生成的模拟数据(包含传感器名称、数据、时间戳)是通过传感器在运行时动态创建的 Queue 来发送的。这些 Queue 很难直接被发现。 为了解决这个问题,我创建了另一个消息,它包含各传感器的 Queue 的路由 key,这个消息是在一个“众所周知”的 Qu 阅读全文
posted @ 2021-04-03 15:04 yangxu-pro 阅读(505) 评论(2) 推荐(2) 编辑
摘要: 现在,我们需要模拟传感器,生成数据,并发布到 RabbitMQ。 建立传感器项目 在 GOPATH src 下建立文件夹 sensors,使用 go mod init 初始化,并创建 main.go。 同时别忘了安装 amqp 的包:go get -u github.com/streadway/am 阅读全文
posted @ 2021-03-30 20:23 yangxu-pro 阅读(853) 评论(0) 推荐(0) 编辑
摘要: 本文我将使用 Go 语言在 RabbitMQ 上发布和接收消息。 阅读全文
posted @ 2021-03-28 17:15 yangxu-pro 阅读(861) 评论(2) 推荐(0) 编辑