我有一个可以跟踪车辆的应用程序。车辆可以随时更改位置、出现或消失。为了始终保持最新状态,应用程序每 3 秒向服务器发送当前在地图上可见的区域,服务器会以特定区域内的车辆列表进行响应。
问题:当我有一个包含 1000 辆汽车的数据库和每 3 秒向服务器发送 10000 个请求时会发生什么?您将如何使用 WCF 解决这个可伸缩性问题?
我有一个可以跟踪车辆的应用程序。车辆可以随时更改位置、出现或消失。为了始终保持最新状态,应用程序每 3 秒向服务器发送当前在地图上可见的区域,服务器会以特定区域内的车辆列表进行响应。
问题:当我有一个包含 1000 辆汽车的数据库和每 3 秒向服务器发送 10000 个请求时会发生什么?您将如何使用 WCF 解决这个可伸缩性问题?
有几件事要做
在客户端
正如 Joachim 所说,尝试限制来自客户端的请求。我不确定车辆是否会每 3 秒显着移动一次。最终,尝试将位置和其他信息批量合并。
在服务器端
问题:当我有一个包含 1000 辆汽车的数据库和每 3 秒向服务器发送 10000 个请求时会发生什么?您将如何使用 WCF 解决这个可伸缩性问题?
回答这个问题的最好方法是进行负载测试。结果很大程度上取决于您的服务实施。如果你的请求时间超过 1 秒,你肯定会遇到性能问题。
您还可以在服务后面添加一个队列来处理请求,甚至可以将您的服务部署在许多服务器上,以便在不同服务器之间分派请求。