将数据库数据分发到 .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 让传感器参与者保持持久性很有用,具体取决于您希望将此项目带到何处(例如发布和存档历史天气数据)。
我想听听您对设计决策的意见。我需要准备一个使用天气传感器进行 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 让传感器参与者保持持久性很有用,具体取决于您希望将此项目带到何处(例如发布和存档历史天气数据)。