Является ли D-Bus промежуточным программным обеспечением IPC? - PullRequest
0 голосов
/ 06 января 2019

https://stackoverflow.com/a/33888439/156458 говорит

D-Bus раньше не был IPC для Linux (т.е. ядра), но был дополнительным промежуточное программное обеспечение IPC. Но в процессе введения systemd, D-Bus стал для нескольких дистрибутивов Linux частью основного система.

Википедия говорит, что D-BUS - это «демон IPC».

D-Bus считается как

Я слышал, что Zeromq, RabbitMQ, Kafka также являются промежуточным программным обеспечением для целей IPC. Предоставляются ли Zeromq, RabbitMQ, Kafka на том же уровне, что и D-Bus (выше уровня методов Linux IPC)? Некоторые сравнивали ZeroMQ с D-Bus, поэтому мне было интересно, являются ли они альтернативой друг другу?

1 Ответ

0 голосов
/ 06 января 2019

Во-первых, это немного придирчиво, но, вероятно, достаточно уместно, чтобы упомянуть: «D-Bus» - это протокол, который обычно используется с демоном шины сообщений (обычно dbus-daemon, но были написаны другие реализации). Можно использовать протокол без демона (для одноранговой передачи сообщений между процессами на одном компьютере) или по сети, или что угодно. Протокол просто определяет систему типов, структуру сообщения и семантику вызова.

В оставшейся части этого ответа я предполагаю, что под «D-Bus» вы подразумеваете (как обычно это делают большинство людей) комбинацию протокола и dbus-daemon.

Считается ли D-Bus промежуточным программным обеспечением, ориентированным на сообщения?

В некотором роде. Википедия говорит, что MOM позволяет хранить, маршрутизировать или преобразовывать сообщения, а также асинхронность. D-Bus реализует очередь сообщений (но не в том случае, если одноранговый узел не подключен к шине; в этом случае отправителю возвращается ошибка), ограниченная маршрутизация сообщений (широковещательная или одноадресная) и отсутствие преобразования сообщений. Асинхронность обеспечивается клиентскими библиотеками D-Bus в сочетании с циклом опроса.

Считает ли D-Bus очередь сообщений?

В некотором роде. Как и выше, D-Bus реализует упорядоченную очередь сообщений в dbus-daemon до тех пор, пока принимающий узел не прочитает их. Он не сохраняет очередь на диске, если демон перезапущен или одноранговый сервер отключается. Спецификация D-Bus определяет гарантии порядка сообщений, которые делает D-Bus.

Похоже ли D-Bus на ZeroMQ?

Я не очень хорошо знаю ZeroMQ, но, похоже, ключевое отличие в том, что D-Bus предназначен только для локального IPC, тогда как ZeroMQ также предназначен для IPC между несколькими компьютерами в сети. Хотя можно использовать D-Bus через TCP, это официально не поддерживаемая конфигурация и не то, для чего D-Bus действительно предназначен.

...