Adobe Commerce Cloud의 주문에 대한 비순차적 증분 ID

Adobe Commerce Cloud Pro에서 주문, 송장, 배송 및 기타 엔티티 증분 ID는 100000001 → 100000004 → 100000007과 같은 단계에서 1씩 증가합니다. 이 동작은 Cloud Pro 환경에서 사용되는 Galera 다중 노드 데이터베이스 아키텍처로 인해 발생합니다. 이 문제를 해결하려면 증분 ID를 고유 식별자로만 취급하고 일련 번호를 사용하지 마십시오.

설명 description

환경

다중 노드 MySQL(Galera Cluster)이 있는 Adobe Commerce on Cloud Pro

문제/증상

판매자는 다음과 같은 증분 ID를 확인합니다.

  • 단계 증가(일반적으로 +3)
  • 엄격한 시퀀스를 따르지 않음
  • 값 건너뛰기

이러한 행동은 다음에 대한 우려를 불러 일으킵니다.

  • 고객용 주문 번호
  • 내부 보고
  • 감사 및 규정 준수 요구 사항

원인

Cloud Pro 환경은 고가용성 및 데이터 일관성을 지원하기 위해 3노드 Galera 클러스터를 사용합니다.
동시 쓰기 중에 기본 키 충돌을 방지하기 위해 MySQL은 다음 구성을 사용합니다.

  • auto_increment_increment = 3
  • auto_increment_offset = {1,2,3}(노드당)

각 노드는 자체 시퀀스에서 독립적으로 ID를 생성합니다. 예:

  • 노드 1 → 1, 4, 7, 10…
  • 노드 2 → 2, 5, 8, 11…
  • 노드 3 → 3, 6, 9, 12

따라서 증분 ID는 다음과 같습니다.

  • 전역 고유
  • 단일 스트림으로 볼 때 비순차적

예상 동작

  • 증분 ID는 시퀀스를 따르지 않습니다.
  • 간격 및 단계 증가는 정상입니다.
  • 이 동작은 자동 증가를 사용하는 모든 엔티티에 적용됩니다.

이 동작은 다음 이유로 인해 클러스터된 환경 외부에서도 발생합니다.

  • 실패한 트랜잭션
  • 롤백
  • 동시 작업

영향

  • 시스템 기능과 데이터 무결성은 영향을 받지 않습니다.
  • ID는 모든 Adobe Commerce Cloud 작업에 대해 고유하고 유효한 상태로 유지됩니다.
  • 순차적 번호 지정 기대치만 영향을 받습니다.

해결 방법 resolution

이 문제를 해결하려면 다음 단계를 수행합니다.

  1. 순차적 증분 ID에 의존하지 마십시오.

    • 증분 ID를 순서가 지정된 값이 아닌 고유 식별자로 처리합니다.

    • 주문 및 보고의 경우 다음을 사용합니다.

      • 타임스탬프 created_at
      • 엔티티 관계 또는 비즈니스 논리
  2. 보고 및 감사 도구를 업데이트합니다.

    • 도구에 엄격한 시퀀싱이 필요한 경우:

      • 비연속 ID를 처리하도록 논리를 업데이트합니다.
      • 숫자 연속성에 대한 종속성을 제거합니다.
  3. 사용자 지정 시퀀싱을 구현합니다(필요한 경우).

    • 비즈니스에 엄격한 순차적 번호가 필요한 경우:

      • 사용자 지정 시퀀스 생성기(예: 사용자 지정 모듈)를 만듭니다.
      • 값을 별도의 속성으로 저장합니다(증분 ID를 대체하지 않음).
      • 적절한 잠금을 사용하여 경합 조건을 방지하십시오.

우수 사례

증분 ID를 티켓 카운터가 아닌 번호판과 같이 처리:

  • 항목을 고유하게 식별합니다
  • 질서를 보장하지는 않습니다

결론

Cloud Pro의 비순차적 증분 ID는 플랫폼의 분산 데이터베이스 설계의 직접적인 결과입니다. 이는 확장성과 신뢰성을 보장하지만 인프라 수준에서 엄격한 시퀀싱이 지원되지 않음을 의미합니다. 일련 번호가 필요한 사용 사례의 경우 사용자 지정 또는 외부 솔루션이 필요합니다.

관련 읽기

recommendation-more-help
experience-cloud-kcs-help-kbarticles