Я работаю над разработкой моделирования с использованием распределенных клеточных автоматов. Моделирование ячеек распределяется между узлами и координируется с использованием ZooKeeper. Постоянные данные хранятся в Riak. Само клеточные автоматы написаны на Python.Локальное, малообъемное сообщение для массивно распределенных клеточных автоматов
Было бы очень удобно для моей симуляции, если бы ячейка могла передавать небольшую громкость (между несколькими и десятками в секунду, скажем) сообщений (возможно, пару с ключом) своим непосредственным соседям (окрестности Манхэттена). Однако для моделирования миллионов ячеек наивный подход заканчивается миллионами маленьких почтовых ящиков, по одному для каждой ячейки и медленной струйкой сообщений в каждом ящике. Это приносит ZooKeeper или RabbitMQ на колени! I've been recommended DDS, но, похоже, это очень Enterprise, и никаких привязок Python я не могу найти.
Я новичок в разработке распределенных систем - это действительно просто хобби-проект, чтобы увидеть, как далеко я могу добраться. Я не могу не чувствовать, что я делаю это неправильно, обращаясь к монолитной шине сообщений для каждого почтового ящика каждой ячейки. Клетке легко определить своих соседей и ее место в мире, поэтому кажется, что передача сообщения должна быть восприимчивой к каким-то образом. Однако дизайн этого регионального актера и то, как он общается с отдельными ячейками, ускользает от меня. Я вижу, как ячейки могли передавать сообщения в кусок через шину сообщений, но как бы пакет передавал сообщения обратно в ячейку?
Я направляюсь куда-нибудь рядом с реальным решением этой проблемы? Каким образом распределенные узлы могут передавать сообщения малого объема своим соседям?
Я все еще думаю, что DDS будет хорошим решением для этого, даже если я постараюсь не быть предвзятым ;-). Вы правы, нет встроенных связок python. Это требование для вас? Поскольку я думаю, что ваш проект интересен, я был бы готов дать вам несколько советов, если вы решите попробовать DDS - просто дайте мне знать. –
Мы снова встречаемся! Да, привязки python - это требование. Меня беспокоит легкость интеграции - особенно с учетом моих ограниченных ресурсов. Однако, поскольку вы являетесь резидентным экспертом, я вас выслушаю. :) Я создал чат в http://chat.stackoverflow.com/rooms/info/25451/dds, чтобы обсудить это дальше. Благодаря! –
Если вы по-прежнему заинтересованы в применении DDS к вашему прецеденту, ознакомьтесь с [слайдами, которые я использовал] (http://www.slideshare.net/RealTimeInnovations/learn-how-to-develop-a-distributed-game -of-life-with-dds) для веб-семинара * Узнайте, как разработать распределенную игру жизни с DDS *, которую я представил недавно. Спасибо за вдохновение ;-) –