Лучше ли использовать очереди сообщений POSIX или сокеты домена Unix для локальной связи IPC?Что лучше для локальных IPC, очередей сообщений POSIX (mqueues) или Unix доменных (локальных) сокетов?
Я работал с 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.
Заранее спасибо.
Я скажу ... dbus! – karlphillip