Шина Python между процессами

Я полностью начинаю свой роботизированный мозг заново. Все разработано на Python.

Я хочу, чтобы все было максимально модульным и позволяло использовать несколько ядер ЦП (Raspberry PI 2).

Я думал об использовании нескольких процессов. Один для последовательной связи, один для каждого датчика, один для каждой более высокой функции. Все связано функцией рулевого «мозга».

Я хочу соединить процессы шинами сообщений. Например. Должен ли каждый датчик использовать свою собственную шину. Затем высшие функции и мозг могут подключиться к шине. В оптимальном случае я хотел бы отправить и целые объекты.

  • Есть ли хорошая структура для предоставления автобусов?
  • может быть, есть лучший подход ко всей теме?

Спасибо

Роберт


person robvoi    schedule 19.02.2015    source источник
comment
multiprocessing ... это встроенная библиотека, в ней есть вещи, называемые Pipe, которые делают то, что вы хотите   -  person Joran Beasley    schedule 19.02.2015
comment
Спасибо за быстрый ответ. Я посмотрю на это. Приветствуются предложения альтернатив или абстрагирующих фреймворков, упрощающих использование.   -  person robvoi    schedule 19.02.2015
comment
У меня никогда не было возможности его использовать, но при поиске похожих вещей постоянно всплывает dbus. Он имеет привязки для нескольких языков, и, по крайней мере, dbus-python кажется легко доступным на малине: freedesktop.org /wiki/Программное обеспечение/DBusBindings   -  person Luis    schedule 19.02.2015


Ответы (1)


Попробуйте nanomsg (продолжение проекта ZeroMQ):

nanomsg — это библиотека сокетов, предоставляющая несколько общих шаблонов связи. Он направлен на то, чтобы сделать сетевой уровень быстрым, масштабируемым и простым в использовании. Реализованный на C, он работает на широком спектре операционных систем без каких-либо дополнительных зависимостей.

Шаблоны связи, также называемые «протоколами масштабируемости», являются базовыми блоками для построения распределенных систем. Комбинируя их, вы можете создать широкий спектр распределенных приложений. В настоящее время доступны следующие протоколы масштабируемости:

  • ПАРА - простое общение один на один
  • BUS — простое общение «многие ко многим»
  • REQREP — позволяет создавать кластеры сервисов без сохранения состояния для обработки запросов пользователей.
  • PUBSUB — рассылает сообщения большому количеству заинтересованных подписчиков.
  • PIPELINE — объединяет сообщения из нескольких источников и распределяет их нагрузку между многими пунктами назначения.
  • ОБЗОР - позволяет запрашивать состояние нескольких приложений за один раз
person ndpu    schedule 19.02.2015
comment
Благодарить. Я видел zeromq, но не видел nanomsg. Знаете ли вы, были ли перенесены объекты Python? (да, я могу прочитать и попробовать, но, может быть, вы знаете это наизусть ;-)) - person robvoi; 20.02.2015
comment
Ах круто. С pickle и nanomsg у меня есть msgbus и отправка объектов. Спасибо. - person robvoi; 20.02.2015