将数据库数据分发到 .net 微服务副本

distribute database data to .net microservice replicas

我想听听您对设计决策的意见。我需要准备一个使用天气传感器进行 crud 操作的项目,我需要将每个天气传感器与数据库中的 NTCIP 进行通信,并获取温度、湿度等信息。

问题是缩放。在我的架构中,我编写了一个 .net 核心微服务,它有自己的独立数据库。该气象站微服务从数据库中读取所有气象站,然后通过 IP 与每个传感器进行通信。我为每条记录打开一个线程,这些线程通过 IP 进行数据通信。我的目标是按计数将数据库数据分发到复制的微服务。例如,如果数据库中有 100 个气象站记录,我有 2 个副本,我需要将 50 条记录分配给第一个,50 条记录分配给第二个。此外,如果我更改副本计数,我需要重新分配。我在网上搜索了一下,找到了一个 apache helix,但是这个操作比较复杂。请给我建议。非常感谢

在 .Net 中,这听起来非常适合 Akka.Net. A reasonable "first cut" at a model would be to define an actor for each sensor and have these actors be sharded via cluster sharding,它将平衡集群中传感器参与者的数量并对集群成员的变化做出反应。

您可能还会发现通过 event sourcing 让传感器参与者保持持久性很有用,具体取决于您希望将此项目带到何处(例如发布和存档历史天气数据)。