Есть ли способ сжать данные при использовании mongo persistence с NEventStore?

Я работаю с C#, Dotnet core и NeventStore (версия — 9.0.1), пытаясь оценить различные варианты персистентности, которые он поддерживает из коробки.

Более конкретно, при попытке использовать персистентность mongo полезная нагрузка сохраняется без какого-либо сжатия.

Примечание: сжатие полезной нагрузки происходит отлично при использовании SQL персистенции NEventStore, но не при использовании персистенции 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()); 
         }
} 
Вход в полноэкранный режим Выход из полноэкранного режима

Обходной путь: Реализация методов PreCommit(CommitAttempt attempt) и Select в IPipelineHook и с помощью логики сжатия gzip было достигнуто сжатие событий в MongoDB.

Прикрепляю образ хранилища данных как SQL, так и mongo persistence:

Итак, вопросы:

  1. Есть ли какая-то другая опция или настройка, которую я упускаю, чтобы события сжимались при сохранении (простой способ вызова метода compress)?
  2. Является ли вышеупомянутое обходное решение разумным или же это накладные расходы на производительность?

Оцените статью
devanswers.ru
Добавить комментарий