목록에 포함되어 있지 않은 사용자에게 작업을 거부해야하는 여러 프런트 엔드 노드가 포함 된 분산 응용 프로그램을 작성하고 있습니다.Zookeeper를 사용하여 사용자 권한을 저장하는 것이 합리적입니까
지금 우리는 그 중 4 개 이상이 노드가 있지만 DB2를 실행하는 데이터베이스 서버가 하나만 있습니다.이 데이터베이스는 유지 관리를 위해 자주 다운됩니다.
지금 우리는 메모리 목록을 업데이트하기 위해 데이터베이스를 폴링하여 사용자가 목록에서 제거 된 경우 변경 사항이 모든 4 개의 노드에 반영되도록합니다. 그러나 데이터베이스가 다운 된 상태에서 노드 중 하나가 재부팅되면 빈 목록으로 끝나고 우리는 원하지 않는 모든 사용자 요청을 거부합니다. 데이터베이스가 다운 된 경우에도 메시지 대기열에 버퍼링 할 때 사용자의 요청을 수락 할 수 있지만 거부해야하는 경우 즉시 거부합니다.
각 4 노드에서 사육사 인스턴스를 실행하고 사육사에 사용자 권한을 저장하는 것이 합리적입니까? 따라서 독서는 빠르며 데이터는 매우 유용하고 공평해야합니다. 우리는 폴링을 더 이상 할 필요가 없으며 데이터베이스를 다시 시작하더라도 노드는 사육사로부터 구성을 가져올 수 있습니다!