Вообще, стандартное (и самое распространенное) решение этой проблемы – сделать CNAME запись в DNS вида *.comet.example.com, которая будет указывать на comet.example.com. После этого на кленте, при открытие новой вкладки, вы просто рандомно генерите адрес для comet вида blablabla.comet.example.com.
Но это все прошлый век.
Самое грамотное решение следующее:
Браузер может спокойно конектится к тому же домену что и страница, но делать это должна только одна вкладка из всех открытых. Технически делается так – с помощью html5 localStorage табы браузера голосуют между собой и выбирают лидера, который начинает так же через localStorage сообщать всем «жив, работаю и т.д.». Этот лидер уже и общается непосредственно с сервером и мультиплексирует сообщения для других табов (опять же через localStorage).
Благодаря этому мы снижаем нагрузку на сервер на порядки. В прямом смысле слова – на порядки. В старом варианте, если юзер откроет 10 табов, то все они будут общаться с сервером. В случае с мультиплексированием – только один таб.
Минус один – мы отрезаем все браузеры, ниже IE8 (все, кто без localStorage). Ну и фиг с ними…
P.S.: Саму идею этого решения я услышал на конфе несколько лет назад от одного из разработчиков ВКонтакте. Никакой готовой либы в те времена я не нашел и стал стругать собственный костыль. Оказалось все не так уж и страшно. Вышло где-то строк 50.
Так что… ройте лучше в эту сторону.
Ну наконец-то кто-то сделал такой сервис! Вроде и просто, а желающих сделать что-то подобное не было.
Очень нужно RSS.
Причем, хотелось бы оставить небольшое пожелание: сделайте по отдельной ленте на каждый хаб + одну ленту, в которой будет появляться информация о новых хабах.
В этом случае мы и подпишемся только на то, что нам интересно, и за развитием вашего сайта будем следить.
В RSS достаточно вставлять только аннотации статей (дабы вам трафик не терять, а вместе с ним и мотивацию поддерживать сайт).
Ну на ноуте покрутить — это только API изучить…
Я имел в виду потестировать с данными более-менее похожими на реальные.
У меня сейчас 5М+ аватар общим объемом 200+ Гбайт. Нагрузка в принципе не большая, так как отдаю их в CDN, которой «приказываю» хранить их у себя максимально возможное время. Т.е. у меня проблема не в нагрузке, а в том что все-равно надо хранить «старые» авы. Которые может быть уже и не нужны (юзер уже покинул сервис), но и не выкинешь же их.
В принципе, текущее решение не особо дорогое, но всегда хочеться что-то улучшить… Поэтому, просто потестирую ваш Elliptics (выглядит симпатично) и приму для себя решение.
Спасибо.
Ну я четкие требования сказать сейчас не могу, так как интересовался больше для «общего развития».
Но, я уже понял, что для «покрутить-повертеть» особо серьезное железо не требуется.
А какие минимальные требования по железу у Elliptics для одной ноды?
В документации (в разделе System requirements) нашел информацию только о том, что работает только под линуксом. А вот про железо ничего нет.
Если, например, у меня какой-то небольшой проект, то могу ли я развернуть Elliptics на «маленьких» дроплетах в DigitalOcean (DO- условно, можно и у другого хостера)?
Если нет, то какой нужен минимум? Имеется в виду, чтобы не просто «завелось», а работало более-менее «приемлемо».
Я бы отметил еще следующий момент. Если кроме Питона вы знакомы с JavaScript, то порог вхождения в программирование плагинов для XBMC будет для вас минимален. Логика работы с контролами в XBMC такая же, как и с DOM в браузерах. Контролы в XBMC описаны с помощью XML. Соответственно, есть аналоги всяких getElementById, appendChild и т.д. (полный список можно посмотреть в документации к xbmcgui). В любой момент вы можете из текущего окна в боксе вытащить любой контрол и сделать с ним все, что вашей душе угодно. Изменить его внешний вид, реакцию на события и т.д.
Но это все прошлый век.
Самое грамотное решение следующее:
Браузер может спокойно конектится к тому же домену что и страница, но делать это должна только одна вкладка из всех открытых. Технически делается так – с помощью html5 localStorage табы браузера голосуют между собой и выбирают лидера, который начинает так же через localStorage сообщать всем «жив, работаю и т.д.». Этот лидер уже и общается непосредственно с сервером и мультиплексирует сообщения для других табов (опять же через localStorage).
Благодаря этому мы снижаем нагрузку на сервер на порядки. В прямом смысле слова – на порядки. В старом варианте, если юзер откроет 10 табов, то все они будут общаться с сервером. В случае с мультиплексированием – только один таб.
Минус один – мы отрезаем все браузеры, ниже IE8 (все, кто без localStorage). Ну и фиг с ними…
P.S.: Саму идею этого решения я услышал на конфе несколько лет назад от одного из разработчиков ВКонтакте. Никакой готовой либы в те времена я не нашел и стал стругать собственный костыль. Оказалось все не так уж и страшно. Вышло где-то строк 50.
Так что… ройте лучше в эту сторону.
Очень нужно RSS.
Причем, хотелось бы оставить небольшое пожелание: сделайте по отдельной ленте на каждый хаб + одну ленту, в которой будет появляться информация о новых хабах.
В этом случае мы и подпишемся только на то, что нам интересно, и за развитием вашего сайта будем следить.
В RSS достаточно вставлять только аннотации статей (дабы вам трафик не терять, а вместе с ним и мотивацию поддерживать сайт).
Я имел в виду потестировать с данными более-менее похожими на реальные.
У меня сейчас 5М+ аватар общим объемом 200+ Гбайт. Нагрузка в принципе не большая, так как отдаю их в CDN, которой «приказываю» хранить их у себя максимально возможное время. Т.е. у меня проблема не в нагрузке, а в том что все-равно надо хранить «старые» авы. Которые может быть уже и не нужны (юзер уже покинул сервис), но и не выкинешь же их.
В принципе, текущее решение не особо дорогое, но всегда хочеться что-то улучшить… Поэтому, просто потестирую ваш Elliptics (выглядит симпатично) и приму для себя решение.
Спасибо.
Но, я уже понял, что для «покрутить-повертеть» особо серьезное железо не требуется.
В документации (в разделе System requirements) нашел информацию только о том, что работает только под линуксом. А вот про железо ничего нет.
Если, например, у меня какой-то небольшой проект, то могу ли я развернуть Elliptics на «маленьких» дроплетах в DigitalOcean (DO- условно, можно и у другого хостера)?
Если нет, то какой нужен минимум? Имеется в виду, чтобы не просто «завелось», а работало более-менее «приемлемо».