我是第一次接触Ignite。碰巧发现Ignite是一个内存中的DB,这可能是对我们当前系统的一个很好的改进。
这是我的情况:
1、我们有一个现有的大型OLTP系统。它是针对在线电子商务的。
2、目前该应用程序使用Spring Boot,数据库为Postgres (AWS)
3、应用程序包含数千条sql: select ..从A inner join B,inner join C…。(通常为5~10个表连接)
4、应用程序使用select…for update锁定条目并执行更新。重试/超时在应用中配置为并发。
5,系统处理在线流量(100个请求/秒)以及一些后端作业更新。因此,并发可能每秒都会在单个记录上发生。
这就是我的目的:
1、希望更改最小应用程序代码以集成Ignite;
2、计划设置如下架构: App -> Ignite (内存数据库) -> Postgres (备份数据库)。(原因是我们对Ignite还不熟悉,以避免操作风险。因此仍倾向于保留Postgres作为备份)
一些问题
Q1。writeThrough不支持与事务性一起使用?
Q2,因为我们需要事务/锁定(选择…为了更新),我使用CacheAtomicityMode.TRANSACTIONAL,但它似乎不能自动同步到Postgres(Q1)。有没有办法同时让事务和自动同步到PG?否则就很麻烦了。我们需要同步我们自己。
Q3,如果我们在app中实现动态dataSource,那么如果Ignite关闭,我们可以实现切换到PG。但这需要PG上的数据与Ignite相同。我可以请教一下如何保持Postgres和Ignite之间的数据一致性吗?
发布于 2021-03-31 22:00:50
事务性支持writeThrough。
但是,Apache Ignite目前在GA中没有事务性SQL,因此您将需要使用缓存API事务(get/put等)。
https://stackoverflow.com/questions/66881471
复制相似问题