首页 > 解决方案 > 微服务、缓存和负载平衡设计模式

问题描述

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

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

为此,我缓存每辆车之前的纬度、经度,然后当我看到一些新数据时,我获取新的经度、经度并计算出两点之间的距离(即 5 英尺),然后将其添加到累积中车辆上的里程表(即 60,000 英里)

我需要开始负载平衡来处理规模,使用本地缓存在访问 2 个不同的服务器时显然会过时。但是,由于网络跳转到共享缓存,使用分布式缓存似乎会大大减慢处理速度,尤其是如上所述的卷和频率。

一种解决方案可能是使用粘性会话,因此汽车 A 始终前往服务器 A 并定期更新内存缓存,以防服务器出现故障。

但是我确信这个问题在过去已经解决了,在这种情况下是否有行业缓存模式可以使用?

标签: cachingmicroservicesload-balancingdistributed-caching

解决方案


我想知道这是怎么回事。考虑到负载的性质,我会从带有内存缓存选项的粘性会话开始。似乎可以将一辆车分配给单个服务器,并且本地缓存可以跟踪之前的 lat、lng。只有当汽车停止发送数据时,您才需要能够识别并为下一辆车释放服务器。无论如何都很想知道它是如何解决的。有趣的问题。


推荐阅读