Высокопроизводительный сайт

Какие технологии я должен использовать при разработке для большого социального веб-сайта (с большим количеством транзакций, как Твиттер)? использование решений с открытым исходным кодом - базы данных - веб-сервера - OS

6
задан Jan 3 March 2010 в 09:52
поделиться

9 ответов

Как видите, на самом деле не имеет значения, что вы выберете; все эти сайты имеют большой трафик, но основаны на очень разных технологиях.

10
ответ дан 8 December 2019 в 05:21
поделиться

Самое важное в социальных сетях - это бэкенд, поскольку большинство узких мест будет именно там. Возможно, вы захотите рассмотреть базы данных No-SQL.

  • Facebook и Twitter используют Cassandra
  • LinkedIn использует Voldemort

Есть несколько других, например:

Что касается языка программирования, то, как уже говорили другие, он не имеет большого значения. Но если вы действительно не можете определиться, вам стоит рассмотреть неблокирующий веб-сервер, например Tornado.

6
ответ дан 8 December 2019 в 05:21
поделиться

Неважно, какой язык сценариев вы выберете, если вы будете активно использовать memcached . Обязательно наличие правильной иерархии кеширования.

2
ответ дан 8 December 2019 в 05:21
поделиться

В конце концов, это вопрос личных предпочтений. Twitter использует Ruby on Rails. Википедия работает на PHP. Reddit использует библиотеку Python под названием web.py, но изначально она была написана на Lisp. Я бы сказал, выберите технологии, с которыми вы наиболее знакомы.

2
ответ дан 8 December 2019 в 05:21
поделиться

Хорошая книга по оптимизации для высокопроизводительных веб-сайтов от инженеров Yahoo - это Высокопроизводительные веб-сайты: необходимые знания для инженеров внешнего интерфейса . Это красивое и короткое руководство по сути представляет собой маркированное руководство по шагам, которые необходимо предпринять, чтобы ускорить работу веб-сайтов за счет оптимизации менее изученного интерфейса.

2
ответ дан 8 December 2019 в 05:21
поделиться

Как Джоэл говорит

Люди во всем мире постоянно строят веб-приложения, использующие .NET, использующие Java и постоянно использующие PHP. Ни один из них не выходит из строя из-за выбора технологии.

Выберите ту из «большой тройки» (.Net, Java или PHP), которую вы знаете лучше всего - эти технологии, как известно, масштабируемы, реальный вопрос о том, будет ли ваш сайт масштабироваться, заключается в том, как он структурирован и качество кода - использование того фреймворка, с которым вы наиболее знакомы, дает вам наилучшие шансы на достижение этого.

1
ответ дан 8 December 2019 в 05:21
поделиться

Любые технологии на ваш вкус. В вашей ситуации, я думаю, важнее алгоритмы.

0
ответ дан 8 December 2019 в 05:21
поделиться

Если вы создаете что-то вроде Facebook, тогда ваш выбор немного ограничен, Facebook создал собственную среду выполнения PHP, проверьте HipHop For PHP

0
ответ дан 8 December 2019 в 05:21
поделиться

Технологии, методы,

  • изучите, что использовали и делали другие масштабные сайты и какие проблемы у них были, чем они преуспели, есть подкасты на iTunes, беседы и интервью на Youtube
  • посмотрите на лучшие практики индустрии и следуйте им в той или иной степени
  • не верьте людям на слово, убедитесь, что вы видите проблему или успех, а не блеск PR
  • избегайте очевидных вещей, которые не масштабируются вертикально или горизонтально, подключение к базе данных, сессии - cookies и тому подобное
  • посмотрите на nosql-хранилище как альтернативу sql - меньше накладных расходов, но меньше функциональности
  • будьте осторожны при выборе языка/фреймворка. Фреймворки поставляются с большим количеством багажа, который вам не нужен, они ускоряют вас изначально и замедляют в конечном итоге, т.е. вы тратите больше времени на взлом фреймворка, чем на создание сайта, то же самое с языками, делает ли он то, что вам нужно, а не является модным, крутым для программирования и т.д.
0
ответ дан 8 December 2019 в 05:21
поделиться
Другие вопросы по тегам:

Похожие вопросы: