当前位置: 首页 > 知识库问答 >
问题:

hazelcast Spring-数据写入

单耘豪
2023-03-14

我使用Spring-Boot、spring-data/jpa和Hazelcast客户机/服务器拓扑。在我的测试应用程序的某些部分中,我在客户端(服务器是与关系数据库交互的服务器)执行CRUD操作时计算时间。我通过将write-delay-seconds设置为10,将映射(存储)配置为write-behind。

Spring-Data的save()返回持久化的实体。因此,在客户端应用程序中,应用程序流将被阻止,直到(服务器)返回持久化实体。

想知道是否有一种替代方案,在这种情况下,客户端不必等待实体持久化。我的印象是,一旦新数据存储在映射中,持久化到支持的数据就会异步发生->客户机应用程序就不必等待了。

hazelast.xml中的映射配置:

<map name="com.foo.MyMap">
    <map-store enabled="true" initial-mode="EAGER">
        <class-name>com.foo.MyMapStore</class-name>
        <write-delay-seconds>10</write-delay-seconds>
    </map-store>
</map>

@NeilStevenson我不觉得你的回应特别有帮助。我在之前的一篇文章中询问了在哪里以及如何生成映射键。你向我指出了未能说明这一主题的文档。hazelcast(和其他)示例也是如此。

将缓存放在第一位的目的是避免访问数据库。当我们添加数据(通过save())时,我们还需要为映射生成一个唯一的键。该键也成为数据库表中的entity.id。同样,由于生成这些ID的是hazelcast客户机,所以不需要等待记录在后端持久化。

等待save()返回持久对象的唯一原因是捕获任何异常,而不是因为ID。

共有1个答案

姬心思
2023-03-14

不幸的是,这就是它的工作方式,请参见https://docs.spring.io/spring-data/commons/docs/current/api/org/springframework/data/repository/crudrepository.html#save-s-。

外部存储可能会以某种方式改变保存的条目。

虽然您知道它不会这样做,但在定义的保存上没有一个变体。

因此,答案似乎是目前通用Spring存储库定义中没有这个功能。为什么不为Spring数据团队提出一个特性请求呢?

 类似资料:
  • 主要内容:设置,更新在本章中,我们将向演示如何将数据保存到Firebase。 设置 方法将写入或替换指定路径上的数据。 让我们创建一个引用收集和设置两个运动员数据信息。 执行上面示例代码,得到以下结果 - 更新 我们可以用类似的方式更新Firebase数据。 注意我们如何使用路径。 执行上面示例代码,得到以下结果 -

  • 问题内容: 在我们的应用程序中,我们希望用户输入如下: 我想在单元测试中通过该部分,以便我可以恢复线程以执行其余代码。我如何从junit 写入内容? 问题答案: 你想要做的是使用的方法从。这将使您可以从junit 传递数据。

  • 在本章中,我们将向您展示如何将数据保存到Firebase。 Set set方法将在指定路径上写入或替换数据。 让我们创建一个对玩家集合的引用并设置两个玩家。 var playersRef = firebase.database().ref("players/"); playersRef.set ({ John: { number: 1, age: 30 },

  • 问题内容: 我搜索了从图片文件中获取EXIF数据,然后将其写回Swift中。但是我只能找到针对不同语言的预定义库。 我还找到了对“ CFDictionaryGetValue”的引用,但是我需要哪些键来获取数据?我该怎么写呢? 问题答案: 我正在用它来从图像文件中 获取 EXIF信息: 它为您提供了一个字典,其中包含各种信息,例如颜色配置文件-EXIF信息专门位于中。

  • 除了 fmt 和 os 包,我们还需要用到 bufio 包来处理缓冲的输入和输出。

  • 问题内容: 我刚刚建立了一个到目前为止仍然非常少的项目maven / jpa / hibernate项目,在这里我试图持久化一个对象。 我的课很简单: 我的persistence.xml也是非常基本的: 最后,这是我用来保留对象的代码: 现在,我希望在这里发生两件事:首先,我希望创建Person表(由于hibernate.hbm2ddl.auto = update)。这已经发生过一次,并且正确写出