我需要创建一个食品订购服务,使用微服务,可伸缩,集群,几个步骤来订购。需要在步骤/请求之间存储用户数据。
保存状态和用户数据的方法是什么?是否将其存储在数据库中?缓存?共享内存?有没有关于它的最佳实践的教程?
(我将使用spring / springboot和模块)
发布于 2018-08-01 15:15:03
任何你不能丢失的东西(通常是业务数据)都会放在DB中,并且可以并行地缓存在内存中的DB中,比如Redis,它内置了缓存回收算法。
任何东西,如果丢失了,都不是什么大问题(通常是与业务数据没有直接联系的技术内容),只能放在内存中的DB中。
由于您使用的是Spring,因此您可能会将Redis与Spring Data Redis结合使用。已经有一些已知的Spring解决方案(例如this)可以在Redis服务器宕机时依靠api调用从DB获取数据。您还可以在Redis Sentinel后面运行多个Redis实例来提供故障转移。Redis集群提供了一种运行Redis安装的方法,其中数据会自动跨多个Redis节点进行分片。此外,您还可以将Redis配置为每天将文件系统中的数据持久化一次,以备份缓存数据以进行容灾。
发布于 2018-08-02 17:21:40
如果您正在寻找完全托管的服务,亚马逊网络服务提供了“步骤功能”来满足您的有状态要求:https://stackoverflow.com/questions/tagged/aws-step-functions
https://stackoverflow.com/questions/51623293
复制相似问题