При проектировании системы, поскольку场景,时间而异,资源配备Невозможно сразу разработать идеальный дизайн, решить основные проблемы с ограниченными ресурсами, предсказать и обнаружить проблемы, которые могут возникнуть в будущем, и решать их постепенно, поэтому говорят, что系统设计是一个不断迭代的过程, не переусердствуйте, развивайтесь и совершенствуйтесь после итерации.
О параллелизме?Концептуально параллелизм, в том числе и параллелизм, предназначен для повышения эффективности, как для выполнения большего количества задач за кратчайшее время.
Включая текущий Double Eleven, Double Twelve и т. д., сколько заказов выполняется за одну секунду, они будут включать параллелизм.Параллелизм и параллелизм有大神关于两者的阐述:“并发关乎结构,并行关乎执行”
并发: Обработка нескольких задач в разное время, по очереди используется один ЦП. Например, сходите в ванную и вернитесь, чтобы поесть, пока вы едите.
平行: одновременная обработка нескольких задач и выполнение нескольких ЦП. Допустим, вы ходите в туалет во время еды.
Тип параллелизма
计算密集型: требует много вычислительных ресурсов ЦП. Для интенсивного типа это полностью зависит от количества ядер ЦП. Избегайте чрезмерного переключения контекста потока, чтобы в полной мере использовать преимущества. Идеальное решение: JDK1.8 добавляет параллельные вычисления, идеальное количество потоков = количество ядер ЦП * 2
IO密集型: Это включает в себя много сетевой передачи. Не только это, но и взаимодействие с базой данных и кешем также включает ввод-вывод. Как только ввод-вывод произойдет, он войдет в состояние ожидания. Когда ввод-вывод завершится и данные будут готовы, он продолжится выполнить. Идеальное решение: количество потоков = количество ядер ЦП/(1-коэффициент блокировки), этот коэффициент блокировки обычно составляет от 0,8 до 0,9.
Принцип высокой параллелизма
**无状态: ** Без сохранения состояния означает, что нет необходимости выполнять постоянные операции. Наличие состояния будет включать синхронизацию данных, использование памяти и полосы пропускания, а также операции блокировки, что повлияет на быстрое расширение.
**粒度化: ** Независимо от того, разделены ли чтение и запись, или служба приложений должна контролировать зависимости между ними, децентрализовать запросы для повышения эффективности параллелизма и более четко управлять ими.
**场景化: ** Выберите правильную технологию для правильного сценария (очередь сообщений, неоднородность данных, кэш-память, параллелизм).
消息队列: отделить некоторые службы, которые не нужно вызывать синхронно, или подписаться на некоторые соответствующие изменения, а также уменьшить пики/буферы трафика, а в некоторых сценариях будут повторяющиеся сообщения (недостатки), вы можете выполнять защиту от дублирования и корректуру на бизнес-уровне.RDBMS фокусируется на ACID, а NOSQL фокусируется на CAP и BASE, обычно жертвуя строгой согласованностью и обеспечивая конечную согласованность.
数据异构: Все мы знаем, что система состоит из данных, и место хранения данных и полученная среда разные, и скорость тоже разная. Одна таблица определенно быстрее, чем связанная таблица, а доступ к памяти определенно быстрее, чем доступ к диску, как и в предыдущем случае.статьяЕсть цитата, которая лично мне очень нравится:时间换空间,空间换时间. Следовательно, он может быть разработан в соответствии с реальной сценой и бизнесом, в том числе жертвовать частью ресурсов в соответствии с весом данных для повышения эффективности.Например, совместная таблица может учитывать избыточность данных или получение ключевых данных. можно комбинировать и хранить.
缓存银弹: Cache — это специальное оружие против трафика для сервисов чтения.
并发化: Теория параллелизма на самом деле очень проста: данные без зависимостей собираются параллельно. Это может быть непросто понять, например: B зависит от A, а C не зависит от D от B, тогда лучший способ — получить A и C параллельно, затем получить B, а затем D.