Что лучше использовать очереди сообщений POSIX или сокеты домена Unix для локальной связи IPC?
Я работал с Сокеты Unix между машинами (не доменом), и я помню, что создание и разрыв соединения заставляло сокеты задерживаться на некоторое время, прежде чем они, наконец, исчезли. Более того, если вам нужен «надежный» обмен, вам нужно либо использовать TCP, либо разработать приложение, возвращающее ACK. Я не уверен, применимо ли это также к сокетам домена Unix.
В моем текущем проекте нам нужен локальный IPC. Моей первой реакцией было использование POSIX MQueues, поскольку я я использовал их раньше для локального обмена сообщениями. Однако один из сотрудников предлагает вместо этого доменные сокеты Unix.
Один из них лучше другого, или это вопрос знакомства с программированием? Или, возможно, это зависит от создаваемого приложения?
В целом приложение, над которым мы работаем, следует модели клиент / сервер. Клиенты отправляют сообщения на сервер, чтобы «что-то сделать». Однако клиент не ждет ответа «все готово» - хотя он действительно хочет знать, был ли получен их запрос.
Основная логика для стороны отправки:
connect to server
send request
note if the send worked or not
disconnect from server
Может быть сотни клиентов на один сервер.
Мы работаем в системе SMP (4-8 ядер) под управлением ОС Linux.
Заранее спасибо.