PHP에서 MongoDB 데이터베이스의 마스터-슬레이브 복제를 구현하는 방법
현대 웹 애플리케이션에서 데이터 처리 및 관리는 중요한 작업입니다. 웹 애플리케이션이 점점 더 복잡해지고 막대한 양의 데이터를 처리해야 함에 따라 이 데이터를 저장하고 처리하기 위해 점점 더 많은 데이터베이스가 필요합니다.
MongoDB는 웹 애플리케이션에서 널리 사용되는 NoSQL 데이터베이스입니다. MySQL과 같은 관계형 데이터베이스와 달리 MongoDB는 테이블이 아닌 문서를 사용하여 데이터를 저장하므로 MongoDB는 대량의 데이터를 처리하는 데 이상적입니다. 또한 MongoDB는 여러 인스턴스 간의 마스터-슬레이브 복제 애플리케이션에 필요한 여러 애플리케이션에 대한 고가용성과 확장성을 제공합니다.
이 글에서는 PHP를 사용하여 MongoDB 마스터-슬레이브 복제 애플리케이션을 작성하는 방법을 소개합니다.
MongoDB 마스터-슬레이브 복제 개요
MongoDB 마스터-슬레이브 복제는 여러 MongoDB 인스턴스 간에 복사본을 생성하여 오류나 성능 문제가 발생하는 경우에도 애플리케이션이 정상적으로 실행될 수 있도록 하는 것입니다. 마스터 인스턴스는 모든 쓰기 요청을 받은 다음 이를 읽기 요청만 받는 각 슬레이브 인스턴스에 복제합니다.
마스터-슬레이브 복제의 장점
- 고가용성: 마스터 인스턴스가 실패하면 애플리케이션이 슬레이브 인스턴스로 자동 전환할 수 있습니다.
- 데이터 중복성: 하나의 인스턴스가 실패하면 다른 인스턴스가 계속 서비스를 제공할 수 있습니다.
- 확장성: 애플리케이션의 정상적인 작동에 영향을 주지 않고 더 많은 슬레이브 인스턴스를 추가할 수 있습니다.
MongoDB 마스터-슬레이브 복제 원칙
MongoDB 마스터-슬레이브 복제에서는 마스터 인스턴스가 생성되고 모든 쓰기 요청이 이 인스턴스로 전송됩니다. 쓰기 작업이 성공하면 먼저 마스터 인스턴스의 작업 로그에 쓰기 작업 기록이 저장된 후, 해당 작업이 다른 인스턴스에 복사될 수 있도록 각 슬레이브 인스턴스에 작업이 전송됩니다. 또한 슬레이브 인스턴스는 마스터 인스턴스의 데이터를 주기적으로 동기화할 수도 있습니다.
각 MongoDB 슬레이브 인스턴스에서 복제된 데이터는 읽기 요청에 사용될 수 있으며, 복제본은 마스터 인스턴스에 직접 쿼리하지 않고도 이러한 요청을 처리할 수 있습니다. 또한 마스터 인스턴스를 선택하기 위해 슬레이브 인스턴스에서 선택 메커니즘을 활성화할 수 있습니다.
MongoDB 마스터-슬레이브 복제 구성
MongoDB 마스터-슬레이브 복제를 사용하려면 마스터 인스턴스와 슬레이브 인스턴스를 생성하고 이들 간의 연결을 설정하는 등 몇 가지 준비 작업이 필요합니다. MongoDB 마스터-슬레이브 복제의 기본 구성은 다음과 같습니다.
- 마스터 인스턴스 생성
MongoDB 인스턴스를 생성하려면 mongod 명령을 사용하면 됩니다. 마스터 인스턴스를 생성할 때 다음 명령을 사용할 수 있습니다.
mongod --replSet rs0
이 명령은 마스터 인스턴스와 두 개의 슬레이브 인스턴스를 포함하는 "rs0"이라는 복제본 세트를 생성합니다.
- 슬레이브 인스턴스 생성
슬레이브 인스턴스를 생성하려면 일반적으로 mongod 인스턴스를 시작해야 합니다.
mongod --port 27027
이 명령을 사용하여 28027이라는 MongoDB 인스턴스를 생성하고 슬레이브로 표시합니다. 사례.
- 마스터 인스턴스 구성
마스터 인스턴스를 구성하려면 mongo 명령줄 도구를 사용하여 명령줄에 다음 명령을 입력하세요.
rs.initiate()
이렇게 하면 복제본 세트가 초기화됩니다. 마스터 인스턴스가 됩니다.
- 슬레이브 인스턴스 구성
슬레이브 인스턴스 구성 시 마스터 인스턴스에 연결하려면 MongoDB 인스턴스의 IP 주소와 포트를 지정해야 합니다. 다음은 슬레이브 인스턴스를 구성하는 구문 예시입니다.
rs.add("192.168.1.2:28027")
이렇게 하면 28027이라는 MongoDB 인스턴스가 복제본 세트의 일부로 마스터 인스턴스에 추가됩니다.
MongoDB 마스터-슬레이브 복제 구현
PHP에서 MongoDB 마스터-슬레이브 복제를 구현하려면 MongoDB PHP 드라이버와 MongoDB PHP 확장을 사용해야 합니다. 다음은 MongoDB 마스터-슬레이브 복제를 구현하는 단계입니다.
- MongoDB 데이터베이스에 연결
PHP에서 MongoDB 데이터베이스에 연결하려면 MongoDB PHP 확장을 사용해야 합니다. 다음은 MongoDB 데이터베이스에 연결하기 위한 샘플 코드입니다.
$manager = new MongoDBDriverManager("mongodb://localhost:27017");
?>
이 코드 조각을 사용하여 MongoDB를 초기화합니다. PHP 드라이버 그리고 서버 애플리케이션의 호스트와 포트로 "mongodb://localhost:27017"을 사용합니다.
- 마스터-슬레이브 상태 가져오기
MongoDB 마스터-슬레이브 복제 상태를 가져오려면 MongoDB PHP 확장에서 제공하는 방법을 사용해야 합니다. 다음은 마스터-슬레이브 상태를 가져오는 샘플 코드입니다.
$command = new MongoDBDriverCommand(['replSetGetStatus' => 1]);
$cursor = $manager->executeCommand(' admin', $ command);
$status = $cursor->toArray()[0];
var_dump($status);
?>
이 코드 조각을 사용하여 현재 마스터-슬레이브 상태를 확인하세요. 몽고DB 데이터베이스. 레플리카 세트의 모든 슬레이브 인스턴스가 업데이트되면 모든 슬레이브 인스턴스는 동일한 레플리카 상태를 가져야 하며 마스터 인스턴스의 상태는 모든 슬레이브 인스턴스보다 먼저 업데이트되어야 합니다.
- 읽기 기본 설정 지정
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를 사용하여 설정됩니다.
- 마스터-슬레이브 복제 작업
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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

핫 AI 도구

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

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

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

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

인기 기사

뜨거운 도구

메모장++7.3.1
사용하기 쉬운 무료 코드 편집기

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

스튜디오 13.0.1 보내기
강력한 PHP 통합 개발 환경

드림위버 CS6
시각적 웹 개발 도구

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

뜨거운 주제











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

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

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

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