여러 소스/컴퓨터의 이벤트를 처리하는 웹 서버가 있습니다. 각 이벤트에 대해 타임 스탬프를 지정하고 DB에 저장합니다. 이렇게하면 원본 컴퓨터의 모든 시계에 정확한 시간이있는 것은 아니지만 상관 없습니다. 서버가 타임 스탬프를 담당하기 때문에 이벤트 순서가 보존됩니다.서버 간 동기화 시간
이제 이러한 이벤트를 처리 할 수있는 서버를 하나 더 추가하고 동일한 DB에 저장하려고합니다. 서버간에 시계를 동기화하는 가장 좋은 방법은 무엇입니까? 서버는 costumer 사이트에 배포되며, 시계가 동기화되어야한다는 것을 알려줄 수는 있지만.
서버 간 통신없이 문제를 해결할 방법이 있습니까? SQL 문에서 DB 시스템 시계를 사용할 방법이 있습니까? (나는 mysql, sqlserver 및 oracle을 지원해야하며, O/R 매핑은 최대 절전 모드이다.)
는 소리 , 또는 SQL 함수를 사용하여 데이터를 삽입 할 때 시간 소인을 삽입하십시오. 그러나 여러 데이터베이스 유형에 대해 Hibernate를 사용할 수 있는지 확신 할 수 없다면 – DNA
클럭을 동기화해도 두 위치에서 이벤트가 발생하면 명확하게 정의 된 이벤트 순서가 더 이상 존재하지 않으므로 이벤트 순서가 유지되지는 않습니다 . 이벤트를 주문해야한다면 뭔가 주문해야합니다. 어떻게 그리고 왜 * 이벤트가 주문되어야하는지에 달려 있습니다. - 실제 요구 사항은 무엇입니까? –
@DavidSchwartz 각 시스템마다 진행 상황을 알 수 있습니다 (예 : init, running, finish). 완료 후 실행을 시작하면 진행률 표시 줄이 "실행 중"으로 표시되지만 완료되었습니다. 문제는 때로는 일어날 수 있다는 것입니다 (일부 프로세스가 루프에서 실행중인 경우). 그래서 여기서는 어떤 논리도 할 수 없으며 서버 전체에서 이벤트의 순서가 정확한지 알아야합니다. – Jonathan