이벤트

이벤트 서비스 모범 사례

카우치베이스 이벤트 서비스 에 소개되었습니다. 카우치베이스 데이터 플랫폼 5.5 릴리스.  카우치베이스 데이터 플랫폼 6.0 릴리스에는 다음과 같은 기능이 도입되었습니다. 타이머유사하게 인덱싱 모범 사례 이전에 게시했던 Couchbase 이벤트 서비스 사용과 관련된 몇 가지 모범 사례를 살펴보겠습니다:

  1. 디버깅 및 진단 가능성 

(a) 프로덕션 환경에서는 디버거를 사용하지 마세요. 디버거 세션이 켜져 있으면 스레드가 디버거 세션에 할당됩니다. 프로덕션 환경에서 디버거가 활성화(즉, 켜짐)되어 있으면 특정 문서에 대한 이벤트가 중단될 수 있습니다. (다른 환경에서 디버거를 활성화/비활성화하는 기능은 6.0 릴리스에서 사용할 수 있습니다.)

(b) 애플리케이션 로그 파일은 기본적으로 로테이션됩니다. 로그 로테이션 정책에 따라 로그 파일 크기를 업데이트하세요.

2. 계단식 쓰기로 이어지는 함수(예: 버킷 A를 수신하는 함수 A가 버킷 B에 쓰기 및 버킷 B를 수신하는 함수 B가 버킷 A에 쓰기)를 배포하지 마세요.

3. 모든 런타임 예외를 포착하기 위해 항상 시도-캐치 블록을 사용하여 함수의 자바스크립트 코드를 둘러싸고 예외를 로깅하면 애플리케이션별 로그 파일에 메시지가 캡처됩니다.

4. 메타데이터 버킷에서: 

(a) 함수가 배포될 때 메타데이터 버킷을 플러시하지 마세요. 메타데이터 버킷은 카우치베이스 이벤트 서비스에서 사용하는 많은 시스템 관련 정보를 저장하는 데 사용됩니다. 메타데이터 버킷을 플러시하면 체크포인트 정보가 손실될 수 있으며, 이는 다음과 같은 결과로 이어질 수 있습니다. 이벤트 서비스 처리 중인 돌연변이 순서를 추적하지 못합니다. 

(b) 메타데이터 버킷은 메모리 사용량이 할당량을 초과할 경우 항목을 배출할 수 있으므로 임시 버킷을 사용하지 마세요. 메타데이터 버킷에서 항목이 배출되면 타이머 이벤트가 손실되거나 중복 이벤트가 발생하는 등 예측할 수 없는 동작이 발생할 수 있습니다.  

(c) 하나 이상의 데이터 서비스 노드에 장애가 발생하는 경우 타이머가 손실되고 중복 이벤트가 발생하지 않도록 메타데이터 버킷에 충분한 복제본을 보유하는 것이 좋습니다. 

(d) 메타데이터 버킷을 다른 애플리케이션에 사용하지 마세요. 카우치베이스 이벤트 서비스는 메타데이터 버킷에 저장되는 모든 시스템 정보 앞에 고유 키를 접두사로 붙입니다. 이 키의 네임스페이스는 동일한 버킷에 삽입할 수 있는 다른 애플리케이션과 구별하는 데 도움이 되지만, 고객은 다른 애플리케이션에서 이 버킷에 새 문서를 삽입하거나 Couchbase Eventing Service에서 삽입한 기존 문서를 업서트/삭제하지 말 것을 권장합니다.

5. 특정 기능에 대한 관리 콘솔에 표시되는 통계는 인프라 프로비저닝 및 모니터링에 사용해야 합니다. 함수 백로그는 안정적이어야 하며, 계속 증가하는 경우 이벤트 노드를 더 많이 배포하거나 해당 함수에 대한 이벤트 워커/노드를 더 많이 할당해야 합니다.

eventing statistics

6. 특정 함수의 타임아웃이 많은 경우, 근본 원인을 파악하고 타임아웃 값을 늘려보세요(특정 함수의 설정에서). 타임아웃을 늘릴 수 없는 경우 이벤트 노드에 더 많은 리소스(코어)를 할당하거나 이벤트 노드를 추가하여 처리량을 늘리세요.

7. 타이머를 사용하는 데이터 보관용 함수를 만들 때는 백로그를 살펴보고 실제 만료 전에 충분한 델타 시간을 할당하세요. 이는 타이머 내에서 문서가 액세스되는 경우 버킷에 문서가 존재하는지 확인하기 위한 것입니다. 그렇지 않으면 타이머에서 문서를 컨텍스트로 전달합니다(이는 '패스 바이 값'과 유사합니다).

8. 이벤트 서비스에서 지원하는 피드 경계를 이해합니다. 버킷의 오래된 돌연변이를 처리할 필요가 없는 경우 '지금부터'를 사용하여 시간과 처리 능력을 절약하세요.

9. 카우치베이스 이벤트 서비스를 실행하는 노드는 동일한 노드에서 다른 카우치베이스 서비스를 실행하지 않는 것이 이상적이며, 카우치베이스 이벤트 서비스는 컴퓨팅 중심 서비스이므로 이를 실행하는 노드는 RAM이 많은 것보다 코어가 많은 것이 좋습니다.

10. 카우치베이스 서버는 문서에 대한 여러 업데이트를 중복 제거합니다. 다음에서 중복 제거 및 변경 순서 지정이 어떻게 작동하는지 이해합니다. 여기.

카우치베이스 이벤트 서비스에서 30분 이내에 10억 개의 문서를 처리하는 방법에 대한 데모를 보려면 다음을 확인하세요. 커넥트 실리콘밸리'18 프레젠테이션/토크. 또한 커넥트 뉴욕'18 (올해 초).

이 문서 공유하기
받은 편지함에서 카우치베이스 블로그 업데이트 받기
이 필드는 필수 입력 사항입니다.

작성자

게시자 벤캇 수브라마니안, 제품 관리자

벤캇은 제품 개발 및 제품 관리 업무를 담당하며 데이터/분석 플랫폼 및 제품을 개발해 왔습니다. 그의 경력의 상당 부분은 오라클에서 쌓은 것으로, 오라클 엔터프라이즈 관리자 팀의 엔지니어에서 오라클의 BI/분석 제품군의 제품 관리자로 전환했습니다. 과거에는 스타트업에서 머신러닝/NLP 제품 및 분산형 의사결정 시스템 개발을 도왔습니다. 그는 @venkasub에서 활동하고 있습니다.

댓글 남기기

카우치베이스 카펠라를 시작할 준비가 되셨나요?

구축 시작

개발자 포털에서 NoSQL을 살펴보고, 리소스를 찾아보고, 튜토리얼을 시작하세요.

카펠라 무료 사용

클릭 몇 번으로 Couchbase를 직접 체험해 보세요. Capella DBaaS는 가장 쉽고 빠르게 시작할 수 있는 방법입니다.

연락하기

카우치베이스 제품에 대해 자세히 알고 싶으신가요? 저희가 도와드리겠습니다.