c#中服务器/客户端通信的最佳冗余方法
本文关键字:最佳 冗余 方法 通信 客户端 服务器 | 更新日期: 2023-09-27 18:12:37
我有一个产品,它在一个基本级别上运行。它使用自托管的ServiceStack和Redis作为服务器上的数据库。对于客户端,它也使用ServiceStack定期接收数据。客户机大约每小时连接一次服务器以获取数据,但是连接和传输需要在几秒钟内完成(通常不是问题)。数据只有大约100个json字符。
我在客户端机器上发现问题。因为客户住在一家经纪公司,在市场开盘时,当我需要客户接收我的少量数据时,我可能会被成千上万个试图在开盘时获取市场数据的其他系统拒之门外。所以我现在让经纪人在开盘后重新启动我的系统,因为它恢复得不好。
我的问题是,在这种恶劣的网络环境下,什么是建立一个强大系统的最佳方式?
我的一些想法是添加一个websocket连接,这样我就不会为每个轮询间隔(使用REST API)建立一个新的连接。例如,我已经发现DNS在这些市场激增期间是一个问题,所以我计划做一次查找,然后在内部保留所有以后连接的IP地址。
所以我想看看进来的任何东西,无论是REST数据还是websocket数据,只是用任何可用的数据集。我想检查一下,看看其他人是否见过这种情况,以及任何关于架构的想法。
Websockets (SignalR)对于您的特定实现是一个很好的选择。然而,你应该记住,因为你表示担心你的连接的可靠性,在websockets,客户端发起连接,如果你的连接失败,服务器将检测到这一点,但因为你的浏览器不会,它将不会得到任何更新。请阅读此处,了解如何提高连接的可靠性。