当前位置: 首页 > 面试题库 >

Cassandra-交易支持

皇甫学海
2023-03-14
问题内容

我正在经历apache cassandra并从事示例数据插入,检索等工作。

该文档非常有限。

我有兴趣知道

  • 我们可以用cassandra完全取代mysql / oracle之类的关系数据库吗?
  • cassandra支持回滚/提交吗?
  • cassandra客户端(节俭/ hector)是否支持获取关联的对象(将一个超级列的键保存在另一个超级列族中的对象)?

这将帮助我进一步前进。

先感谢您。


问题答案:

简短答案:不可以。

通过设计,Cassandra重视可用性和分区容忍度,而不是一致性1。基本上,在保持所有三种质量的同时不可能获得可接受的延迟:必须牺牲一种。这称为CAP定理。

一致性的数量可以在Cassandra中使用一致性级别进行配置,但是不存在用于回滚的任何语义。即使第一次写入成功,也无法保证您将能够回滚所做的更改。

如果您不想使用Cassandra之上的事务或锁来构建应用程序,则可能要看一下Zookeeper,它可用于提供分布式同步。

您可能已经猜到了,但是Cassandra没有外键或类似的东西。这必须手动处理。我对Hector不太熟悉,但是更高级别的客户端可以半自动执行此操作。

是否可以使用Cassandra轻松替换RDBMS取决于您的特定用例。在您的用例(基于您的问题)中,可能很难做到。



 类似资料:
  • 问题内容: 我当时正在innoDB表中测试事务支持,只是出于好奇,我试图在MyIsam表上运行同一事务,但令人惊讶的是它起作用了。我假设在myIsam表上的查询是一个接一个地执行的,而不是在一个原子操作中执行的,并且我不会从START TRANSACTION以及COMMIT和ROLLBACK操作中得到任何错误。我有兴趣,是MyIsam引擎只是忽略此操作还是执行某些操作? 问题答案: MyISAM有

  • 说明 用于撤销在线支付单,支持微信、支付宝支付 扫呗支付成功状态不支持撤销 主要配合协议2.6使用 微信仅支持撤销扫码刷卡支付,7天内可撤销 支付宝24小时内可撤销 微信支付目前仅支持平台申请的特约商户账号使用撤销。 使用2.10撤销交易的时候要使用token 请求地址 http://api.dc78.cn/Api/cash_cancel_pay 请求方式 GET 请求参数 参数 参数名称 必填

  • 交易 为了与Infura节点进行交易,需要在发送它们之前离线创建交易和签名,因为Infura节点没有加密的以太坊密钥文件的访问权限,这是需要通过geth或者Parity管理命令来解锁帐户。 有关详细信息,请参阅以太坊交易中离线交易和签名部分和web3j如何使用管理APIs。

  • 交易 Web3j支持使用以太坊钱包文件(推荐的)和用于发送事务的以太坊客户端管理命令。 使用以太钱包文件发送以太币给其他人: Web3j web3 = Web3j.build(new HttpService()); // defaults to http://localhost:8545/ Credentials credentials = WalletUtils.loadCredentials

  • 交易有不同的分类,不同交易有不同的操作码。 这样做的好处就是明确用户行为,简化系统复杂度。 操作码列表 OpsTransfer:用于普通的链内转账 OpsMove:用于链间的转账 OpsNewChain:用于创建新的子链 OpsNewApp:用于创建智能合约 OpsRunApp:用于执行智能合约 OpsRegisterMiner:用于注册矿工 OpsUpdateAppLife:更新智能合约的生命周

  • 对不起.我又加了一些内容。我在Spring中测试了两个消息队列(rabbitmq、amazon sqs),如下所示。 我的目的是逻辑处理用户电子邮件到队列发送注册完成电子邮件时,用户完成注册无一例外。 但是,上面的逻辑发生RuntimeException。 有人知道这是为什么吗?