내 데이터 중 일부를 비교적 큰 파일 (파일 당 몇 GB)에 저장하고 싶습니다. 이벤트 소싱을 사용하고이 파일과 관련된 이벤트를 저장하고 싶습니다. FileCreated : 제목, 설명, 타임 스탬프, 작성자, 개인 키, 암호화 키 등. 잠시 후 일부 파일은 더 이상 필요하지 않으며 많은 공간을 차지합니다. 따라서 공간을 확보하기 위해서는 삭제해야합니다. 그렇게하는 것은 문제가되는데, 왜냐하면 나는 이벤트 저장 장치에 히스토리를 가지게 될 것이기 때문이다. 그러나 파일 시스템에있는 파일은 저장하지 않을 것이다. 무결성을 유지하고 둘 다 삭제하는 방법이 있습니까? 아니면이 문제에 대한 최선의 방법이 있습니까?이벤트 소싱 - 이벤트 관련 파일 삭제
답변
나는 대답을 얻지 못했기 때문에, 나는 스스로에게 대답하려고 노력했다.
기록에서 이벤트를 제거 할 수 있습니다. 새 이벤트 저장소를 만들고 제거하려는 동일한 집계 ID에 대한 이벤트를 필터링해야합니다. 끝나면 새 이벤트 저장소로 전환하고 이전 이벤트 저장소를 제거 할 수 있습니다. 아마 당신은 또한 투상을 재생할 필요가있을 것입니다. 따라서 전체 마이그레이션과 매우 유사합니다. 많은 시간이 필요합니다. 현재로서는 1 년에 한 번만 이렇게해야한다면 문제가되지 않습니다. 이벤트 저장소에이 데이터를 저장하는 또 다른 문제는 내가 거기에서 스트리밍하거나 서비스를 제공하기 위해 복제해야한다는 것입니다. 후자의 방법은 항상 좋은 해결책이 아닙니다. 복사하기에 너무 많은 시간이 걸리고 어쨌든 스트리밍해야하는 데이터를 저장해야하므로 그렇지 않으면 메모리가 매우 빨리 소모 될 수 있습니다. 따라서 이벤트 저장소는 스트리밍 첨부 파일을 지원해야합니다.
파일에서 상대적으로 큰 데이터를 유지하고 404와 같은 것을 표시하는 또 다른 해결책은 없거나 파일이 제거 되었기 때문입니다. 나는 이것을 자주 본다. 이 경우 저장소에 이벤트를 유지하는 것이 좋으며 예를 들어 원인을 선택할 수있는 ContentRemoved 이벤트를 추가 할 수 있습니다. 제거 된 파일을 숨기는 다른 옵션은 앱에 나열되지 않으므로 평소와 마찬가지입니다. 이 솔루션에는 단점도 있습니다. 이벤트 저장 영역과 파일을 모두 이동해야하기 때문에이 접근 방식은 마이그레이션이 더 복잡합니다. 실수로 파일을 제거한 경우 파일을 백업하지 않으면 나중에 실행 취소 할 수 없습니다. 며칠 동안 실제 파일 제거 작업을 연기하면 문제를 해결할 수 있으므로 마음이 바뀌면 실행 취소 할 수 있습니다. 휴지통과 파일을 만드는 또 다른 옵션은 휴지통을 비우는 것만으로 삭제됩니다.
저는 두 솔루션 모두 고려해야 할 가치가 있다고 생각합니다. 실제로는 실제 프로젝트에 따라 달라집니다.
- 1. 이벤트 소싱 - 이벤트 재생
- 2. 이벤트 소싱 및 이벤트/누계 버전
- 3. 이벤트 소싱 : 이벤트 더 자세히 나누기
- 4. 이벤트 소싱 : 하위 엔터티에 대한 이벤트 재생
- 5. 이벤트 소싱 재생 이벤트 및 초기 값
- 6. 이벤트 소싱 : 올바른 이벤트 무시 방법
- 7. 이벤트 소싱 - AR에서 entites로 이벤트 전달
- 8. 이벤트 소싱/CQRS 모델 읽기 -
- 9. Azure에서의 Akka (JVM) 이벤트 소싱?
- 10. RDBMS를 이벤트 소싱 스토리지로 사용
- 11. 이벤트 소싱 및 사전 객체
- 12. CQRS/이벤트 소싱 프로젝트 구조
- 13. 카프카에서 이벤트 소싱 스키마 시행
- 14. 배열 삭제 (텍스트 변경 이벤트 관련)
- 15. "이벤트 소싱"의 "소싱"은 무엇을 나타 냅니까?
- 16. 이벤트 소싱 : 다른 사용자를 트리거하고 상태를 재구성하는 이벤트
- 17. 이벤트 소싱 및 플랫/XML 파일 가져 오기
- 18. 이벤트 소싱 - 누락 된 이벤트를 복구하는 방법
- 19. 이벤트의 일관되지 않은 동작으로 이벤트 소싱
- 20. 이벤트 소싱 : 이벤트에 대한 여러 집계
- 21. 이벤트 소싱 SQL 채우기 부모와 자식 표
- 22. 이벤트 소싱 및 로깅/재생 명령
- 23. 바운드 컨텍스트 내부 및 외부 이벤트 소싱
- 24. CQRS 및 이벤트 소싱 쿼리 내역 데이터
- 25. 로드 이벤트 중 파일 나열 관련 문제
- 26. 자바에서 삭제 확인 이벤트 삭제
- 27. 이벤트 관련 인터페이스
- 28. jquery 이벤트 관련 문제
- 29. 이벤트 관련 마술은 무엇입니까?
- 30. PHP 관련 이벤트. 가능한가?