首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

使用模式构建:文档版本控制模式

如果我们需要一些文档的版本控制功能怎么办?这就是我们可以使用文档版本控制模式的地方。 这个模式的关键是保持文档的版本历史记录处于可用状态。我们可以构建一个专用的版本控制系统和MongoDB配合使用。...但是通过使用文档版本控制模式,我们可以避免使用多个系统来管理当前文档及其历史,方法是将它们保存在同一个数据库中。...我们来看看一个保险公司可能会如何使用这种模式。每个客户都有一个“标准”保单和一个(根据客户意愿增加的)该客户特有的保单附加条款。这附加的第二部分包括保险单附加条款列表和正在投保的特定项目列表。...往期回顾 使用模式构建第一讲——多态模式 使用模式构建第二讲——属性模式 使用模式构建第三讲——桶模式 使用模式构建第四讲——异常值模式 使用模式构建第五讲——计算模式 使用模式构建第六讲——子集模式...使用模式构建第七讲——扩展引用模式 使用模式构建第八讲——近似值模式 使用模式构建第九讲——树形模式 使用模式构建第十讲——预分配模式 译者 ?

1K20

使用模式构建:模式版本控制模式

这个字段允许我们的应用程序知道如何处理这个特定的文档。或者,我们可以让应用程序根据某些给定字段的存在或不存在来推断版本,但最好还是使用前一种方法。...我们可以假定没有此字段的文档是版本1,然后每个新的模式版本都会增加schema_version字段的值,并可以在应用程序中进行相应的处理。 当保存新信息时,我们使用最新的模式版本。...在阅读了使用模式构建系列文章之后,我们了解了属性模式,并将其实现到一个contact_method数组中。为此,我们创建了一个新的模式版本。...从应用的角度来看,可以设计成同时读取模式的两个版本。即使涉及的应用服务器不止一个,应用程序对于如何处理模式差异的更改也是不需要停机的。...在本例中,将模式版本控制和属性模式一起使用,允许在不停机的情况下进行模式升级,这使得模式版本控制这一模式在MongoDB中特别强大。

1.2K30
您找到你想要的搜索结果了吗?
是的
没有找到

如何使用 Buildah 构建容器镜像

Buildah 能帮助创建、构建和更新,它支持 Docker 容器镜像以及 OCI 兼容镜像。 Buildah 处理构建容器镜像时无需安装完整的容器运行时或守护进程。...Buildah 使容器的文件系统可以直接供构建主机使用。这意味着构建工具在主机上可用就行,而不需要在容器镜像中可用,从而使构建更快速,镜像更小,更安全。...安装 Buildah 从 Fedora 26 开始 Buildah 可以使用 dnf 进行安装。...$ sudo dnf install buildah -y buildah 的当前版本为 0.16,可以通过以下命令显示。...$ buildah --help 构建一个 Apache Web 服务器容器镜像 让我们看看如何使用 Buildah 在 Fedora 基础镜像上安装 Apache Web 服务器,然后复制一个可供服务的自定义

1.7K20

如何使用 Apache 构建 URL 缩短服务

在本文中,我们将展示如何使用 Apache HTTP 服务器的 mod_rewrite 功能来设置自己的 URL 缩短服务。...第二行在文本文件构建短链接的映射。上面的路径只是一个例子。你需要使用系统上使用有效路径(确保它可由运行 HTTPD 的用户帐户读取)。最后一行重写 URL。...你可能希望重写时使用特定的字符串。例如,如果你希望所有缩短的链接都是 “slX”(其中 X 是数字),则将上面的 (.+) 替换为 (sl\d+)。 我在这里使用了临时重定向(HTTP 302)。...如果希望短链接始终指向同一目标,则可以使用永久重定向(HTTP 301)。用 permanent 替换第三行的 temp。 构建你的映射 编辑配置文件 RewriteMap 行中的指定文件。...或者你可以使用它分享容易记住的链接到那些容易忘记的 URL。

2.5K10

如何使用 GitHub Actions 构建 Docker 镜像

本文将帮助您使用GitHub操作设置一个工作流,该工作流将构建和标记Docker镜像并将其推送到Docker Hub注册表。...创建 GitHub Repo 让我们从创建一个新的GitHub存储库开始,它将保存我们的代码(在我们的例子中,实际上只需要一个Dockerfile)来构建镜像。...不过,这里有一些新的东西,那就是我们正在使用的秘密。GitHub在每个存储库的设置中有一个部分,您可以在其中设置用于GitHub操作等的秘密。...这将启动我们的工作流程的构建。要做到这一点,点击代码标签下的releases部分: 点击“Draft a new release”按钮。...记住两件事:您在这里使用的标签名称将用作Docker镜像的标签名称,一旦您单击“发布版本”按钮,工作流将启动。一旦你准备好了,发布新版本

18610

刘奇:如何使用HBase构建NewSQL?

发布第一个Alpha版本的时候以前的质疑都会淡定下来,因为你可以阅读每一行代码,体验每个功能。选择这个领域也是非常艰难的决定,实在太Hardcore了,当初Google Spanner也做了5年。...Spanner已经不再使用NTP了,需要用一个有信心的靠谱的方式来同步时间。内部也说不再用NTP做时间的维护,GPS是非常简单便宜的方式,GPS是大家使用滴滴打车时用于得到定位信息的。...GPS还给了当前精确的时钟信息,有软件可以把这个检测出来,可以直接使用它的这个信号来同步时间。...使用GPS信号的好处很明显,随便在哪个山区都有GPS信号,但不一定能收到基站的信号,同时它的精度也非常高。 TiDB的技术选型 再来说说TiDB的一些技术选型的例子。...SQL如何映射分布式KV? SQL到底是怎么映射到分布式KV上?现在HBase分层分得更加清楚,SQL层不太关心下面到底用什么,在乎的是接口。

1.2K50

如何选择合适的 django 版本使用

首先,是不是需要一个地方来查看 django 有没有新版本发布呢,请看: https://www.djangoproject.com/download/ 然后,该如何选择一个合适的版本,是一股脑装最新版...(很肯能存在一些小问题,如:与其他库的兼容性问题)还是有方法可寻呢,请看:     一般来说我们都选择在长期维护中的 django 版,即 LTS(Long Term Support) 版本。...官网有个图,很明显的看到某些版本标记了 LTS: 从上图可以看出目前在维护中的 只有两个版本,3.2 版本(还没发布)将要加入 LTS: 1.11(Last version to support Python...2.7.) 2.2(我们 python3 就用 2.2 了,跟 1.11 语法上有些变化,比如:路由的匹配模式) 安装的时候指定版本安装就可以安装 LTS 版本(pip install django=

2.9K40

如何使用Git版本控制系统

git最初只是作为一个可以被其他前端包装的后端而开发的,但后来git内核已经成熟到可以独立地用作版本控制。...很多著名的软件都使用git进行版本控制,其中包括Linux内核、X.Org服务器和OLPC内核等项目的开发流程。Git是用于Linux内核开发的版本控制工具。...与CVS、Subversion一类的集中式版本控制工具不同,它采用了分布式版本库的作法,不需要服务器端软件,就可以运作版本控制,使得源代码的发布和交流极其方便。...实际上内核开发团队决定开始开发和使用git来作为内核开发的版本控制系统的时候,世界上开源社群的反对声音不少,最大的理由是git太艰涩难懂,从git的内部工作机制来说,的确是这样。...,请使用git commit。

76220

如何使用 Flupy 构建数据处理管道

摄影:产品经理 厨师:kingname 经常使用 Linux 的同学,肯定对|这个符号不陌生,这个符号是 Linux 的管道符号,可以把左边的数据传递给右边。...这个时候,你就可以使用 Flupy 来实现你的需求。...首先我们使用 Python 3.6 以上的版本安装Flupy: python3 -m pip install flupy 然后开始写代码,看看这几步操作有多简单: import re from flupy...由于有些行有,有些行没有,所以这一步返回的数据有些是 None,有些是正则表达式对象,所以进一步再使用filter关键字,把所有返回None的都过滤掉。...然后继续使用map关键字,对每一个正则表达式对象获取.group(1)。并把结果输出。 运行效果如下图所示: 实现了数据的提取和去重。

1.2K20

如何使用NoSQL架构构建实时广告系统

从上图可以看出,JDNoSQL是一种构建在HDFS之上的分布式、面向列的存储系统。在需要实时读写、随机访问超大规模数据集时,可以使用JDNoSQL。...目前市面上的一些关系类型数据库,在构建时并没有考虑超大规模和分布式的特点。许多商家通过复制和分区的方法来扩充数据库使其突破单个节点的界限,但这些功能通常都是事后增加的,安装和维护都很复杂。...数据多版本:每个单元中的数据可以有多个版本,默认情况下,版本号自动分配,版本号就是单元格插入时的时间戳。 数据类型单一:JDNoSQL中的数据都是字符串,没有类型。...由于业务逻辑层使用Flink框架,所有消费层需要连通Kafka和Flink两个集群。...伴随着NoSQL和大数据技术的兴起和发展,基于NoSQL及NoSQL生态构建的低成本一站式数据处理平台正在蓬勃发展。

1.3K20

如何使用开源SFU构建RTC云服务

同时我们也发现如果要基于这些优秀的开源的SFU构建一个高可用高并发的RTC云服务,就必须对这些SFU进行相应的改造。...Janus使用了Libnice库作为底层网络传输库,该库本身是多端口的实现,因此要在Janus基础上实现单端口存在两种方案:一种是直接替换掉Libnice库,重新构建底层,改为单端口的传输方式。...但是由于Janus和Libnice库的耦合非常紧密,若要使用重新构建底层的方式,实现较为复杂的,难度很大;另外一种方式就是保留Libnice多端口的实现,在Janus上增加单端口代理的功能。...若选择使用代理方式,其实现难点在于来自不同客户端的数据都是通过同一个服务端端口进行传输,服务端该如何判断传输的数据与用户的对应关系。...信令分离之后,紧接着的一个问题就是:信令服务器与SFU或MeidiaServer之间内部信令如何交互。

3K30
领券