微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

不断更改数据和缓存?

如何解决不断更改数据和缓存?

目前我有一台带有 C# 网络核心控制台应用程序的服务器,它接收传入的 TCP IOT 数据。 每台设备每 5 秒报告一次,有 30,000 台设备

我现在需要转向分布式模型,其中 HAProxy 使用最少连接模型(长时间运行的 TCP 连接)将数据分发到多个服务器 我遇到的问题是来自 IOT 设备的每个新信息都与其“最后一条记录”进行比较,如果状态发生变化等,逻辑会触发

由于物联网设备有 SIM 卡,我看到 TCP 连接被中断,下次连接时它被路由到不同的服务器,它的“最后一条记录”很旧,而不是实际的最后一条记录 这会导致明显的数据一致性问题。 我可以接受“最后一条记录”是 1 分钟的数据,但仅此而已

我已经开始研究使用 redis 和 memcached 进行缓存,但从我读到的内容来看,您应该将缓存用于不经常更改的数据,而我的每 5 秒更改一次

据我所知,我有以下选择

  1. 将 haproxy 配置为从 IP 地址到特定服务器的粘性会话 - 不完美并且会导致负载不平衡,因为每个 IOT 设备都可以报告相同的 IP/不同端口。
  2. 在 mem 缓存和分布式缓存中使用本地,然后每 1 分钟将最近的数据广播到主缓存,并在所有服务器上每 1 分钟从主缓存拉取数据

还有什么我没有考虑的吗?

有哪些软件工程模式可以解决这个问题? 缓存不适合这种情况吗?

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。