rhythmbox
пакет является зависимостью ubuntu-desktop
пакет, который используется, чтобы гарантировать, чтобы у Вас были основные настольные компоненты.
при принуждении удаления Rhythmbox оно также вызвало бы удаление ubuntu-desktop
, который, возможно, позволил некоторым другим критическим настольным компонентам быть удаленными. Rhythmbox переустановки не восстановил бы другие пакеты, которые должны были быть удалены для завершения той первой операции.
Вы смогли ремонтировать вещи путем переустановки ubuntu-desktop
со следующей командой:
sudo apt-get install ubuntu-desktop
, Если это не помогает, предоставьте немного больше информации о том, какие изменения Вы внесли в свою систему между тем, когда вещи работали и когда они прекратили работать.
Если вы разрабатываете систему для высокой нагрузки (что обычно подразумевает высокую надежность), наличие единой точки отказа никогда не является хорошей идеей. Если служба, обеспечивающая согласованное представление, отключается, в лучшем случае ваша производительность резко снижается, поскольку база данных запрашивается обо всем, а в худшем - все ваше приложение перестает работать.
В вашем вопросе, похоже, вас беспокоит последовательность. Если есть что-то узнать об архитектуре eBay , так это то, что необходимо найти компромисс между доступностью / избыточностью / производительностью и согласованностью . Вы можете обнаружить, что 100% согласованность не требуется, и можно обойтись небольшим «хаосом».
Распределенный кеш (например, memcache ) может использоваться в качестве поддержки для распределенной хеш-таблицы , которые широко использовались для создания масштабируемых инфраструктур. При правильной реализации кеши могут быть избыточными, а кеши могут динамически присоединяться и покидать кольцо.
REST также по своей природе кэшируется, поскольку уровень HTTP может быть кэширован с соответствующим использованием заголовков ( ETags ) и программного обеспечения (например, прокси-сервер Squid в качестве обратного прокси ). Единственный недостаток указания кэширования через заголовки заключается в том, что он полагается на то, что клиент интерпретирует и уважает их.
Однако, перефразируя Фила Карлтона, кэширование сложно . Вы действительно должны быть избирательными в отношении данных, которые вы кешируете, когда вы их кешируете и как вы делаете этот кеш недействительным. Аннулирование может быть выполнено следующими способами:
Я ' m частично подходит к подходу, основанному на таймере, поскольку его проще реализовать, и вы можете с относительной уверенностью сказать, как долго устаревшие данные будут храниться в системе (например, информация о компании будет обновлена через 2 часа, цены на акции будут обновлены через 10 секунд).
Наконец, высокая нагрузка также зависит от вашего варианта использования, и в зависимости от количества транзакций все это не применимо. Методология (если хотите) может быть следующей:
В конце концов, у вас может вообще не быть проблем с производительностью, и вы можете обойтись без единой базы данных и хорошей стратегии резервного копирования.
Курсы акций будут обновлены через 10 секунд).Наконец, высокая нагрузка также зависит от вашего варианта использования, и в зависимости от количества транзакций все это не применимо. Методология (если хотите) может быть следующей:
В конце концов, у вас может вообще не быть проблем с производительностью, и вы можете обойтись без единой базы данных и хорошей стратегии резервного копирования.
Курсы акций будут обновлены через 10 секунд).Наконец, высокая нагрузка также зависит от вашего варианта использования, и в зависимости от количества транзакций все это не применимо. Методология (если хотите) может быть следующей:
В конце концов, у вас может вообще не быть проблем с производительностью, и вы можете обойтись без единой базы данных и хорошей стратегии резервного копирования.
Я думаю, что более традиционный взгляд на веб-приложения с балансировкой нагрузки состоит в том, что у вас будет служба REST на нескольких серверах приложений, и они будут извлекать данные ресурсов с одного сервера базы данных.
Однако с Используя гипермедиа, службы REST могут легко разделить приложение по вертикали, так что некоторые ресурсы поступают из одной службы, а некоторые - из другой службы на другом сервере. Это позволит вам до некоторой степени масштабироваться в зависимости от вашего домена без единого хранилища данных. Очевидно, что с REST вы не сможете выполнять транзакционные обновления для этих сервисов, но определенно существуют сценарии, в которых такое разделение является ценным.
Если вы ищете архитектуры, которые необходимо действительно масштабировать, я бы посоветовал взглянуть на Грега Янга '