春天的环境中有一个很大的现象,或者我就大错特错了。但默认的 spring @Transactional 注解不是 ACID,而是缺乏隔离性的 ACD。这意味着如果您有以下方法:
@Transactional
public TheEntity updateEntity(TheEntity ent){
TheEntity storedEntity = loadEntity(ent.getId());
storedEntity.setData(ent.getData);
return saveEntity(storedEntity);
}
Run Code Online (Sandbox Code Playgroud)
如果 2 个线程以不同的计划更新进入,会发生什么情况。它们都从数据库加载实体,它们都应用自己的更改,然后保存并提交第一个,当保存并提交第二个时,第一个更新丢失。真的是这样吗?使用调试器就可以这样工作。
我正在阅读有关无状态微服务的一些信息。我的问题很简单。如果一个微服务有一些持久性存储,这是否使它成为有状态的微服务。这总是真的吗?任何意见将不胜感激。