Лучше ли использовать очереди сообщений 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.
Спасибо заранее.