Мультитенантное приложение Django

Существуют ли распространенные шаблоны, которые люди используют для создания многопользовательских приложений с использованием Django. Встроенные «сайты» рамки, кажется, вариант. Есть ли другие подходы, с которыми люди добились успеха?

 akaihola31 янв. 2013 г., 11:24

Ответы на вопрос(2)

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

С другой стороны, это будет большой проблемой, если у вас есть небольшое количество арендаторов, и вы будете тратить огромное количество серверных ресурсов, поскольку вам потребуется по меньшей мере один серверный процесс для каждого клиента, даже если они не используют. система. Если у вас большое количество арендаторов, это не вызовет особых хлопот, поскольку вы будете вынуждены автоматизировать решение независимо от вашего подхода.

Использование внешнего ключа клиента почти во всех ваших моделях будет работать нормально, а ORM в Django упрощает (облегчает) обеспечение безопасности с помощьютаможенные менеджеры, Недостатком является производительность, если вы начинаете сталкиваться с большим количеством пользователей, потому что нет простого способа увеличить масштаб.

Если вам нужно масштабировать, я думаю, что лучшее решениеcould be комбинация обоих подходов. Каждая модель имеет внешний ключ клиента, поэтому базы данных могут совместно использоваться, но затем вы разрабатываете механизм на более высоком уровне, чем Django, для направления клиентов в экземпляр сайта. Это позволяет вам размещать действительно больших арендаторов в их собственных базах данных с ресурсами, правильно настроенными только для них (например, надлежащим числом демонов mod_wsgi, числом соединений с базами данных, пулом memcache надлежащего размера и т. Д.), А арендаторы меньшего размера используют общие ресурсы.

https://github.com/bcarneiro/django-tenant-schemas У вас будет только один экземпляр проекта, и вам не придется вносить много изменений в ваш код.

 14 дек. 2012 г., 17:03
@RichVel вы имеете в виду, если выdon't хотите несколько БД, верно?
 12 янв. 2013 г., 19:02
Я просто хотел +1 ответить на этот вопрос, так как недавно я разработал этот проект для мультитенантного приложения схемы, и это здорово! Хорошо написано, легко расширяемо и практически без проблем, если реализовано.
 13 дек. 2012 г., 18:28
Это хороший подход, если вам нужно несколько БД - позволяет вам использовать несколько схем в одной БД для снижения накладных расходов. Требуется PostgreSQL. Простые схемы арендатора Django также интересны.
 14 дек. 2012 г., 22:35
Я имел в виду & quot; если вам нужен подход, похожий на несколько БД, но с использованием схем & quot ;, извините

Ваш ответ на вопрос