백엔드 개발 PHP 튜토리얼 PHP에서 MongoDB 데이터베이스의 마스터-슬레이브 복제를 구현하는 방법

PHP에서 MongoDB 데이터베이스의 마스터-슬레이브 복제를 구현하는 방법

May 16, 2023 pm 12:40 PM
php mongodb 마스터-슬레이브 복제

현대 웹 애플리케이션에서 데이터 처리 및 관리는 중요한 작업입니다. 웹 애플리케이션이 점점 더 복잡해지고 막대한 양의 데이터를 처리해야 함에 따라 이 데이터를 저장하고 처리하기 위해 점점 더 많은 데이터베이스가 필요합니다.

MongoDB는 웹 애플리케이션에서 널리 사용되는 NoSQL 데이터베이스입니다. MySQL과 같은 관계형 데이터베이스와 달리 MongoDB는 테이블이 아닌 문서를 사용하여 데이터를 저장하므로 MongoDB는 대량의 데이터를 처리하는 데 이상적입니다. 또한 MongoDB는 여러 인스턴스 간의 마스터-슬레이브 복제 애플리케이션에 필요한 여러 애플리케이션에 대한 고가용성과 확장성을 제공합니다.

이 글에서는 PHP를 사용하여 MongoDB 마스터-슬레이브 복제 애플리케이션을 작성하는 방법을 소개합니다.

MongoDB 마스터-슬레이브 복제 개요

MongoDB 마스터-슬레이브 복제는 여러 MongoDB 인스턴스 간에 복사본을 생성하여 오류나 성능 문제가 발생하는 경우에도 애플리케이션이 정상적으로 실행될 수 있도록 하는 것입니다. 마스터 인스턴스는 모든 쓰기 요청을 받은 다음 이를 읽기 요청만 받는 각 슬레이브 인스턴스에 복제합니다.

마스터-슬레이브 복제의 장점

  • 고가용성: 마스터 인스턴스가 실패하면 애플리케이션이 슬레이브 인스턴스로 자동 전환할 수 있습니다.
  • 데이터 중복성: 하나의 인스턴스가 실패하면 다른 인스턴스가 계속 서비스를 제공할 수 있습니다.
  • 확장성: 애플리케이션의 정상적인 작동에 영향을 주지 않고 더 많은 슬레이브 인스턴스를 추가할 수 있습니다.

MongoDB 마스터-슬레이브 복제 원칙

MongoDB 마스터-슬레이브 복제에서는 마스터 인스턴스가 생성되고 모든 쓰기 요청이 이 인스턴스로 전송됩니다. 쓰기 작업이 성공하면 먼저 마스터 인스턴스의 작업 로그에 쓰기 작업 기록이 저장된 후, 해당 작업이 다른 인스턴스에 복사될 수 있도록 각 슬레이브 인스턴스에 작업이 전송됩니다. 또한 슬레이브 인스턴스는 마스터 인스턴스의 데이터를 주기적으로 동기화할 수도 있습니다.

각 MongoDB 슬레이브 인스턴스에서 복제된 데이터는 읽기 요청에 사용될 수 있으며, 복제본은 마스터 인스턴스에 직접 쿼리하지 않고도 이러한 요청을 처리할 수 있습니다. 또한 마스터 인스턴스를 선택하기 위해 슬레이브 인스턴스에서 선택 메커니즘을 활성화할 수 있습니다.

MongoDB 마스터-슬레이브 복제 구성

MongoDB 마스터-슬레이브 복제를 사용하려면 마스터 인스턴스와 슬레이브 인스턴스를 생성하고 이들 간의 연결을 설정하는 등 몇 가지 준비 작업이 필요합니다. MongoDB 마스터-슬레이브 복제의 기본 구성은 다음과 같습니다.

  1. 마스터 인스턴스 생성

MongoDB 인스턴스를 생성하려면 mongod 명령을 사용하면 됩니다. 마스터 인스턴스를 생성할 때 다음 명령을 사용할 수 있습니다.

mongod --replSet rs0

이 명령은 마스터 인스턴스와 두 개의 슬레이브 인스턴스를 포함하는 "rs0"이라는 복제본 세트를 생성합니다.

  1. 슬레이브 인스턴스 생성

슬레이브 인스턴스를 생성하려면 일반적으로 mongod 인스턴스를 시작해야 합니다.

mongod --port 27027

이 명령을 사용하여 28027이라는 MongoDB 인스턴스를 생성하고 슬레이브로 표시합니다. 사례.

  1. 마스터 인스턴스 구성

마스터 인스턴스를 구성하려면 mongo 명령줄 도구를 사용하여 명령줄에 다음 명령을 입력하세요.

rs.initiate()

이렇게 하면 복제본 세트가 초기화됩니다. 마스터 인스턴스가 됩니다.

  1. 슬레이브 인스턴스 구성

슬레이브 인스턴스 구성 시 마스터 인스턴스에 연결하려면 MongoDB 인스턴스의 IP 주소와 포트를 지정해야 합니다. 다음은 슬레이브 인스턴스를 구성하는 구문 예시입니다.

rs.add("192.168.1.2:28027")

이렇게 하면 28027이라는 MongoDB 인스턴스가 복제본 세트의 일부로 마스터 인스턴스에 추가됩니다.

MongoDB 마스터-슬레이브 복제 구현

PHP에서 MongoDB 마스터-슬레이브 복제를 구현하려면 MongoDB PHP 드라이버와 MongoDB PHP 확장을 사용해야 합니다. 다음은 MongoDB 마스터-슬레이브 복제를 구현하는 단계입니다.

  1. MongoDB 데이터베이스에 연결

PHP에서 MongoDB 데이터베이스에 연결하려면 MongoDB PHP 확장을 사용해야 합니다. 다음은 MongoDB 데이터베이스에 연결하기 위한 샘플 코드입니다.

$manager = new MongoDBDriverManager("mongodb://localhost:27017");
?>

이 코드 조각을 사용하여 MongoDB를 초기화합니다. PHP 드라이버 그리고 서버 애플리케이션의 호스트와 포트로 "mongodb://localhost:27017"을 사용합니다.

  1. 마스터-슬레이브 상태 가져오기

MongoDB 마스터-슬레이브 복제 상태를 가져오려면 MongoDB PHP 확장에서 제공하는 방법을 사용해야 합니다. 다음은 마스터-슬레이브 상태를 가져오는 샘플 코드입니다.

$command = new MongoDBDriverCommand(['replSetGetStatus' => 1]);
$cursor = $manager->executeCommand(' admin', $ command);
$status = $cursor->toArray()[0];
var_dump($status);
?>

이 코드 조각을 사용하여 현재 마스터-슬레이브 상태를 확인하세요. 몽고DB 데이터베이스. 레플리카 세트의 모든 슬레이브 인스턴스가 업데이트되면 모든 슬레이브 인스턴스는 동일한 레플리카 상태를 가져야 하며 마스터 인스턴스의 상태는 모든 슬레이브 인스턴스보다 먼저 업데이트되어야 합니다.

  1. 읽기 기본 설정 지정

PHP에서 MongoDB 마스터-슬레이브 복제의 읽기 기본 설정을 설정하려면 MongoDB PHP 확장에서 제공하는 방법을 사용할 수 있습니다. 코드에서 읽기 기본 설정을 지정하는 예는 다음과 같습니다.

$readPreference = new MongoDBDriverReadPreference(MongoDBDriverReadPreference::RP_NEAREST);
$options = [
'readPreference' => query = new MongoDBDriverQuery([], $options);
$cursor = $manager->executeQuery('mydb.mycollection', $query);
?>

이 코드 조각을 사용하여 MongoDB 마스터-슬레이브 복제에서 읽기 기본 설정을 지정하세요. 이 예에서는 최근 읽기 읽기 기본 설정 옵션이 MongoDBDriverReadPreference::RP_NEAREST를 사용하여 설정됩니다.

  1. 마스터-슬레이브 복제 작업

PHP에서 MongoDB 마스터-슬레이브 복제 작업을 완료하려면 MongoDB PHP 확장에서 제공하는 방법을 사용해야 합니다. 다음은 MongoDB 마스터-슬레이브 복제에서 삽입 작업을 사용하기 위한 샘플 코드입니다:

$bulk = new MongoDBDriverBulkWrite;
$bulk->insert(['_id' => 1, 'name' => ; 'John Doe']);
$manager->executeBulkWrite('mydb.mycollection', $bulk);
?>

이 코드 조각을 사용하면 MongoDB 마스터 인스턴스에 삽입을 수행하고 슬레이브 인스턴스를 사용하여 동기화합니다.

결론

MongoDB 마스터-슬레이브 복제는 확장성, 내결함성, 탄력성과 같은 일련의 중요한 기능을 제공하며 최신 웹 애플리케이션의 필수 부분입니다. MongoDB PHP 확장과 PHP의 MongoDB PHP 드라이버를 사용하면 MongoDB 마스터-슬레이브 복제를 쉽게 구현할 수 있으며 이 구현 방법은 매우 안정적이고 관리하기 쉽습니다. 전체적으로, 애플리케이션의 원활한 실행을 보장하고 가용성을 향상시키기 위해 PHP로 MongoDB 마스터-슬레이브 복제 애플리케이션을 작성하는 것이 매우 중요합니다.

위 내용은 PHP에서 MongoDB 데이터베이스의 마스터-슬레이브 복제를 구현하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.

핫 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를 무료로 생성하십시오.

뜨거운 도구

메모장++7.3.1

메모장++7.3.1

사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전

SublimeText3 중국어 버전

중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기

스튜디오 13.0.1 보내기

강력한 PHP 통합 개발 환경

드림위버 CS6

드림위버 CS6

시각적 웹 개발 도구

SublimeText3 Mac 버전

SublimeText3 Mac 버전

신 수준의 코드 편집 소프트웨어(SublimeText3)

CakePHP 프로젝트 구성 CakePHP 프로젝트 구성 Sep 10, 2024 pm 05:25 PM

이번 장에서는 CakePHP의 환경 변수, 일반 구성, 데이터베이스 구성, 이메일 구성에 대해 알아봅니다.

Ubuntu 및 Debian용 PHP 8.4 설치 및 업그레이드 가이드 Ubuntu 및 Debian용 PHP 8.4 설치 및 업그레이드 가이드 Dec 24, 2024 pm 04:42 PM

PHP 8.4는 상당한 양의 기능 중단 및 제거를 통해 몇 가지 새로운 기능, 보안 개선 및 성능 개선을 제공합니다. 이 가이드에서는 Ubuntu, Debian 또는 해당 파생 제품에서 PHP 8.4를 설치하거나 PHP 8.4로 업그레이드하는 방법을 설명합니다.

CakePHP 날짜 및 시간 CakePHP 날짜 및 시간 Sep 10, 2024 pm 05:27 PM

cakephp4에서 날짜와 시간을 다루기 위해 사용 가능한 FrozenTime 클래스를 활용하겠습니다.

CakePHP 파일 업로드 CakePHP 파일 업로드 Sep 10, 2024 pm 05:27 PM

파일 업로드 작업을 위해 양식 도우미를 사용할 것입니다. 다음은 파일 업로드의 예입니다.

CakePHP 라우팅 CakePHP 라우팅 Sep 10, 2024 pm 05:25 PM

이번 장에서는 라우팅과 관련된 다음과 같은 주제를 학습하겠습니다.

CakePHP 토론 CakePHP 토론 Sep 10, 2024 pm 05:28 PM

CakePHP는 PHP용 오픈 소스 프레임워크입니다. 이는 애플리케이션을 훨씬 쉽게 개발, 배포 및 유지 관리할 수 있도록 하기 위한 것입니다. CakePHP는 강력하고 이해하기 쉬운 MVC와 유사한 아키텍처를 기반으로 합니다. 모델, 뷰 및 컨트롤러 gu

CakePHP 유효성 검사기 만들기 CakePHP 유효성 검사기 만들기 Sep 10, 2024 pm 05:26 PM

컨트롤러에 다음 두 줄을 추가하면 유효성 검사기를 만들 수 있습니다.

PHP 개발을 위해 Visual Studio Code(VS Code)를 설정하는 방법 PHP 개발을 위해 Visual Studio Code(VS Code)를 설정하는 방법 Dec 20, 2024 am 11:31 AM

VS Code라고도 알려진 Visual Studio Code는 모든 주요 운영 체제에서 사용할 수 있는 무료 소스 코드 편집기 또는 통합 개발 환경(IDE)입니다. 다양한 프로그래밍 언어에 대한 대규모 확장 모음을 통해 VS Code는

See all articles