8.7. 批处理


批量允许事务的原子性和一些特征,但不能完全合并 JTA 或 XA 功能。与全用事务相比,批处理通常是更轻便且更便宜的事务。

提示

通常,每当事务的唯一参与都是 Data Grid 集群时,应使用批处理 API。另一方面,每当事务涉及多个系统时,应使用 JTA 事务(涉及 TransactionManager)。例如,考虑到"Hello world!"的交易:从一个企业账户传输到其他账户。如果两个帐户都存储在 Data Grid 中,可以使用批处理。如果一个帐户位于数据库中,另一个是 Data Grid,则需要分布式事务。

注意

您不必 定义事务管理器来使用批处理。

8.7.1. API

将缓存配置为使用批处理后,您可以通过调用 Cache 上的 startBatch ()endBatch () 来使用它。E.g.,

Cache cache = cacheManager.getCache();
// not using a batch
cache.put("key", "value"); // will replicate immediately

// using a batch
cache.startBatch();
cache.put("k1", "value");
cache.put("k2", "value");
cache.put("k2", "value");
cache.endBatch(true); // This will now replicate the modifications since the batch was started.

// a new batch
cache.startBatch();
cache.put("k1", "value");
cache.put("k2", "value");
cache.put("k3", "value");
cache.endBatch(false); // This will "discard" changes made in the batch

8.7.2. 批处理和 JTA

在评分后面,批处理功能会启动 JTA 事务,并且该范围内的所有调用都与其关联。为此,请使用非常简单(例如,没有恢复)内部 TransactionManager 实现。使用批处理时,您可以获取:

  1. 在批处理完成前,您获取在调用期间获取的锁定
  2. 作为批处理完成过程的一部分,更改均在批处理中复制。减少批处理中每个更新的复制时间。
  3. 如果使用同步复制或无效,复制/无效中的故障将导致批处理回滚。
  4. 所有与事务相关的配置也适用于批处理。
Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

© 2024 Red Hat, Inc.