5

나는 다른 컴퓨터들 사이의 시계 왜곡을 인식하고 /하거나 그러한 것에 대비하여 감시해야 할 시간에 민감한 작업을하고있다. 클럭 왜곡을 감지하거나 어떻게 방지 할 수 있습니까?Azure 역할에서 노드 간의 클럭 왜곡을 어떻게 감지합니까?

내 경우 Azure Blob에 압축 된 날짜 시간 스탬프를 쓰고 있습니다. 다른 노드가 I 클럭 스큐를 감지하기 위해 노력하고있어


더 많은 정보를

를 (가 윤년 일 동안 발생할 수있는, 또는 두 번째 도약) 다르게 그 날짜 스탬프를 intererpret한다면 그것은 재앙이 될 것입니다 로컬 노드의 현재 시간

각 노드는 시간에 민감한 정보를 BLOB/테이블에 기록합니다. 타임 스탬프가 X보다 오래된 경우 특정 동작이 발생합니다. 시간이 동기화되지 않으면 데이터가 손실되거나 손상 될 수 있습니다.

은 아마도 내가 각 노드가 일정한 간격에 BLOB 저장소 (32 바이트)에 현재 날짜를 쓰도록하고 정기적으로 그를 조회 할 수 있습니다 가능한 솔루션입니다.

답변

2

NTP 시간 서버에서 로컬 노드 시간과 시간 사이의 기울기를 알려주는 .NET NTP 클라이언트 API가 몇 가지 있습니다. 예를 들어 :

당신은 현지 시간 모두를 저장하고 BLOB에 왜곡하는 NTP 클라이언트를 사용할 수 있습니다 ("Determining the time difference between the local time and a time server" 참조). 다른 노드에서 BLOB를 읽을 때 노드의 로컬 시간과 비뚤어 짐을 계산하여 BLOB의 저장된 시간과 비뚤어 짐과 비교할 수 있습니다.

관련 문제