怎么在京东做网站网站建设相关新闻

web/2025/10/2 18:29:42/文章来源:
怎么在京东做网站,网站建设相关新闻,做公司的网站大概多少钱,网站建设网站建设哪家好事务简介 事务#xff08;transaction#xff09;是传统数据库所具备的一项基本能力#xff0c;其根本目的是为数据的可靠性与一致性提供保障。而在通常的实现中#xff0c;事务包含了一个系列的数据库读写操作#xff0c;这些操作要么全部完成#xff0c;要么全部撤销。…事务简介 事务transaction是传统数据库所具备的一项基本能力其根本目的是为数据的可靠性与一致性提供保障。而在通常的实现中事务包含了一个系列的数据库读写操作这些操作要么全部完成要么全部撤销。例如在电子商城场景中当顾客下单购买某件商品时除了生成订单还应该同时扣减商品的库存这些操作应该被作为一个整体的执行单元进行处理否则就会产生不一致的情况。 数据库事务需要包含 4 个基本特性即常说的 ACID具体如下 原子性atomicity事务作为一个整体被执行包含在其中的对数据库的操作要么全部被执行要么都不执行。一致性consistency事务应确保数据库的状态从一个一致状态转变为另一个一致状态。一致状态的含义是数据库中的数据应满足完整性约束。隔离性isolation多个事务并发执行时一个事务的执行不应影响其他事务的执行。持久性durability已被提交的事务对数据库的修改应该是永久性的。 MongoDB 多文档事务 在 MongoDB 中对单个文档的操作是原子的。由于可以在单个文档结构中使用内嵌文档和数组来获得数据之间的关系而不必跨多个文档和集合进行范式化所以这种单文档原子性避免了许多实际场景中对多文档事务的需求。对于那些需要对多个文档在单个或多个集合中进行原子性读写的场景MongoDB 支持多文档事务。而使用分布式事务事务可以跨多个操作、集合、数据库、文档和分片使用。MongoDB 虽然已经在 4.2 开始全面支持了多文档事务但并不代表大家应该毫无节制地使用它。相反对事务的使用原则应该是能不用尽量不用。 通过合理地设计文档模型可以规避绝大部分使用事务的必要性。 使用事务的原则 无论何时事务的使用总是能避免则避免模型设计先于事务尽可能用模型设计规避事务不要使用过大的事务尽量控制在 1000 个文档更新以内当必须使用事务时尽可能让涉及事务的文档分布在同一个分片上这将有效地提高效率 MongoDB 对事务支持 事务属性支持程度Atomocity 原子性单表单文档1.x 就支持复制集多表多行4.0分片集群多表多行4.2Consistency 一致性writeConcern, readConcern (3.2)Isolation 隔离性readConcern (3.2)Durability 持久性Journal and Replication 使用方法 try (ClientSession clientSession client.startSession()) {clientSession.startTransaction();collection.insertOne(clientSession, docOne);collection.insertOne(clientSession, docTwo);clientSession.commitTransaction(); }writeConcern https://docs.mongodb.com/manual/reference/write-concern/ writeConcern 决定一个写操作落到多少个节点上才算成功。MongoDB 支持客户端灵活配置写入策略writeConcern以满足不同场景的需求。语法格式 { w: value, j: boolean, wtimeout: number }w: 数据写入到 number 个节点才向用客户端确认 {w: 0} 对客户端的写入不需要发送任何确认适用于性能要求高但不关注正确性的场景{w: 1} 默认的 writeConcern数据写入到 Primary 就向客户端发送确认{w: “majority”} 数据写入到副本集大多数成员后向客户端发送确认适用于对数据安全性要求比较高的场景该选项会降低写入性能 j: 写入操作的 journal 持久化后才向客户端确认 默认为{j: false}如果要求 Primary 写入持久化了才向客户端确认则指定该选项为 true wtimeout: 写入超时时间仅 w 的值大于 1 时有效。 当指定{w: }时数据需要成功写入 number 个节点才算成功如果写入过程中有节点故障可能导致这个条件一直不能满足从而一直不能向客户端发送确认结果针对这种情况客户端可设置 wtimeout 选项来指定超时时间当写入过程持续超过该时间仍未结束则认为写入失败 测试包含延迟节点的 3 节点 pss 复制集。 db.user.insertOne({name:李四},{writeConcern:{w:majority}})# 配置延迟节点 cfg rs.conf() cfg.members[2].priority 0 cfg.members[2].hidden true cfg.members[2].secondaryDelaySecs 60 rs.reconfig(cfg)# 等待延迟节点写入数据后才会响应 db.user.insertOne({name:王五},{writeConcern:{w:3}}) # 超时写入失败 db.user.insertOne({name:小明},{writeConcern:{w:3,wtimeout:3000}})注意事项 虽然多于半数的 writeConcern 都是安全的但通常只会设置 majority因为这是等待写入延迟时间最短的选择不要设置 writeConcern 等于总节点数因为一旦有一个节点故障所有写操作都将失败writeConcern 虽然会增加写操作延迟时间但并不会显著增加集群压力因此无论是否等待写操作最终都会复制到所有节点上。设置 writeConcern 只是让写操作等待复制后再返回而已应对重要数据应用 {w: “majority”}普通数据可以应用 {w: 1} 以确保最佳性能 在读取数据的过程中我们需要关注以下两个问题 从哪里读什么样的数据可以读 第一个问题是是由 readPreference 来解决第二个问题则是由 readConcern 来解决。 readPreference readPreference 决定使用哪一个节点来满足正在发起的读请求。可选值包括primary只选择主节点默认模式primaryPreferred优先选择主节点如果主节点不可用则选择从节点secondary只选择从节点secondaryPreferred优先选择从节点 如果从节点不可用则选择主节点nearest根据客户端对节点的 Ping 值判断节点的远近选择从最近的节点读取 合理的 ReadPreference 可以极大地扩展复制集的读性能降低访问延迟。 readPreference 场景举例 用户下订单后马上将用户转到订单详情页——primary/primaryPreferred。因为此时从节点可能还没复制到新订单用户查询自己下过的订单——secondary/secondaryPreferred。查询历史订单对时效性通常没有太高要求生成报表——secondary。报表对时效性要求不高但资源需求大可以在从节点单独处理避免对线上用户造成影响将用户上传的图片分发到全世界让各地用户能够就近读取——nearest。每个地区的应用选择最近的节点读取数据 readPreference 配置通过 MongoDB 的连接串参数 mongodb://host1:27107,host2:27107,host3:27017/?replicaSetrs0readPreferencesecondary通过 MongoDB 驱动程序 API MongoCollection.withReadPreference(ReadPreference readPref)Mongo Shell db.collection.find().readPref( secondary )从节点读测试 主节点写入{count:1} 观察该条数据在各个节点均可见 # mongosh --host rs0/localhost:28017 rs0:PRIMARY db.user.insert({count:3},{writeConcern:{w:1}})在 primary 节点中调用 readPref(“secondary”) 查询从节点用直连方式mongosh localhost:28017会查到数据需要通过mongosh --host rs0/localhost:28017方式连接复制集。 参考 https://jira.mongodb.org/browse/SERVER-22289 在两个从节点分别执行 db.fsyncLock() 来锁定写入同步 # mongosh localhost:28018 rs0:SECONDARY rs.secondaryOk() rs0:SECONDARY db.fsyncLock()节点写入 {count:2} rs0:PRIMARY db.user.insert({count:2},{writeConcern:{w:1}}) rs0:PRIMARY db.user.find() rs0:PRIMARY db.user.find().readPref(secondary) rs0:SECONDARY db.user.find()解除从节点锁定 db.fsyncUnlock() rs0:SECONDARY db.fsyncUnlock()主节点中查从节点数据 rs0:PRIMARY db.user.find().readPref(secondary)扩展TagreadPreference 只能控制使用一类节点。Tag 则可以将节点选择控制到一个或几个节点。考虑以下场景 一个 5 个节点的复制集3 个节点硬件较好专用于服务线上客户2 个节点硬件较差专用于生成报表 可以使用 Tag 来达到这样的控制目的。 为 3 个较好的节点打上 {purpose: “online”}为 2 个较差的节点打上 {purpose: “analyse”}在线应用读取时指定 online报表读取时指定 analyse # 为复制集节点添加标签 2 conf rs.conf() 3 conf.members[1].tags { purpose: online} 4 conf.members[4].tags { purpose: analyse} 5 rs.reconfig(conf) 6 7 # 查询 8 db.collection.find({}).readPref( secondary, [ {purpose: online} ] )注意事项 指定 readPreference 时也应注意高可用问题。例如将 readPreference 指定 primary则发生故障转移不存在 primary 期间将没有节点可读。如果业务允许则应选择 primaryPreferred使用 Tag 时也会遇到同样的问题如果只有一个节点拥有一个特定 Tag则在这个节点失效时将无节点可读。这在有时候是期望的结果有时候不是。例如 如果报表使用的节点失效即使不生成报表通常也不希望将报表负载转移到其他节点上此时只有一个节点有报表 Tag 是合理的选择如果线上节点失效通常希望有替代节点所以应该保持多个节点有同样的 Tag Tag 有时需要与优先级、选举权综合考虑。例如做报表的节点通常不会希望它成为主节点则优先级应为 0。 readConcern 在 readPreference 选择了指定的节点后readConcern 决定这个节点上的数据哪些是可读的类似于关系数据库的隔离级别。可选值包括 available读取所有可用的数据local读取所有可用且属于当前分片的数据majority读取在大多数节点上提交完成的数据linearizable可线性化读取文档仅支持从主节点读snapshot读取最近快照中的数据仅可用于多文档事务 readConcern: local 和 available 在复制集中 local 和 available 是没有区别的两者的区别主要体现在分片集上。考虑以下场景 一个 chunk x 正在从 shard1 向 shard2 迁移整个迁移过程中 chunk x 中的部分数据会在 shard1 和 shard2 中同时存在但源分片 shard1 仍然是 chunk x 的负责方 所有对 chunk x 的读写操作仍然进入 shard1config 中记录的信息 chunk x 仍然属于 shard1 此时如果读 shard2则会体现出 local 和 available 的区别 local只取应该由 shard2 负责的数据不包括 xavailableshard2 上有什么就读什么包括 x 注意事项 虽然看上去总是应该选择 local但毕竟对结果集进行过滤会造成额外消耗。在一些无关紧要的场景例如统计下也可以考虑 availableMongoDB 3.6 不支持对从节点使用 {readConcern: “local”}从主节点读取数据时默认 readConcern 是 local从从节点读取数据时默认 readConcern 是 available向前兼容原因 readConcern: majority 只读取大多数据节点上都提交了的数据。考虑如下场景 集合中原有文档 {x: 0}将 x 值更新为 1 如果在各节点上应用 {readConcern: “majority”} 来读取数据考虑 t3 时刻的 Secondary1此时 对于要求 majority 的读操作它将返回 x0对于不要求 majority 的读操作它将返回 x1 如何实现节点上维护多个 x 版本MVCC 机制MongoDB 通过维护多个快照来链接不同的版本 每个被大多数节点确认过的版本都将是一个快照快照持续到没有人使用为止才被删除 测试 readConcern: majority vs local 将复制集中的两个从节点使用 db.fsyncLock() 锁住写入模拟同步延迟测试 rs0:PRIMARY db.user.insert({count:10},{writeConcern:{w:1}}) rs0:PRIMARY db.user.find().readConcern(local) rs0:PRIMARY db.user.find().readConcern(majority)主节点测试结果在某一个从节点上执行 db.fsyncUnlock()从节点测试结果结论 使用 local 参数则可以直接查询到写入数据使用 majority只能查询到已经被多数节点确认过的数据update 与 remove 与上同理 readConcern: majority 与脏读 MongoDB 中的回滚 写操作到达大多数节点之前都是不安全的一旦主节点崩溃而从节点还没复制到该次操作刚才的写操作就丢失了把一次写操作视为一个事务从事务的角度可以认为事务被回滚了 所以从分布式系统的角度来看事务的提交被提升到了分布式集群的多个节点级别的“提交”而不再是单个节点上的“提交”。 在可能发生回滚的前提下考虑脏读问题 如果在一次写操作到达大多数节点前读取了这个写操作然后因为系统故障该操作回滚了则发生了脏读问题 使用 {readConcern: “majority”} 可以有效避免脏读。 如何安全的读写分离 考虑如下场景 向主节点写入一条数据立即从从节点读取这条数据 思考如何保证自己能够读到刚刚写入的数据下述方式有可能读不到刚写入的订单 db.orders.insert({oid:101,sku:kite,q:1}) db.orders.find({oid:101}).readPref(secondary)使用 writeConcernreadConcern majority 来解决 db.orders.insert({oid:101,sku:kite,q:1},{writeConcern:{w:majority}}) db.orders.find({oid:101}).readPref(secondary).readConcern(majority)readConcern: linearizable 只读取大多数节点确认过的数据。和 majority 最大差别是保证绝对的操作线性顺序 在写操作自然时间后面的发生的读一定可以读到之前的写只对读取单个文档时有效可能导致非常慢的读因此总是建议配合使用 maxTimeMS readConcern: snapshot {readConcern: “snapshot”} 只在多文档事务中生效。将一个事务的 readConcern 设置为 snapshot将保证在事务中的读 不出现脏读不出现不可重复读不出现幻读 因为所有的读都将使用同一个快照直到事务提交为止该快照才被释放。 小结 available读取所有可用的数据local读取所有可用且属于当前分片的数据默认设置majority数据读一致性的充分保证可能你最需要关注的linearizable增强处理 majority 情况下主节点失联时候的例外情况snapshot最高隔离级别接近于关系型数据库的Serializable 事务隔离级别 事务完成前事务外的操作对该事务所做的修改不可访问 db.tx.insertMany([{ x: 1 }, { x: 2 }]) var session db.getMongo().startSession() # 开启事务 session.startTransaction()var coll session.getDatabase(test).getCollection(tx) # 事务内修改 {x:1, y:1} coll.updateOne({x: 1}, {$set: {y: 1}}) # 事务内查询 {x:1} coll.findOne({x: 1}) //{x:1, y:1}# 事务外查询 {x:1} db.tx.findOne({x: 1}) //{x:1}# 提交事务 session.commitTransaction()# 或者回滚事务 session.abortTransaction()如果事务内使用 {readConcern: “snapshot”}则可以达到可重复读 Repeatable Read var session db.getMongo().startSession() session.startTransaction({ readConcern: {level: snapshot}, writeConcern: {w: majority}})var coll session.getDatabase(test).getCollection(tx)coll.findOne({x: 1}) db.tx.updateOne({x: 1}, {$set: {y: 2}}) db.tx.findOne({x: 1}) coll.findOne({x: 1}) # 事务外查询session.abortTransaction()事务超时 在执行事务的过程中如果操作太多或者存在一些长时间的等待则可能会产生如下异常原因在于默认情况下 MongoDB 会为每个事务设置 1 分钟的超时时间如果在该时间内没有提交就会强制将其终止。该超时时间可以通过 transactionLifetimeLimitSecond 变量设定。 事务错误处理机制 MongoDB 的事务错误处理机制不同于关系数据库 当一个事务开始后如果事务要修改的文档在事务外部被修改过则事务修改这个 文档时会触发 Abort 错误因为此时的修改冲突了。这种情况下只需要简单地重做事务就可以了如果一个事务已经开始修改一个文档在事务以外尝试修改同一个文档则事务以外的修改会等待事务完成才能继续进行 写冲突测试 开 3 个 mongo shell 均执行下述语句 var session db.getMongo().startSession() session.startTransaction({ readConcern: {level: majority}, writeConcern: {w: majority}}) var coll session.getDatabase(test).getCollection(tx)窗口 1正常结束 coll.updateOne({x: 1}, {$set: {y: 1}}) 窗口 2异常 – 解决方案重启事务 coll.updateOne({x: 1}, {$set: {y: 2}})窗口 3事务外更新需等待 db.tx.updateOne({x: 1}, {$set: {y: 3}})注意事项 可以实现和关系型数据库类似的事务场景必须使用与 MongoDB 4.2 及以上兼容的驱动事务默认必须在 60 秒可调内完成否则将被取消涉及事务的分片不能使用仲裁节点事务会影响 chunk 迁移效率。正在迁移的 chunk 也可能造成事务提交失败重试即可多文档事务中的读操作必须使用主节点读readConcern 只应该在事务级别设置不能设置在每次读写操作上 SpringBoot 整合 MongoDB 事务操作 官方文档https://docs.mongodb.com/upcoming/core/transactions/ 编程式事务 /*** 事务操作API* https://docs.mongodb.com/upcoming/core/transactions/*/ Test public void updateEmployeeInfo() {// 连接复制集MongoClient client MongoClients.create(mongodb://firechou:firechou192.168.65.174:28017,192.168.65.174:28018,192.168.65.174:28019/test?authSourceadminreplicaSetrs0);MongoCollectionDocument emp client.getDatabase(test).getCollection(emp);MongoCollectionDocument events client.getDatabase(test).getCollection(events);// 事务操作配置TransactionOptions txnOptions TransactionOptions.builder().readPreference(ReadPreference.primary()).readConcern(ReadConcern.MAJORITY).writeConcern(WriteConcern.MAJORITY).build();try (ClientSession clientSession client.startSession()) {// 开启事务clientSession.startTransaction(txnOptions);try {emp.updateOne(clientSession,Filters.eq(username, 张三),Updates.set(status, inactive));int i1/0;events.insertOne(clientSession,new Document(username, 张三).append(status, new Document(new, inactive).append(old, Active)));// 提交事务clientSession.commitTransaction();}catch (Exception e){e.printStackTrace();// 回滚事务clientSession.abortTransaction();}} }声明式事务 配置事务管理器 Bean MongoTransactionManager transactionManager(MongoDatabaseFactory factory){// 事务操作配置TransactionOptions txnOptions TransactionOptions.builder().readPreference(ReadPreference.primary()).readConcern(ReadConcern.MAJORITY).writeConcern(WriteConcern.MAJORITY).build();return new MongoTransactionManager(factory); }编程测试 service Service public class EmployeeService {AutowiredMongoTemplate mongoTemplate;Transactionalpublic void addEmployee(){Employee employee new Employee(100,张三, 21, 15000.00, new Date());Employee employee2 new Employee(101,赵六, 28, 10000.00, new Date());mongoTemplate.save(employee);// int i1/0;mongoTemplate.save(employee2);} }测试 Autowired EmployeeService employeeService;Test public void test(){employeeService.addEmployee(); }

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/85755.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

湖北省建设招投标监督机构网站中国半导体设备

该错误提示表示您的 OpenSSL 版本过低,无法兼容 urllib3 v2.0。 解决此问题的方法是升级您的 OpenSSL 版本至 1.1.1 或以上。具体操作如下: 方法一: 检查您的 OpenSSL 版本,使用以下命令: openssl version 如果您的…

郑州做网站和域名云南7省建设厅网站

2.6内核以后,多数驱动都是以平台总线的方式编写,因此对于这种类型的驱动,实际就是要分成两个流程来分析 平台总线设备的构造,平台总线驱动的构造。 下面先分析平台总线设备的构造,平台总线设备里是硬件相关的信息&am…

高校网站建设需求分析报告购物网站模板 php

重构:改善既有代码的设计(评注版) 评注者序评注者序近十年来,若要讨论如何改进代码的质量,很难绕过Martin Fowler的这本经典著作。这本书已经影响了几代程序员,或许会持续不断地影响未来的一批程序员。遗憾…

企业网站建设费用预算微信软文范例100字

1.前提 主要功能切换host 2.下载路径 https://oldj.github.io/SwitchHosts/ 3.使用略(太简单)转载于:https://www.cnblogs.com/totoro-cat/p/9987101.html

有做二手厨房设备的网站吗wordpress默认页面设置方法

什么是wttr? 使用Python预测天气的第一步,我们要了解wttr是什么。wttr.in是一个面向控制台的天气预报服务,它支持各种信息表示方法,如面向终端的ANSI序列(用于控制台HTTP客户端(curl、httpie或wget))、HTML(用于web浏览器)或PNG(…

协会网站建设公司建网站流程

【运维工程师学习三】shell编程 Shell程序分类1、系统中sh命令是bash的软链接2、Shell脚本标准格式之文件后缀3、Shell脚本标准格式之文件内容首行4、Shell脚本的运行方法一、作为可执行程序解释 二、作为解释器(bash)参数 5、find、grep、xargs、sort、…

电子商务网站功能模块如何申请一个网站

A Simple Interconnection Network 一个简单的互连网络 2.1 网络规范和约束2.2 拓扑2.3 路由2.4 流量控制2.5 路由器设计性能分析 A Simple Interconnection Network 一个简单的互连网络 我们将研究简单互连网络的架构和设计,以提供全局视图。我们将研究最简单的…

盐城网站优化价格游戏工作室加盟

大家好,如果您在并发Java应用程序中工作,那么您可能听说过java.util.concurrent包的Exchanger类。 Java中的Exchanger是Java 1.5中与CountDownLatch , CyclicBarrier和Semaphores一起引入的另一个并发或同步实用程序。 顾名思义, …

门户网站建设基础术语四川住房和城乡建设厅

1、下载Redis Redis官网:https://redis.io/ 历史版本: http://download.redis.io/releases 2、连接Linux(或者VMwear) 我们安装的是linux版本的redis 打开xftp我们需要先将我们的Redis上传到服务器上 解压到这里 解压的指令 …

凡科建站相关链接建筑模板做凳子

【ES6.0】- Promise对象 文章目录 【ES6.0】- Promise对象一、概述二、Promise状态三、Promise方法3.1 Promise.prototype.then方法:链式操作3.2 Promise.prototype.catch方法:捕捉错误3.3 Promise.race方法:捕捉错误3.4 Promise.any()3.5 Pr…

做网站最省钱中铁建设集团

在模拟或设计软件中创建道路并指定其特征是一个复杂但必要的过程,尤其是在进行交通模拟、城市规划或道路设计项目时。以下是一个步骤化的指南,用于说明如何创建道路特征: 水平剖面: 使用设计软件的绘图工具来绘制道路的中心线或边…

wordpress多站点 用户四川学校网站建设

antlr4 代码 语法树DSL是很酷的东西,但我不清楚它们有什么用。 然后我意识到它们对以下方面有好处: 摆脱复杂的UI 意思是 更快的做事方式 而已。 当我阅读此博客时,我得出了这个结论。 如果您的用户是技术人员,并且不惧怕类…

服装网站开发手机网站推荐哪些

来源:计算机研究与发展前 言近几年来人工智能技术的飞速发展使得其应用迅猛扩大,而传统的计算机体系结构对于面向人工智能的应用在处理速度、能耗、使用的方便性等方面有着诸多不足。随着人工智能应用的发展,面向人工智能的体系结构成为体系结…

有无广告销售版本"有广告免费无广告收费"网站短网址还原在线生成

最近在网上看到了荧光图,觉得挺帅气,去网上查询了怎么制作荧光图,发现大部分都是QGIS的教程,作为ArcGIS的死忠用户,决定在ArcGIS Pro中实现,其实挺简单的。 1、软件:ArcGIS Pro3.0 2、点数据&a…

班级网站建设首页报告怎样弄一个自己的平台

一、模块题目 二、原理图 1、数码管

响应式网站图片代码板瓦工安装wordpress

上一篇文章介绍到 servicemanager 的 main 函数中主要做了四件事: 1)初始化 binder 驱动。 2)将自身以“manager”添加到 servicemanager 中的 map 集合中。 3)注册成为 binder 驱动的上下问管理者。 4)给 Looper 设置 callback,进入无限循环,处理 client 端发来的请求。…

网站后台管理系统进入php做直播类型的网站

文章目录 0.前言1.模型下载2.配置环境2.1 下载项目文件2.2 配置环境 3.开始推理4.总结 0.前言 本博客将介绍ChatGLM3-6B大模型在Ubuntu上的本地部署教程 1.模型下载 由于毛毛张的服务器服务无法科学上网,所以模型的相关文件必须现在本地下载好,再上传到…

石家庄专业网站制北京网站建立

docker 概念 -云计算的基石 docker的一个软件: 开源 docker基本组成 docker主机(Host):安装了Docker程序的机器(Docker直接安装在操作系统之上); docker仓库(Registry):用来保存各种打包好的软件镜像&a…

常用的网站推广装修公司起名

概述 基于Flume MongoDB,对现有的多个应用系统进行日志采集。特点 采集范围每一次用户请求的请求信息。数据量大尽量减少现有系统的改动数据流图 说明:首先考虑的结构体系,是直接在应用系统中,将日志数据写到Flume;但…

群晖 做网站服务器营销网站建设哪里便宜

本文记录Windows环境下的MongoDB安装与使用总结。 【1】官网下载 官网下载地址:Download MongoDB Community Server | MongoDB 这里可以选择下载zip或者msi,zip是解压后自己配置,msi是傻瓜式一键安装。这里我们分别对比进行实践。 【2】ZI…