찾다
데이터 베이스MySQL 튜토리얼mongodb 分布式读写操作(1)
mongodb 分布式读写操作(1)Jun 07, 2016 pm 04:37 PM
mongodb분산작동하다읽고 쓰기

mongodb shared cluster 和 replica set 架构应用非常广泛。在生产环境中,这两种架构随着业务量,数据量的增长以及高可用性的需求,日渐提上日程,系统架构从单台慢慢转向集群的架构,所有底层设施集群化。一. 分布式读操作介绍分片集群和副本集如何影响读

mongodb shared cluster 和 replica set 架构应用非常广泛。在生产环境中,这两种架构随着业务量,数据量的增长以及高可用性的需求,日渐提上日程,系统架构从单台慢慢转向集群的架构,所有底层设施集群化。 一. 分布式读操作 介绍分片集群和副本集如何影响读操作的性能。 1.1 分片集群读操作 分片集群允许数据分割到集群内的不同mongod实例上,这对应用程序来说几乎是透明的。 对于分片集群,应用程序发出操作与集群相关的mongos实例。   sharded-cluster 读操作直接定向到一个特定的分片上,集群读操作是最有效的。 查询到分片集合应该包括集合分片片键。?当一个查询包含分片片键,mongos从config ?server使用集群元数据将查询路由到分片。 查询条件包括分片关键。查询路由器mongos将查询直接到定位到相应的分片。 sharded-cluster-targeted-query 如果查询不包含分片片键,mongos将查询广播到集群中的所有分片。 这种分散聚集查询是非常低效的。对于大型集群,这种操作是要命的。 sharded-cluster-scatter-gather-query 1.2 复制集读操作 副本集使用读的优先模式来决定在哪里以及如何路由读操作到副本集的成员。 默认情况下,应用程序读操作在复制集的primary上。从primary读可以保证文档的最新版本,因为复制集是异步复制的。然后,通过分配部分或者全部读操作到复制集的secondary节点上,可以提高读取吞吐量或减少等待时间,对实时性应用程序需要并不高。 可以通过修改读操作的优先模式来更改读的特性。 读操作的模式有:
读模式 描述
primary 默认模式。所有读操作都从primary节点读取。
primaryPreferred 在大多数情况下,读操作从primary节点读取,但如果primary节点不可用,读操作从secondary节点读取。
secondary 所有读操作都从secondary节点读取。
secondaryPreferred 在大多数情况下,读操作从secondary节点读取,但如果secondary节点不可用,读操作从primary节点读取。
nearest 读操作从副本集网络延迟最小的节点读取,无论该节点的类型。
根据应用程序的需求,选择不同的读操作模式。 最大限度的一致性:在任何情况下,避免读取到旧数据,使用primary模式。在没有primary节点,发生在选举阶段,或大部分节点不可用,将阻塞所有的读取操作。 最大限度的高可用性:尽可能的保证读操作,使用?primaryPreferred 模式。当有一个primary节点会得到一致性读,如果没有,仍然可以查询secondary节点。 减少等待时间 :要始终从低延迟的节点读取,使用nearest。驱动和mongos从最少延迟读取。nearest不保证一致性。如果复制延迟,查询可能返回过期数据。nearest只反映网络的延迟,并不能反映I/O和CPU的负载。 replica-set-read-preference 从secondary节点读取,并不能反映primary当前的状态,异步复制下,secondary节点可能落后primary节点一定的时间。通常情况下,应用程序不要求这种严格的一致性,对于高可用性的要求是最多的。 二.?分布式写操作 介绍MongoDB中如何引导的分片集群和副本集的写操作,并且这些写操作的性能特点。具体内容请关注下节内容。
성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
mongodb php 扩展没有怎么办mongodb php 扩展没有怎么办Nov 06, 2022 am 09:10 AM

mongodb php扩展没有的解决办法:1、在linux中执行“$ sudo pecl install mongo”命令来安装MongoDB的PHP扩展驱动;2、在window中,下载php mongodb驱动二进制包,然后在“php.ini”文件中配置“extension=php_mongo.dll”即可。

Redis和MongoDB的区别与使用场景Redis和MongoDB的区别与使用场景May 11, 2023 am 08:22 AM

Redis和MongoDB都是流行的开源NoSQL数据库,但它们的设计理念和使用场景有所不同。本文将重点介绍Redis和MongoDB的区别和使用场景。Redis和MongoDB简介Redis是一个高性能的数据存储系统,常被用作缓存和消息中间件。Redis以内存为主要存储介质,但它也支持将数据持久化到磁盘上。Redis是一款键值数据库,它支持多种数据结构(例

Go语言中使用MongoDB:完整指南Go语言中使用MongoDB:完整指南Jun 17, 2023 pm 06:14 PM

MongoDB是一种高性能、开源、文档型的NoSQL数据库,被广泛应用于Web应用、大数据以及云计算领域。而Go语言则是一种快速、开发效率高、代码可维护性强的编程语言。本文将为您完整介绍如何在Go语言中使用MongoDB。一、安装MongoDB在使用MongoDB之前,需要先在您的系统中安装MongoDB。在Linux系统下,可以通过如下命令安装:sudo

php7.0怎么安装mongo扩展php7.0怎么安装mongo扩展Nov 21, 2022 am 10:25 AM

php7.0安装mongo扩展的方法:1、创建mongodb用户组和用户;2、下载mongodb源码包,并将源码包放到“/usr/local/src/”目录下;3、进入“src/”目录;4、解压源码包;5、创建mongodb文件目录;6、将文件复制到“mongodb/”目录;7、创建mongodb配置文件并修改配置即可。

php怎么使用mongodb进行增删查改操作php怎么使用mongodb进行增删查改操作Mar 28, 2023 pm 03:00 PM

MongoDB作为一款流行的NoSQL数据库,已经被广泛应用于各种大型Web应用和企业级应用中。而PHP语言也作为一种流行的Web编程语言,与MongoDB的结合也变得越来越重要。在本文中,我们将会学习如何使用PHP语言操作MongoDB数据库进行增删查改的操作。

SpringBoot中logback日志怎么保存到mongoDBSpringBoot中logback日志怎么保存到mongoDBMay 18, 2023 pm 07:01 PM

自定义Appender非常简单,继承一下AppenderBase类即可。可以看到有个AppenderBase,有个UnsynchronizedAppenderBase,还有个AsyncAppenderBase继承了UnsynchronizedAppenderBase。从名字就能看出来区别,异步的、普通的、不加锁的。我们定义一个MongoDBAppender继承UnsynchronizedAppenderBasepublicclassMongoDBAppenderextendsUnsynchron

SpringBoot怎么整合Mongodb实现增删查改SpringBoot怎么整合Mongodb实现增删查改May 13, 2023 pm 02:07 PM

一、什么是MongoDBMongoDB与我们之前熟知的关系型数据库(MySQL、Oracle)不同,MongoDB是一个文档数据库,它具有所需的可伸缩性和灵活性,以及所需的查询和索引。MongoDB将数据存储在灵活的、类似JSON的文档中,这意味着文档的字段可能因文档而异,数据结构也会随着时间的推移而改变。文档模型映射到应用程序代码中的对象,使数据易于处理。MongoDB是一个以分布式数据库为核心的数据库,因此高可用性、横向扩展和地理分布是内置的,并且易于使用。况且,MongoDB是免费的,开源

Swoole与MongoDB的整合:构建高性能的文档数据库系统Swoole与MongoDB的整合:构建高性能的文档数据库系统Jun 14, 2023 am 11:51 AM

在现代企业应用程序开发中,需要处理海量数据和高并发的访问请求。为了满足这些需求,开发人员需要使用高性能的数据库系统,以确保系统的稳定性和可扩展性。本文将介绍如何使用Swoole和MongoDB构建高性能的文档数据库系统。Swoole是一个基于PHP语言开发的异步网络通信框架,它能够大大提高PHP应用程序的性能和并发能力。MongoDB是一种流行的文档数据库,

See all articles

핫 AI 도구

Undresser.AI Undress

Undresser.AI Undress

사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover

AI Clothes Remover

사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool

Undress AI Tool

무료로 이미지를 벗다

Clothoff.io

Clothoff.io

AI 옷 제거제

AI Hentai Generator

AI Hentai Generator

AI Hentai를 무료로 생성하십시오.

뜨거운 도구

ZendStudio 13.5.1 맥

ZendStudio 13.5.1 맥

강력한 PHP 통합 개발 환경

mPDF

mPDF

mPDF는 UTF-8로 인코딩된 HTML에서 PDF 파일을 생성할 수 있는 PHP 라이브러리입니다. 원저자인 Ian Back은 자신의 웹 사이트에서 "즉시" PDF 파일을 출력하고 다양한 언어를 처리하기 위해 mPDF를 작성했습니다. HTML2FPDF와 같은 원본 스크립트보다 유니코드 글꼴을 사용할 때 속도가 느리고 더 큰 파일을 생성하지만 CSS 스타일 등을 지원하고 많은 개선 사항이 있습니다. RTL(아랍어, 히브리어), CJK(중국어, 일본어, 한국어)를 포함한 거의 모든 언어를 지원합니다. 중첩된 블록 수준 요소(예: P, DIV)를 지원합니다.

SecList

SecList

SecLists는 최고의 보안 테스터의 동반자입니다. 보안 평가 시 자주 사용되는 다양한 유형의 목록을 한 곳에 모아 놓은 것입니다. SecLists는 보안 테스터에게 필요할 수 있는 모든 목록을 편리하게 제공하여 보안 테스트를 더욱 효율적이고 생산적으로 만드는 데 도움이 됩니다. 목록 유형에는 사용자 이름, 비밀번호, URL, 퍼징 페이로드, 민감한 데이터 패턴, 웹 셸 등이 포함됩니다. 테스터는 이 저장소를 새로운 테스트 시스템으로 간단히 가져올 수 있으며 필요한 모든 유형의 목록에 액세스할 수 있습니다.

WebStorm Mac 버전

WebStorm Mac 버전

유용한 JavaScript 개발 도구

DVWA

DVWA

DVWA(Damn Vulnerable Web App)는 매우 취약한 PHP/MySQL 웹 애플리케이션입니다. 주요 목표는 보안 전문가가 법적 환경에서 자신의 기술과 도구를 테스트하고, 웹 개발자가 웹 응용 프로그램 보안 프로세스를 더 잘 이해할 수 있도록 돕고, 교사/학생이 교실 환경 웹 응용 프로그램에서 가르치고 배울 수 있도록 돕는 것입니다. 보안. DVWA의 목표는 다양한 난이도의 간단하고 간단한 인터페이스를 통해 가장 일반적인 웹 취약점 중 일부를 연습하는 것입니다. 이 소프트웨어는