NEventStore에서 mongo 지속성을 사용하는 동안 데이터를 압축할 수 있는 방법이 있습니까?
더 구체적으로 말하자면, mongo 지속성을 사용하려고 할 때 압축이 적용되지 않은 상태에서 페이로드가 저장됩니다.
참고: NEventStore의 SQL 지속성을 사용할 때는 페이로드 압축이 완벽하게 발생하지만 mongo 지속성은 그렇지 않습니다.
아래 코드를 사용하여 이벤트 저장소를 만들고 초기화합니다.
private IStoreEvents CreateEventStore(string connectionString)
{
var store = Wireup.Init()
.UsingMongoPersistence(connectionString,
new NEventStore.Serialization
.DocumentObjectSerializer())
.InitializeStorageEngine()
.UsingBsonSerialization()
.Compress()
.HookIntoPipelineUsing()
.Build();
return store;
}
그리고 이벤트를 저장하기 위해 아래 코드를 사용하고 있습니다.
public async Task AddMessageTostore(Command command)
{
using (var stream = _eventStore.CreateStream(command.Id))
{
stream.Add(new EventMessage { Body = command });
stream.CommitChanges(Guid.NewGuid());
}
}
해결 방법은 다음과 같습니다. IPipelineHook에서 PreCommit(CommitAttempt 시도) 및 Select 메서드를 구현하고 gzip 압축 논리를 사용하여 MongoDB에서 이벤트 압축을 달성했습니다.
SQL 및 mongo 지속성의 데이터 저장소 이미지 첨부:
따라서 질문은 다음과 같습니다.
Reference
이 문제에 관하여(NEventStore에서 mongo 지속성을 사용하는 동안 데이터를 압축할 수 있는 방법이 있습니까?), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/manu_vr/is-there-any-way-to-compress-the-data-while-using-mongo-persistence-with-neventstore-41ol텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)