从本节开始,我介绍一下如何将相关数据持久化到数据库,也就是上图中蓝色的部分. 目前的问题 我先运行 6 个传感器和2 个协调器,这里我使用了批处理文件: 运行后,看一下 RabbitMQ 的管理控制台: 注意上面前面几个 Queue,这些 Queue 就是我们让传感器和协调器监听那两个 Fanout Exchange 时创建的,因为这两个 Exchange 不使用路由 Key 来决定接收者,我使用了空字符串""作为这些 Queue 的名称,而RabbitMQ 就会为它们赋予一个唯一的名…
数据库 我使用的是 PostgreSQL. 使用的驱动是 github.com/lib/pq 这个网址 https://pkg.go.dev/github.com/lib/pq 是官方文档. 创建数据表 打开 PostgreSQL 的管理工具 pgAdmin 4(web 版),创建一个数据库: 数据库名叫 distributed: 创建数据表 首先创建 sensor 表,里面存放传感器信息: 列如下,其中id 是自增主键: 里面需要有传感器的数据,名称要和批处理文件中传感器的名称要一致. 另一个…
功能03-优惠券秒杀04 4.功能03-优惠券秒杀 4.7Redis优化秒杀 4.7.1优化分析 现在来回顾一下优惠券秒杀业务的两个主要问题: (1)首先是对优惠券的扣减,需要防止库存超卖现象: (2)其次,需要对每个用户下单数量进行限制,实现一人一单的功能. 处理秒杀优惠券的业务: 先根据获取到的优惠券id,先到数据库中判断是否存在,若存在: 再判断优惠券是否在设定的有效期,如果是,则进行一人一单的业务处理: 2.1 利用分布式锁,key存储的是order+用户id:当同一时间,一个用户发起了…
本节继续学习WCF分布式开发步步为赢(7):WCF数据契约与序列化.数据契约是WCF应用程序开发中一个重要的概念,毫无疑问实现客户端与服务端数据契约的传递中序列化是非常重要的步骤.那么序列化是什么?为什么会有序列化机制?或者说它是为了解决什么问题?作用是什么?现有的.NET 序列化机制和WCF序列化机制有什么不同?我们在本节文章里都会详细介绍.本节结构:[0]数据契约[1]序列化基本概念[2].NET 序列化机制[3]WCF序列化机制[4]代码实现与分析[5]总结. 下面我们正式进入今天的学习阶…
一.内存的分配方式 1. 程序代码区 2. 静态数据区 3. 动态数据区 二.动态内存 1. 在栈上创建的内存 2. 从堆上分配的内存 3. 小结 三.指针与内存 1. 操作内存 2. 指针与数组 3. 指针参数 四.malloc/free 与new/delete 1. malloc/free 的使用要点 2. new/delete 的使用要点 3. malloc/free 与new/delete 的比较 五.常见内存错误 1.内存泄露 2.内存越界访问 3.野指针 4.内存分配未成功,却使用了…
背景是一次线上故障 项目类型vue ssr 与server的数据交互用的http内网域名方案 在5月发生了一次线上CPU100%的问题,直接导致了NodeServer 500. 最终解决办法是: 1.请求超时时间timeout 5s->1s 2.开启Keep-Alive. 问题排查 首先我们重启服务短暂解决了不可访问的问题,既然是线上问题,一定不能忽视,我们开始通过一些手段复现问题. 查看nginx log 通过log分析我们发现,有些接口耗时是比较长的,而node ssr server是需要等…
redis持久化概念 Author:SimpleWu GitHub-redis 什么是持久化? 概念:把内存的数据保存在磁盘的过程. Redis的持久化? redis是内存数据库,它把数据存储在内存中,这样在加快读取速度的同时也对数据安全性产生了新的问题,即当redis所在服务器发生宕机后,redis数据库里的所有数据将会全部丢失. Redis实现持久化的两种方式: RDB(Redis DataBase ):就是在不同的时间点,将redis存储的数据生成快照并存储到磁盘等介质上. AOF(App…
前言: 本项目的孵化说来也是机缘巧合的事,本人于13年杭州某大学毕业后去了一家大型的国企工作,慢慢的走上了工业软件,上位机软件开发的道路.于14年正式开发基于windows的软件,当时可选的技术栈就是MFC和C#的winform,后来就发现C#的更为简单一些,那就直接干,先做再说.需要做一些界面相关的软件,就直接采用了C#的winform,基础不够,百度来凑.后来领导就下达了一个任务,开发一个硫化机系统的上位机,对某个车间共计五六十台硫化机进行监控和曲线查看.由于没有可参考的界面程序,开发起来就…
1. 绪言 redis是一种内存数据库,它把数据存储在服务器的内存当中,这样极大地保证了redis数据库的性能,但也为数据安全带来了隐患——redis所在服务器重启或者发生宕机后,redis数据库里的所有数据将会全部丢失.庆幸的是,redis数据提供了一种持久化机制,可以将内存中的数据写入到硬盘中,有效降低了数据丢失的风险. 2. 什么是持久化 什么是持久化?简单来讲就是将数据放到断电后数据不会丢失的设备中,也就是我们通常理解的硬盘上.当开机后数据库再次启动时,可以从硬盘中恢复数据.redis提…
redis 数据库的使用场景介绍 redis 是 NoSQL 数据库中的一种,特别适合解决一些使用传统关系数据库难以解决的问题,redis 作为内存数据库,如果在不合适的场合,对内存的消耗是很大的,甚至会让系统难以承受. 数据通过两个角度来分类: 通过大小:大数据.小数据 通过热度分:冷数据.热数据(热数据是指读写比较频繁的数据,反之则是冷数据) 大体而言,redis 最适合处理的是 小而热 的数据,而且是读写频繁的热数据.对于大而热的数据,如果其他方式很难解决问题,也可以考虑使用 redis…