eshop-inventory:解决数据库缓存双写不一致

时间:2021-05-17 18:36:24
【文件属性】:
文件名称:eshop-inventory:解决数据库缓存双写不一致
文件大小:30KB
文件格式:ZIP
更新时间:2021-05-17 18:36:24
Java eshop-inventory 解决数据库缓存双写不一致 更新数据的时候,根据数据的唯一标识,将操作路由之后,发送到一个jvm内部的队列中 读取数据的时候,如果发现数据不在缓存中,那么将重新读取数据+更新缓存的操作,根据唯一标识路由之后,也发送同一个jvm内部的队列中 一个队列对应一个工作线程 每个工作线程串行拿到对应的操作,然后一条一条的执行 这样的话,一个数据变更的操作,先执行,删除缓存,然后再去更新数据库,但是还没完成更新 此时如果一个读请求过来,读到了空的缓存,那么可以先将缓存更新的请求发送到队列中,此时会在队列中积压,然后同步等待缓存更新完成 这里有一个优化点,一个队列中,其实多个更新缓存请求串在一起是没意义的,因此可以做过滤,如果发现队列中已经有一个更新缓存的请求了,那么就不用再放个更新请求操作进去了,直接等待前面的更新操作请求完成即可 待那个队列对应的工作线程完成了上一个操作
【文件预览】:
eshop-inventory-master
----.project(544B)
----src()
--------main()
----README.md(6KB)
----pom.xml(2KB)
----.classpath(1KB)

网友评论