>기술 주변기기 >IT산업 >Java and Mongodb 4.0 다이어 문서 산 트랜잭션 지원

Java and Mongodb 4.0 다이어 문서 산 트랜잭션 지원

Lisa Kudrow
Lisa Kudrow원래의
2025-02-16 12:36:13234검색

Mongodb 4.0의 독백의 산 거래 지원에 대한 자세한 설명

(이 기사는 MongoDB와 공동으로 만들어졌습니다. Sitepoint를 가능하게 한 파트너에 대한 지원에 감사드립니다.) Mongodb 4.0은 다조 문서 산 트랜잭션에 대한 지원을 추가합니다. 그러나 이것은 MongoDB가 이전에 거래를 지원하지 않았다는 것을 의미합니까? 그렇지 않은 MongoDB는 항상 단일 문서 트랜잭션을 지원했습니다. MongoDB 4.0은 이러한 트랜잭션이 여러 문서, 여러 문, 여러 컬렉션 및 여러 데이터베이스로 확장 될 수 있음을 보장합니다. 트랜잭션 데이터 무결성 보증 형태가 없으면 데이터베이스가 유용한 또 다른 것은 무엇입니까? Java and MongoDB 4.0 Support for Multi-document ACID Transactions 이 기사에 다이빙하기 전에 여기에서 모든 코드를 찾아 다중 문서화 된 산 거래를 시도 할 수 있습니다.

키 포인트

MongoDB 4.0은 트랜잭션 보증을 여러 문서, 명세서, 컬렉션 및 데이터베이스로 확장하여 데이터 무결성 및 일관성을 향상시키는 다중 문서 산 트랜잭션을 소개합니다.

MongoDB는 MongoDB 4.0 이전에 단일 문서 트랜잭션을 지원하여 단일 문서 내에서 원자 운영을 보장하며 대부분의 응용 프로그램에 적합합니다.

mongodb 4.0 다중 문서 산 거래는 기존의 관계형 데이터베이스 트랜잭션과 일치하여보다 복잡한 운영에서 원자력, 일관성, 격리 및 지속성을 제공합니다.

멀티 문서 산 트랜잭션을 사용하기위한 설정에는 MongoDB Replicaset 시작, 필요한 종속성이있는 Java 환경 설정 및 제공된 스크립트를 통해 트랜잭션 작업을 수행하는 것이 포함됩니다.

이 기사의 실제 데모는 인벤토리 가용성을 기반으로 트랜잭션이 커밋 또는 롤백되는 시나리오를 포함하여 다중 문서 트랜잭션의 구현을 보여줍니다.

Quick Start 1 단계 : Mongodb 시작 LocalHost의 포트 27017 포트에서 최소 4.0.0으로 단일 노드 MongoDB ReplicaSet을 시작하십시오.

Docker를 사용하는 경우 :
    당신은
  • 를 사용할 수 있습니다.
  • 완료되면
  • 를 사용할 수 있습니다.
  • Mongo Shell을 사용하여 Mongodb에 연결하려면 를 사용할 수 있습니다.
  • mongod를 수동으로 시작하는 것을 선호하는 경우 :

2 단계 : Java 시작 이 데모에는 두 가지 주요 프로그램이 포함되어 있습니다.

변경 스트림을 사용하면 MongoDB 컬렉션 또는 데이터베이스에서 데이터 변경에 대한 알림을받을 수 있습니다. 트랜잭션 프로세스는 데모 자체입니다.

를 실행하려면 두 개의 쉘이 필요합니다.

Docker를 사용하는 경우 : 첫 번째 쉘 :

두 번째 쉘 :

    Docker를 사용하지 않는 경우 Maven 3.5.x 및 JDK 10 (또는 JDK 8 최소 버전을 설치해야하지만 에서 Java 버전을 업데이트해야합니다) :
  • . 첫 번째 쉘 : start-mongo.sh
    <code class="language-bash">./compile-docker.sh
    ./change-streams-docker.sh</code>
    두 번째 쉘 :

    MongoDB 4.0의 기존 단일 문서 트랜잭션을 산성 양성 다조 문서 트랜잭션과 비교하고 Java를 사용 하여이 새로운 기능을 활용하는 방법을 배우겠습니다.
    <code class="language-bash">./transactions-docker.sh</code>
    MongoDB 4.0 이전의 버전 MongoDB 3.6 이하에서도 각각의 쓰기 작업은 단일 문서 레벨을 가진 스토리지 계층에서 스코핑 된 트랜잭션으로 표시됩니다. 문서 모델은 관련 데이터를 결합하고, 그렇지 않으면 표 형 스키마의 다른 상위 자식 테이블에 대한 모델링이므로 MongoDB의 원자 단일 문서 작업은 대부분의 응용 프로그램의 데이터 무결성 요구를 충족시키는 트랜잭션 의미를 제공합니다.

    여러 문서를 수정하는 각 일반적인 쓰기 작업은 실제로 여러 독립 트랜잭션에서 발생합니다 : 문서 당 하나의 트랜잭션.

    예를 들어 매우 간단한 재고 관리 응용 프로그램을 작성하겠습니다.

    우선, MongoDB 복제 세트가 필요하므로 위에서 설명한대로 MongoDB를 시작하십시오. 이제 다음 문서를 제품 컬렉션에 삽입하겠습니다. 프로모션이 진행 중이라고 가정하면 고객에게 모든 제품에 대해 20% 할인을 제공하고자합니다.

    그러나이 할인을 적용하기 전에 변경 스트림을 사용하여 MongoDB에서 이러한 작업이 얼마나 오래 발생하는지 모니터링하려고합니다.

    몽고 쉘에서 다음을 수행하십시오 :

위 내용은 Java and Mongodb 4.0 다이어 문서 산 트랜잭션 지원의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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