mongodb java 事务_MongoDB 4.2 正式发布,支持分布式事务!

e028b915d3aa55f5a69a0e7e502c4ce8.png

MongoDB 4.2 正式发布了,MongoDB Server 4.2 提高了现代事务和分析数据平台的技术水平。

4.2 的主要重点包括:

1、分布式事务将 MongoDB 的多文档 ACID 从副本集扩展到共享集群,能够为更广泛的用例服务

2、按需物化视图使用新的 $Merge 运算符,在集合中缓存大型聚合的输出是一种常见的模式,新的 $Merge 运算符将可以有效地更新这些结果,而不是完全重新计算它们

3、通配符索引使建模像产品目录这样的高度异构的集合变得简单和自然,而不牺牲对索引的支持。只需定义一个过滤器,它将自动索引集合中所有匹配的字段、子文档和数组

4、MongoDB 查询语言增强功能,如更有表现力的更新、新的数学运算符和扩展的 regex 支持。此版本的 update 和 findAndModify 命令可以引用现有字段,并加入聚合管道,以获得更强的表现力

5、可还原读写,降低了编写处理临时集群故障的代码的复杂性

客户端字段级加密(FLE,Client-side Field Level Encryption)现已是 MongoDB 4.2 的一部分,可以在 beta 版中使用。使用 FLE,可以选择性地保护文档中的敏感字段,每个字段都使用自己的密钥加密,并在客户端上无缝解密。

MongoDB 是现代应用程序的通用数据库,它汇集了文档模型、智能分布式系统以及在任何地方运行它的能力,从笔记本电脑到大型机,在公共和私有云中运行。

如果以 MongoDB 4.2 为例,最快和最简单的方法是在 MongoDB Atlas 上启动一个集群,在 AWS、Azure 和 GCP 上的 60 多个区域都可以使用。

或者可以在自己的基础设施上下载并运行 4.2。通过 MongoDB Enterprise Operator for Kubernetes,你可以让 Kubernetes 部署和管理 MongoDB。

MongoDB支持拆库分表,可以通过sharding方式进行实现。下面是一个简单的MongoDB拆库分表脚本,以Java语言为例: 1. 首先创建一个MongoDB集群,包括3个配置服务器、3个路由服务器和至少2个数据分片服务器。 2. 在Java代码中,使用MongoClient连接到MongoDB集群: ``` MongoClient mongoClient = new MongoClient("mongodb://router1:27017,router2:27017,router3:27017"); ``` 3. 创建一个ShardingClient对象,用于管理MongoDB的sharding: ``` ShardingClient shardingClient = ShardingClientFactory.createShardingClient(mongoClient); ``` 4. 创建一个DatabaseShardingStrategy对象,用于对数据库进行sharding: ``` DatabaseShardingStrategy databaseShardingStrategy = new DatabaseShardingStrategy("db", new ModShardingAlgorithm()); ``` 其中,"db"为需要进行sharding的数据库名称,ModShardingAlgorithm是一个自定义的分片算法。 5. 创建一个TableShardingStrategy对象,用于对表进行sharding: ``` TableShardingStrategy tableShardingStrategy = new TableShardingStrategy("table", new RangeShardingAlgorithm()); ``` 其中,"table"为需要进行sharding的表名称,RangeShardingAlgorithm是另一个自定义的分片算法。 6. 将DatabaseShardingStrategy和TableShardingStrategy对象添加到ShardingClient中: ``` shardingClient.addDatabaseShardingStrategy(databaseShardingStrategy); shardingClient.addTableShardingStrategy(tableShardingStrategy); ``` 7. 完成以上步骤后,MongoDB集群就可以进行拆库分表的操作了。例如,可以使用如下语句向分片集合中插入数据: ``` DB db = mongoClient.getDB("db"); DBCollection collection = db.getCollection("table"); DBObject obj = new BasicDBObject(); obj.put("key", "value"); collection.insert(obj); ``` 以上是一个简单的MongoDB拆库分表脚本,供参考。具体实现需要根据实际情况进行调整。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值