本地缓存实现
预算管理,可以使用本地内存进行管理。主预算(1000)--》预算路由表(可以分为10条记录,每一条记录都是 100)每一条记录都有预算总数100 以及对应的状态 是否够用;每台机器都启动定时任务,从内存中获取预算之,如果预算值《预算阈值,则从DB中预算 路由表 决策走哪条记录,然后记录-N,然后内存预算值+N; 如果路由表预算不足,那么将条记录按照一定的规则将这条记录的预算值 添加到另外一条记录中,然后将当前记录状态 更新为已经分配完毕。用户如果第一次路由失败,那么还会再有一次机会进行重新路由,如果再次路由失败,则用户失败。
如果路由表扛不住,可以进行本地缓存30s,这30s可能会有机会路由失败。
分布式缓存实现
总预算桶定义--------分桶定义
分桶-----分桶列表
可以使用redis进行设计,进行热点分桶实现