微服务、缓存和负载平衡设计模式



我有一个实时数据密集型应用程序,使用本地应用程序/内存缓存

40,000辆车正在向1台服务器发送数据(每5秒),我必须计算出以前和当前位置之间的距离。

要做到这一点,我缓存每辆车之前的lat,lon,然后当我看到一个新的数据位时,我取新的lat,lon并计算出点之间的距离(即5英尺),然后将其添加到车辆上的累积里程表(即60,000英里)

我需要开始负载平衡这个来处理规模,使用本地缓存显然是过时的,当它到达两个不同的服务器。然而,使用分布式缓存似乎会大大降低处理速度,因为网络跳转到共享缓存,特别是上面提到的卷和频率。

一个解决方案可能是使用一个粘性会话,这样汽车a总是去服务器a,并定期更新内存缓存,以防服务器宕机。

然而,我确信这个问题在过去已经解决了,在此场景中是否存在可使用的行业缓存模式?

我想知道你的情况如何。考虑到负载的性质,我将从具有内存缓存选项的粘性会话开始。似乎可以将一辆车分配给单个服务器,并且本地缓存可以跟踪前一辆车。只有当一辆车停止发送数据时,您需要能够识别它并为下一辆车释放服务器。不管怎样,我很想知道它是如何实现的。有趣的问题。

最新更新