【发布时间】:2022-01-17 22:32:16
【问题描述】:
我有一个在连接到 Cassandra DB 的两个区域的多台机器上运行的微服务。我有以下表结构。
CREATE TABLE gifts (
gift_id text,
user_id text
PRIMARY KEY gift_id
);
该表包含礼物ID列表。
在多个并发请求期间,必须为每个用户分配一个唯一的礼物,即选择一个随机的 gift_id 并更新 user_id。
LWT 是否有助于解决这个问题?
限制:
- 不能使用 zookeeper 进行锁定
- 不能使用任何关系数据库。
【问题讨论】:
-
您正在使用 Cosmos,因此值得注意的是,LWT 在 Cosmos 中不完全支持(例如,仅单区域)。
标签: java concurrency cassandra microservices azure-cosmosdb