Какая структура хороша для предоставления данных, которые обычно меняются за несколько секунд и оцениваются многими людьми (аналогично котировкам акций)?
Я знаком только с php и javascript и думаю, что php не подходит для обслуживания большого количества одновременных запросов. Я был бы признателен, если бы кто-то мог представить мне более подходящую основу для этого, поскольку я пока не знаю ключевого слова для Google. Большое спасибо.
3 ответа
Многоадресная рассылка и структура обмена сообщениями публикации / подписки (pub/sub), в зависимости от источника данных, вашей сети и местоположения ваших слушателей.
На этот вопрос нельзя ответить - вы пришли со стороны "Я маленький вебдуд" и задаете вопрос Люди тратят миллионы, чтобы ответить.
Во-первых, что такое "похожая на стоковую цитата". Шутки в сторону. Я отслеживаю 5 обменов - все предложения CME Group. Я отслеживаю более четверти миллиона символов, наиболее неактивных. Активные имеют сотни обновлений в секунду (кстати, это те, которые меня действительно интересуют).
Во-вторых, что такое "много людей"? 100? 100,000?
Что доставить. Intranet? Интернет? В интранете вы действительно хотите посмотреть что-то вроде Multicast. Интернет Multicast не существует.
Фреймворк? Ну, есть TIBCO, который знаменит. Цена реализации 7 цифр. Rithmic использует Somethign в разработке хоста, как и QUITE многие другие провайдеры в этой области.
Обновления? Что вы думаете о задержке доставки? Я имею ввиду, дома у меня 129 мс после обмена. Где это рассчитывает, я 1 мс от него. Это важно - потому что вы не можете полагаться на "тянуть", вы должны получать обновления.
Это действительно тема Хью. ЛЮБЫЕ Основные языки (C#, Java, C++) и некоторые не очень распространенные имеют доступную привязку. Бюджет и реальное использование начнут определять вашу матрицу решений.
Конечно, это зависит от того, что для вас означает "большое количество" и "данные изменились за несколько секунд". Чтобы справиться с очень большим количеством одновременно работающих пользователей, определенно лучше, чтобы пользователи не часто обращались к вашему серверу динамических приложений.
Интенсивное кеширование с такими вещами, как Varnish + CDN и некоторое быстрое внутреннее хранилище (множество вариантов здесь), очень помогло бы.
Что касается самого динамического бэкэнда, было доказано, что Erlang обладает огромным параллелизмом, и у вас также есть отличные результаты с Java/Scala.
Тем не менее, важно не перегружать себя, поскольку вы, возможно, создаете гораздо более сложное решение, чем на самом деле требует ваша проблема.