Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Java [игнор отключен] [закрыт для гостей] / Сервер на 10к коннектов / 25 сообщений из 32, страница 1 из 2
19.07.2012, 02:12:19
    #37884690
prostohz
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сервер на 10к коннектов
Привет, форумчане!
В рамках тестового задания встала проблема реализации highload-кэш-сервера(от 10к долгоживущих соединений) с большим количеством запросов(40к/ceк). А проблема собственно в том, как бы это все правильно реализовать. Не создавать же 10к потоков?
Спасибо!
...
Рейтинг: 0 / 0
19.07.2012, 09:26:08
    #37884823
drsm
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сервер на 10к коннектов
prostohz, пробуй это https://netty.io/
...
Рейтинг: 0 / 0
19.07.2012, 10:11:16
    #37884880
Blazkowicz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сервер на 10к коннектов
Для 10K простых решений не существует. Спросите у гугла про C10K problem.
Нужно проанализировать требования и погонять прототипы на нагрузочных тестах.
10K потоков с небольшим стеком (Linux NPTL), могут оказаться быстрее чем NIO, например. Тем более если соединения долгоживущие.

Если спросите у гугла про C10K в Java, то найдёте много рецептов на что нужно обратить внимание в первую очередь.
...
Рейтинг: 0 / 0
19.07.2012, 10:34:31
    #37884917
1024
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сервер на 10к коннектов
что значит "долгоживущих"? Долго выполняются?
...
Рейтинг: 0 / 0
19.07.2012, 11:01:18
    #37884970
schwa
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сервер на 10к коннектов
Хорошее тестовое задание.
...
Рейтинг: 0 / 0
19.07.2012, 11:33:56
    #37885031
Большой Синий Кит
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сервер на 10к коннектов
Blazkowicz,

Извините, почему не существует простых решений? Netty - простое решение. 10К оно решает.
...
Рейтинг: 0 / 0
19.07.2012, 11:36:11
    #37885040
Большой Синий Кит
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сервер на 10к коннектов
prostohz,

Думаю, стоит обратить внимание именно на Netty. А именно использование вебсокетов.
...
Рейтинг: 0 / 0
19.07.2012, 11:41:43
    #37885051
Blazkowicz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сервер на 10к коннектов
Большой Синий КитИзвините, почему не существует простых решений? Netty - простое решение. 10К оно решает.
Если сервер больше ничего не делает, кроме как клиентов подключает, то "да". Решает. Но, обычно, сервер ещё много чем занят.
...
Рейтинг: 0 / 0
19.07.2012, 12:04:13
    #37885101
Большой Синий Кит
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сервер на 10к коннектов
BlazkowiczБольшой Синий КитИзвините, почему не существует простых решений? Netty - простое решение. 10К оно решает.
Если сервер больше ничего не делает, кроме как клиентов подключает, то "да". Решает. Но, обычно, сервер ещё много чем занят.

Но Вы же станете спорить, что если сервер делает что-то еще, кроме как подключение клиентов, 40К в секунду на одной машине не добиться. Просто потому, что само это "что-то делание" может занимать более 1 секунды :)
...
Рейтинг: 0 / 0
19.07.2012, 12:04:57
    #37885105
Blazkowicz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сервер на 10к коннектов
Большой Синий КитДумаю, стоит обратить внимание именно на Netty. А именно использование вебсокетов.
Почему "вебсокетов"?
...
Рейтинг: 0 / 0
19.07.2012, 12:12:05
    #37885116
Большой Синий Кит
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сервер на 10к коннектов
В случае с вебсокетами, сервер нетти подключает клиента. В дальнейшем получает запрос - отправляет ответ.
Я делал что-то вроде шттп прокси на нетти.
Цепочка:
http запрос --> сервер нетти --> клиент-нетти --> HttpServer
выдавала мне throghput ~ 800 в секунду при 1100 потоках
И клиент, и сервер, и httpserver находились на одной машине.

При этом клиент декодировал ChannelBuffer в HttpRequest и преобразовывал хедеры.
...
Рейтинг: 0 / 0
19.07.2012, 12:14:02
    #37885120
Большой Синий Кит
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сервер на 10к коннектов
Blazkowicz,

Потому что это очень удобно. Полнодуплексная связь, канал все время открыт, данные пересылать можно в бинарном виде. Авторизация в конце концов тут же.
...
Рейтинг: 0 / 0
19.07.2012, 12:14:41
    #37885122
Penkov Vladimir
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сервер на 10к коннектов
Большой Синий КитBlazkowiczпропущено...

Если сервер больше ничего не делает, кроме как клиентов подключает, то "да". Решает. Но, обычно, сервер ещё много чем занят.

Но Вы же станете спорить, что если сервер делает что-то еще, кроме как подключение клиентов, 40К в секунду на одной машине не добиться. Просто потому, что само это "что-то делание" может занимать более 1 секунды :)

есть потоки, seda всякие...
...
Рейтинг: 0 / 0
19.07.2012, 12:15:26
    #37885123
tumblerrr
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сервер на 10к коннектов
Большой Синий КитBlazkowicz,

Потому что это очень удобно. Полнодуплексная связь, канал все время открыт, данные пересылать можно в бинарном виде. Авторизация в конце концов тут же.

Т.е. вы хотите сказать, что у обычных сокетов всего этого нет? ))
...
Рейтинг: 0 / 0
19.07.2012, 12:16:48
    #37885128
Большой Синий Кит
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сервер на 10к коннектов
tumblerrr,

Почему нет. Есть конечно. Просто использовать вебсокеты удобнее, на мой взгляд.
...
Рейтинг: 0 / 0
19.07.2012, 12:17:00
    #37885129
tumblerrr
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сервер на 10к коннектов
BlazkowiczДля 10K простых решений не существует. Спросите у гугла про C10K problem.
Нужно проанализировать требования и погонять прототипы на нагрузочных тестах.
10K потоков с небольшим стеком (Linux NPTL), могут оказаться быстрее чем NIO, например. Тем более если соединения долгоживущие.

Если спросите у гугла про C10K в Java, то найдёте много рецептов на что нужно обратить внимание в первую очередь.

Это уже давно не проблема... в лохматых годах это было проблемой...
Щас все больше слышу по C100K и C500K problem )))
...
Рейтинг: 0 / 0
19.07.2012, 12:21:14
    #37885139
Большой Синий Кит
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сервер на 10к коннектов
Penkov VladimirБольшой Синий Китпропущено...


Но Вы же станете спорить, что если сервер делает что-то еще, кроме как подключение клиентов, 40К в секунду на одной машине не добиться. Просто потому, что само это "что-то делание" может занимать более 1 секунды :)

есть потоки, seda всякие...

Новый поток, который что-то выполняет на каждый запрос? Это не подходит. Ограниченное количество потоков, которые выполняют вброшенные задания - тоже можно упереться в более 1 секунду.
Seda - возможно.
...
Рейтинг: 0 / 0
19.07.2012, 12:49:44
    #37885198
Penkov Vladimir
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сервер на 10к коннектов
Большой Синий КитSeda - возможно.

даже более чем возможно. 10к в сек - это детский сад для седы
...
Рейтинг: 0 / 0
19.07.2012, 12:51:06
    #37885200
Большой Синий Кит
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сервер на 10к коннектов
Penkov Vladimir,

Я понимаю, просто интерпретировал это решение на 1 машину.
...
Рейтинг: 0 / 0
19.07.2012, 12:52:57
    #37885204
Большой Синий Кит
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сервер на 10к коннектов
P.S. На одной машине, возможно, и seda не спасет. Все зависит от того, что нужно делать на сервере.
...
Рейтинг: 0 / 0
19.07.2012, 14:53:17
    #37885464
zeehond
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сервер на 10к коннектов
а можно полюбопытствовать, чё вы всё про эту seda так увлечённо затираете?
это же ведь не продукт
а просто диссертация с каким-то прототипом из начала 200х годов

годный highload-кэш-сервер это, например, Varnish
ну или nginx с proxy плагином, там попроще всё
...
Рейтинг: 0 / 0
19.07.2012, 15:32:01
    #37885573
ART-CODE
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сервер на 10к коннектов
Мне на этом форуме пару дней назад посоветовали
Erlang - специально для таких случаев было сделано.
Сам еще не тестировал, но тема интересная.

И вот еще: C10k
...
Рейтинг: 0 / 0
19.07.2012, 15:34:57
    #37885579
Penkov Vladimir
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сервер на 10к коннектов
zeehondа можно полюбопытствовать, чё вы всё про эту seda так увлечённо затираете?
это же ведь не продукт
а просто диссертация с каким-то прототипом из начала 200х годов


у нас эта дисертация 20к событий в секунду (со сложной логикой, хождением в hbase итп) работает как часы и не напрягается
...
Рейтинг: 0 / 0
19.07.2012, 15:49:11
    #37885612
Blazkowicz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сервер на 10к коннектов
ART-CODEМне на этом форуме пару дней назад посоветовали
Erlang - специально для таких случаев было сделано.
Сам еще не тестировал, но тема интересная.
И вот еще: C10k
Хабр только сюда приплетать не нужно. Там качество материала не выдерживает никакой критики.
Там какой-то непонятый webbit выступает за всю Java. Круто.
...
Рейтинг: 0 / 0
19.07.2012, 15:50:57
    #37885618
Blazkowicz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сервер на 10к коннектов
Penkov Vladimirу нас эта дисертация 20к событий в секунду (со сложной логикой, хождением в hbase итп) работает как часы и не напрягается
Есть мнение что на современных ОС и железе выигрышь от асинхронности минимален. Тысячи потоков справляются с аналогичной задачей не хуже. При этом логика более линейная, соответственно проще. Только потребление памяти поболе.
...
Рейтинг: 0 / 0
Форумы / Java [игнор отключен] [закрыт для гостей] / Сервер на 10к коннектов / 25 сообщений из 32, страница 1 из 2
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]