데이터 버스 용어 및 기능 이해
데이터 버스는 다양한 기능을 제공하며 이러한 기능을 이해하면 데이터 버스를 보다 효율적으로 사용하는 데 도움이 됩니다.
구독자
구독자는 메시지 그룹에서 데이터를 수신하기 위해 데이터 버스에 등록하는 끝점입니다. 메시지 그룹과 구독자 URL이 동일한 여러 구독자를 가질 수 없습니다.
구독자 URL
데이터 버스에서 데이터를 수신하는 URL입니다.
VMware Aria Operations for Networks
데이터 버스는 모든 메시지 그룹의 모든 메시지를 구독자 URL로 보냅니다. 구독자 URL을 사용하여 여러 메시지 그룹을 구독할 수도 있습니다.데이터 버스는 메시지 그룹을 구독하는 시점부터 데이터 스트리밍을 시작하고 구독을 취소할 때까지 계속됩니다. 일시적인 통신 끊김은 내장된 메커니즘을 통해 시스템에서 처리되고 문제가 해결되면 데이터 스트리밍이 재개됩니다. 사용자가 어떤 작업도 수행할 필요가 없습니다.
메시지 순서
데이터 버스를 통해 전송된 메시지는 일반적으로 이벤트나 개체가
VMware Aria Operations for Networks
에 저장될 당시의 타임 스탬프를 기준으로 정렬됩니다. 하지만 특정 시나리오에서는 이러한 순서 보장이 충족되지 않습니다. 메시지의 안정적인 순서를 위해 구독자는 데이터 버스 메시지의 타임 스탬프 필드를 활용하고 타임 스탬프를 기반으로 메시지 순서를 지정해야 합니다.근 실시간 스트리밍
데이터 버스에서는
VMware Aria Operations for Networks
에서 처리되는 데이터와 데이터를 스트리밍하는 데이터 버스 간에 지연이 있습니다. 지연 시간은 3초에서 최대 1분까지입니다. 이러한 지연은 메시지 그룹에 따라 다르며 파이프라인이 지워지는 경우에 따라 달라집니다.로드 밸런서를 통해 데이터 처리 확장
VMware Aria Operations for Networks
데이터 버스에서 데이터를 수신하는 동안 로드 밸런서를 사용하여 데이터 처리 서비스를 수평으로 확장할 수 있습니다. 로드 밸런서를 사용하려면 데이터 버스 등록 프로세스 중에 로드 밸런서 URL을 구독자 URL로 사용해야 합니다. 로드 밸런서는 수평으로 확장 가능한 데이터 처리 서비스에 데이터를 분산할 수 있습니다. 하트비트
VMware Aria Operations for Networks
데이터 버스와 구독자 끝점 간의 통신 채널 문제를 해결하는 데 도움이 되도록 VMware Aria Operations for Networks
는 모든 구독자에게 매시간 하트비트 메시지를 보냅니다. 둘 이상의 구독에 URL이 지정된 경우 구독자는 모든 구독에 대해 하트비트 메시지를 하나씩 수신합니다. 예:
{ "id": "c2214eea-68a6-4e5a-9e4b-ff5886a42cd3", "type": "HEARTBEAT", "specversion": "1.0", "source": "CL58EgdESzVDSEE1", "message_group": "vms", "status": "HEARTBEAT", "timestamp": 1681897371522 }
메시지 일괄 처리
VMware Aria Operations for Networks
데이터 버스는 여러 메시지가 일괄적으로 그룹화되어 구독자에게 전송되는 일괄 처리를 본질적으로 지원합니다. 기본적으로 일괄 처리의 최대 크기는 2MB입니다. 단일 메시지의 크기가 2MB를 초과하면 메시지가 트리밍됩니다. 일괄 처리를 생성하면 1분 미만의 추가 지연이 발생합니다.
트리밍된 메시지의 예:
[ { "id": "elfcdccb-c06a-419b-90bd-7618e8453f87", "type": "Application", "specversion": "1.0", "source": "CNaBARIHRElXRlgxRg==", "message_group": "applications", "status": "UPDATE_TRIMMED", "data": { "entity_id": "16598:561:716945762559381432", "entity_type": "Application", "name": "My-3Tier-App" } ]
전달 보장
구독자가 503 오류 코드가 아닌 HTTP 코드로 응답하는 경우 메시지 전달이 성공한 것으로 간주됩니다.
구독자가 메시지를 받지 못했지만
VMware Aria Operations for Networks
가 503 오류 코드를 받지 못한 경우 VMware Aria Operations for Networks
는 메시지가 전달된 것으로 간주하고 다시 메시지를 보내려고 하지 않으며 메시지가 손실될 수 있습니다. 지속적인 재시도로 인해 시스템에 부담을 주지 않도록 이 메커니즘을 도입했습니다. 예를 들어 운영 환경이 다운된 경우 지속적인 재시도로 인해 노이즈가 많아질 수 있습니다. 이 경우 503 이외의 HTTP 응답을 보내는 것은 재시도를 원하지 않음을 나타내는 방법입니다.VMware Aria Operations for Networks
에서 메시지는 다양한 서비스에 의해 제공된 다음, 디스크 기반 대기열에 추가됩니다. 디스크 기반 대기열의 만료 시간은 2시간입니다.2시간 내에 구독자에게 전달되지 않은 메시지는 FIFO 방식으로 대기열에서 삭제되고 구독자에게 전달되지 않습니다. 또한
VMware Aria Operations for Networks
의 메시지 볼륨이 시스템에서 안정적으로 전달할 수 있는 볼륨을 초과하면 메시지가 삭제될 수 있습니다. 데이터 버스 구독자에 연결할 수 없는 경우 시스템은 메시지가 성공적으로 전달될 때까지 메시지를 보내려고 시도합니다. 버전 6.9에는 백오프 메커니즘이 추가되어 시스템이 기하급수적으로 메시지 전달을 재시도합니다.필터링
구독자를 등록하면 구독자는 해당 메시지 그룹의 모든 메시지를 받게 됩니다.
VMware Aria Operations for Networks
데이터 버스는 메시지 필터링을 지원하지 않습니다. 메시지 그룹의 모든 메시지를 원하지 않는 경우 추가로 처리하기 전에 필터링 조건을 기반으로 메시지를 삭제할 수 있습니다. VMware Aria Operations for Networks
UI에서 경고를 비활성화할 수도 있습니다.메시지와 다른 개체의 상관 관계
특정 시나리오에서 데이터 버스가 수신한 메시지에는 해당 엔티티의 전체 세부 정보 없이 몇 가지 다른 관련 엔티티에 대한 컨텍스트 정보가 포함됩니다. 하지만 메시지에는
entity_id
와 같은 특정 식별자가 포함되어 있습니다. 관련 엔티티에 대한 세부 정보를 가져오려면 API를 사용하여 해당 엔티티를 구독해야 합니다. 예를 들어 호스트 메시지 그룹을 구독하면 문제 메시지 그룹에서 수신된 이벤트의 호스트를 상호 연관시키는 데 도움이 될 수 있습니다.