Abs*_*Abs 6 c# architecture sql-server asp.net database-design
我正在处理实时跟踪系统,其中一台设备每年可以推动大约200万个GPS点(即每5秒1点,365天运行8小时).如果这在全球范围内运行,有数千台设备,那么每年会产生数十亿条记录.
我知道SQL Server可以处理它.但我需要能够使用数千个执行并发写入的设备执行实时跟踪.它可以与一些设备一起使用,但是当我打开许多跟踪站点时,我可以看到这是CPU密集型的.
我打算尝试:
还有其他建议吗?
鉴于您发布的信息,您的架构没有任何问题。但问题在于细节。其一,很大程度上取决于您的数据库设计得如何。这取决于您的查询、数据库索引、触发器等编写得如何......
此外,如果这是任何类型的移动设备,您不应该使用基于传统插座的连接器。您不能依赖与远程服务器的稳定 TCP 连接。您应该使用像 REST 这样的无状态架构来为您公开/写入数据。REST 在 .NET 中很容易实现,顺便说一句,这应该将规模难度从数据库转移到 Web 服务器。
最后,为了最大限度地减少服务器上完成的工作,我将实现某种缓存或缓冲池系统来维护每个设备上的数据以供读取,并创建一个写入缓存以将数据发送到中央服务器。写入缓存至关重要,因为您不能依赖稳定的 TCP 连接来进行服务器的事务管理。您需要维护要写入的数据的缓存,即(队列),并在服务器确认已收到您写入的数据时弹出队列。只要有数据和数据连接,就应该弹出队列。但是,在我可以肯定或提供更多细节之前,我需要更多地了解您的要求。
| 归档时间: |
|
| 查看次数: |
540 次 |
| 最近记录: |