#sockets #unix
#сокеты #unix
Вопрос:
У меня есть программа, которой необходимо отправить данные другому процессу. Это будет настройка нескольких пользователей для одного пользователя. Мне не нужно поддерживать writer и consumer на разных машинах, поэтому достаточно некоторого IPC.
Предполагается, что инструмент записывает информацию, которую я могу использовать при отладке. Это означает, что в случае сбоя записи (например, ошибка segfault, ошибка утверждения, …) Мне нужно иметь всю информацию, которая была записана до сбоя.
- Изначально я планировал использовать ZeroMQ, но ZeroMQ кэшируется в writer перед отправкой, поэтому я иногда терял данные при сбоях.
- Итак, я попытался работать с разделяемой памятью. Здесь нет потерь данных (работает отлично), но это очень медленно. Это определенно связано с моей реализацией. Я думаю, что более опытный программист был бы способен сделать это невероятно быстро.
- Я думаю, что доменные сокеты unix было бы разумно использовать. Они должны быть совместимы с моими навыками программиста и обеспечивать достаточно хорошую производительность. Гарантируют ли они отсутствие потери данных при сбоях устройства записи?