2013-10-12 2 views
-1

이전까지는 데이터를 유지할 필요가 없었던 자바로 작성된 시스템이 있습니다. 우리는 이제 지속적인 데이터를 필요로하는 새로운 요구 사항을 갖지만 드물게는 소량 만 발생합니다.데이터의 양을 안정적으로 유지하는 가장 좋은 방법은 무엇입니까?

필자는 데이터를 잃지 않게하기 위해 효과적인 방법으로 99.9 %면 100 %를 사용하지 않아도이 데이터를 유지할 수있는 이상적인 방법을 찾아 내려하고 있습니다.

명백한 아이디어는 DB이지만 너무 적은 데이터의 경우 DB에 숙련도를 추가하면 과다하게 보일 수 있습니다. 다음 아이디어는 파일에 쓰는 것입니다. 그러나 파일에 쓸 수있는 권한이 없거나 파일이 손상되거나 데이터베이스/staleness 문제를 처리하는 방법은 무엇입니까? 파일의 지속성에 대한 간단하고 명백한 승인은 충분합니까? 아니면 현실 세계에서 문제를 일으킬 가능성이 있습니까?

간단히 말해서 시스템이 예기치 않게 다운 되더라도 작동 할 것이라는 확신 정도가 높거나 높지는 않지만 데이터를 안정적으로 유지하는 데 효과적이지만 너무 엄격하지 않은 방법은 무엇입니까? 사소한 일없이 파일 지속성을 구현합니까? 거기에 도움이 될 유용한 수업이 있습니까?

+0

귀하의 질문은 매우 의견을 기반으로하고 귀하의 질문에 추측의 여지를 떠난다 : 데이터 얼마나 중요합니까? 사용 권한이 충분하지 않을 위험이 있습니까? 데이터 손상 문제를 어떻게 처리 하시겠습니까? (우리는 당신을 결정할 수 없습니다. 우리 프로젝트가 아닙니다.) –

+0

사이드 노트에서 "이 수업을 돕는 수업"을 요청할 때 나는 잭슨 도서관을 적극 추천 할 수 있습니다. 그러면 JSON 문자열에 POJO를 넣을 수 있습니다. 그런 다음 해당 문자열을 저장할 위치를 결정하는 것은 사용자에게 달려 있습니다. 물론 수동 데이터 조작을 두려워하는 경우 AES-128을 사용하여 JSON 데이터를 암호화하는 것을 고려할 수 있습니다. –

답변

1

Object를 저장/유지하려면 ObjectOutputStream 클래스를 살펴보십시오. 그것은 개체에서 데이터를 직렬화/유지하는 빠르고 좋은 방법입니다.

주의 : Object를 "save"하고 싶은 모든 Object는, ObjectOutputStream로 사용하는 인터페이스 "Serializeable"를 구현할 필요가 있습니다. 여기

좋은 혀입니다 : http://www.tutorialspoint.com/java/java_serialization.htm 그리고 여기에 오라클에서 문서입니다 : http://docs.oracle.com/javase/1.4.2/docs/api/java/io/ObjectOutputStream.html

0

간단한 키 - 값 정보 인 경우 속성 파일로 충분할 수 있습니다.

Properties prop = new Properties(); 
prop.setProperty("key", "value"); 
//to save it: 
prop.store(new FileOutputStream("filename.properties"), null); 
//to load it: 
prop.load(new FileInputStream("filename.properties")); 

확실히 쉽습니다.

1

보존 할 데이터가 부울 플래그 인 경우 부울 플래그 역할을하는 알려진 이름의 파일을 만들거나 삭제할 수 있습니다.

보존 할 데이터의 양이 충분히 적은 경우 파일 이름의 일부로 데이터가 포함 된 길이가 0 인 파일 (또는 디렉토리)을 만들어서 유지할 수 있습니다. 파일을 생성하는 것은 응용 프로그램의 관점에서 볼 때 원자 적 연산입니다. 이 방법의 단점은 알려진 이름의 파일에 액세스하는 대신 지속성 파일을 찾기 위해 디렉토리를 읽어야 할 수도 있다는 것입니다.

심볼릭 링크가있는 시스템에서 Java 7을 사용하는 경우 심볼 링크를 심볼릭 링크의 대상으로 유지할 데이터와 함께 심볼 링크를 만들 수 있습니다. 심볼릭 링크를 생성하는 것은 원자 적 연산이기도하며 존재하지 않는 파일을 가리키는 심볼릭 링크를 만드는 것은 오류가 아닙니다.

  1. 열기 쓰기를위한 새로운 파일을 다음과 같이

    당신이 파일의 내용과 기존의 방법으로 지속성 데이터를 저장하려는 경우, 일반적인 방법으로 파일을 쓸 수있다. 응용 프로그램에서 무시할 임시 이름을 사용하지만 올바른 디렉토리에 파일을 작성하십시오.

  2. 파일에 데이터를 쓰고 닫습니다. 이 시점에서 오류를 포착하고 쓰기 조작 또는 닫기가 실패하면 진행하지 마십시오.
  3. 파일 이름을 바꿔 이름을 변경하십시오.

이 프로세스는 내용이 완전하고 정확하면 지속성 파일이 올바른 이름으로 저장된다는 확신을 제공합니다. 이전 지속성 파일을 새 파일로 바꾸려면 3 단계까지 제자리에 두십시오. 이름 바꾸기 작업은 자동으로 이전 파일을 새 파일로 바꿉니다.

관련 문제