|
|
|
ZeroMQ - сокеты на стероидах, часть 3 (а для чего?).
|
|||
|---|---|---|---|
|
#18+
Dima TPPADima T, А PR в upstream не планируешь послать? https://github.com/zeromq/libzmq/pulls Отправил. Приняли. Можете пользоваться. Проект для сборки . Опять сломали. Проект libzmq "для WinXP" не собирается: ЭГГОГОшибка LNK2019 ссылка на неразрешенный внешний символ _zmq_z85_decode в функции "public: int __thiscall zmq::options_t::set_curve_key(unsigned char *,void const *,unsigned int)" (?set_curve_key@options_t@zmq@@QAEHPAEPBXI@Z) libzmq D:\libzmq\builds\msvc\vs2015_xp\options.obj 1 Решение: в список файлов проекта libzmq добавить файл zmq_utils.cpp. Теперь собирается. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.01.2017, 15:14 |
|
||
|
ZeroMQ - сокеты на стероидах, часть 3 (а для чего?).
|
|||
|---|---|---|---|
|
#18+
Похоже, что nanomsg таки сдулся, автор несколько месяцев не модифицирует исходники... "сообщество" что-то изредка правит, и все... А zeromq - напротив, цветет и пахнет, несмотря на то, что умер один из основных разработчиков. Вот что значит поддержка со стороны большой конторы. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.05.2017, 01:17 |
|
||
|
ZeroMQ - сокеты на стероидах, часть 3 (а для чего?).
|
|||
|---|---|---|---|
|
#18+
Коллеги, приветствую! Стою на пороге тотального переписывания сетевого кода в клиент-серверном приложении. Половину дня просидел изучая что русскоязычные люди пишут про ZeroMQ. Очень нравится, ясно что надо изучать гайд с офф сайта. Но не хочется терять время, т.к. кое-что насторожило. Может вы мне поможите, просветите: 1) на ОС Windows от WinXP (самая ходовая по регионам необъятной родины) нужен и сервер и клиент, ZeroMQ умеет XP или поддержку отключили и больше не будет? Ну т.е. я вижу что на гитхабе есть проект _xp, но вот к примеру сокеты ZMQ_SERVER и ZMQ_CLIENT будут на ней работать? И по вашим ощущениям, не выпилят с очередным релизом (и не останусь я потом сидеть с необновляемой библиотекой?) 2) С Vista и т.д. сервер сможет держать больше сотни коннектов? Т.е. ZeroMQ реально юзает только select в винде, APC не умеет? 3) На linux ZeroMQ умеет МНОГА коннектов? Мне надо 14 тыс постоянных (но слабоактивных) для мониторинга и вялого обмена сообщениями. 5) Где-то прочёл что опасно ZeroMQ смотреть в эти ваши интернеты, заDDOSят мол. Есть у кого опыт, соображения на этот счёт, правда защиты от мусора нет совсем? 6) Технический момент: в итоге-то решение найдено по отключению "мёртвых" клиентов, да? Т.е. я беру любой протокол с поддержкой хардбитинга (или пинг-понга, если есть) и использую, верно? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.06.2017, 18:38 |
|
||
|
ZeroMQ - сокеты на стероидах, часть 3 (а для чего?).
|
|||
|---|---|---|---|
|
#18+
Антон АксёновКоллеги, приветствую! Стою на пороге тотального переписывания сетевого кода в клиент-серверном приложении. Половину дня просидел изучая что русскоязычные люди пишут про ZeroMQ. Очень нравится, ясно что надо изучать гайд с офф сайта. Но не хочется терять время, т.к. кое-что насторожило. Может вы мне поможите, просветите: 1) на ОС Windows от WinXP (самая ходовая по регионам необъятной родины) нужен и сервер и клиент, ZeroMQ умеет XP или поддержку отключили и больше не будет? Ну т.е. я вижу что на гитхабе есть проект _xp, но вот к примеру сокеты ZMQ_SERVER и ZMQ_CLIENT будут на ней работать? И по вашим ощущениям, не выпилят с очередным релизом (и не останусь я потом сидеть с необновляемой библиотекой?) 2) С Vista и т.д. сервер сможет держать больше сотни коннектов? Т.е. ZeroMQ реально юзает только select в винде, APC не умеет? 3) На linux ZeroMQ умеет МНОГА коннектов? Мне надо 14 тыс постоянных (но слабоактивных) для мониторинга и вялого обмена сообщениями. 5) Где-то прочёл что опасно ZeroMQ смотреть в эти ваши интернеты, заDDOSят мол. Есть у кого опыт, соображения на этот счёт, правда защиты от мусора нет совсем? 6) Технический момент: в итоге-то решение найдено по отключению "мёртвых" клиентов, да? Т.е. я беру любой протокол с поддержкой хардбитинга (или пинг-понга, если есть) и использую, верно? 1. ХР использовать можно, см. первое сообщение на этой страничке. Мы-используем (вернее, у нас есть покупатели, использующие WinXP). Сокеты типа ZMQ_SERVER и ZMQ_CLIENT, и также протокол TCP iPV6 будут недоступны. И да, обязательно рано или поздно поддержку XP выпилят: 2017 год на дворе. И что? Люди до сих пор zmq версий 2.* используют, "чтобы работало на всём". В данный момент мы используем последнюю (опубликованную 2016/12/32) версию v4.2.1, собранную именно для WinXP (с "вкомпиленным" рантаймом), если надо - могу прислать. 2. Вопрос не вполне понятен. Если интересна внутренняя реализация zmq, можно посмотреть исходники. Например, метод zmq_Poll() (см. файл soсket_poller.cpp)в винде использует select() (из winsock2.h). Есть ограничение на число сокетов, используемых в zmq_poll() -> не более 1024 (можно обойти и увеличить, многократно писали как, примерно в 50 раз (фактически ограничение связано с числом доступных tcp портов в системе). Но, к примеру, я тестировал сервер всего с одним (не считая INPROC сокета) TCP сокетом типа ROUTER с парой тысяч входящих (активных!) коннектов, в качестве сервера была обычная офисная машинка с Win7x64, сервер загружал процессор на 5-7%. Естественно, можно и больше, но конкретно с моим софтом каждый отдельный клиент создает в ОЗУ довольно большой внутренний контекст, и в 32-битном приложении сие вызовет скорый затык, но для меня вполне достаточно. 3. Что такое linux - не знаю, и пока не планирую восполнять сей пробел. Я бы на вашем месте написал тест, приближенный к требованиям пятки левой ноги, работы совсем немного. 4. Да. :) 5. Пишут, что это было раньше, до какой-то из версий библиотеки 2.*. Дальше я не читал, поэтому ничего более сказать не могу, ибо использовал zmq только в локальных сетях. Возможно, скоро ситуацию изменится, и мы вылезем в интернет, вот тогда и будем разбираться. 6. Мертвых клиентов рекомендуют "стряхивать". Или периодически(раз в сутки - в час-в минуту, по ситуации) , или когда их (мертвых) становится слишком (по мнению серверного софта) много. Делается тупым образом: сервер разрушает входящий сокет и создает новый, живые клиенты реконнектятся, мертвые - нет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.06.2017, 19:58 |
|
||
|
ZeroMQ - сокеты на стероидах, часть 3 (а для чего?).
|
|||
|---|---|---|---|
|
#18+
Антон Аксёнов 5) Где-то прочёл что опасно ZeroMQ смотреть в эти ваши интернеты, заDDOSят мол. Есть у кого опыт, соображения на этот счёт, правда защиты от мусора нет совсем? обычно это не актуально, nginx на внешку, как правило, решает такие проблемы - а что с ним делать, знает большинство админов ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.06.2017, 20:04 |
|
||
|
ZeroMQ - сокеты на стероидах, часть 3 (а для чего?).
|
|||
|---|---|---|---|
|
#18+
kealon(Ruslan)Антон Аксёнов 5) Где-то прочёл что опасно ZeroMQ смотреть в эти ваши интернеты, заDDOSят мол. Есть у кого опыт, соображения на этот счёт, правда защиты от мусора нет совсем? обычно это не актуально, nginx на внешку, как правило, решает такие проблемы - а что с ним делать, знает большинство админов подробнее - как nginx cможет прозрачно прокинуть коннект до zmq и тем более защитить от ddos? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.06.2017, 08:17 |
|
||
|
ZeroMQ - сокеты на стероидах, часть 3 (а для чего?).
|
|||
|---|---|---|---|
|
#18+
PPAподробнее - как nginx cможет прозрачно прокинуть коннект до zmq и тем более защитить от ddos? хотя бы вот так , хоть и experimental, но всё равно лучше чем напрямую. ещё где-то проекты были ну а как от ddos защищаться, это уже к админам nginx ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.06.2017, 09:07 |
|
||
|
ZeroMQ - сокеты на стероидах, часть 3 (а для чего?).
|
|||
|---|---|---|---|
|
#18+
А использовать очередь от Амазона? С одной стороны конечно стороннее решение, с другой вся головная боль о поддержке соотвествующей инфтраструкруты ложится на чужие плечи, а бесплатных сообщений в месяц там много на что хватить может. Мы использовали, правда в софте на Андроид, весьма неплохо работало. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.06.2017, 09:26 |
|
||
|
ZeroMQ - сокеты на стероидах, часть 3 (а для чего?).
|
|||
|---|---|---|---|
|
#18+
чччД, Спасибо за столь обстоятельный ответ! Что значит "вкомпиленый" - это не надо будет dll с собой таскать? Мы же про Delphi говорим, да? В любом случае, высылайте :) Coriolis inbox ru Спасибо! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.06.2017, 09:44 |
|
||
|
ZeroMQ - сокеты на стероидах, часть 3 (а для чего?).
|
|||
|---|---|---|---|
|
#18+
Антон АксёновЧто значит "вкомпиленый" - это не надо будет dll с собой таскать? Мы же про Delphi говорим, да? В случае с делфи таскать dll от zmq в любом случае придется, но она будет одна без dll-рантайма от микрософта. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.06.2017, 12:59 |
|
||
|
ZeroMQ - сокеты на стероидах, часть 3 (а для чего?).
|
|||
|---|---|---|---|
|
#18+
Антон АксёновчччД, Спасибо за столь обстоятельный ответ! Что значит "вкомпиленый" - это не надо будет dll с собой таскать? Мы же про Delphi говорим, да? В любом случае, высылайте :) Coriolis inbox ru Спасибо! "Вкомпиленный" == речь о рантайме SDK C++ MS VS 2015. Все теперь включено в libzmq.dll, больше не потребуются другие dll, типа msvcp120.dll и msvcr120.dll. Т.е., одну dll (libzmq.dll) все же таскать с собой придется. :) ... Выслал. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.06.2017, 13:01 |
|
||
|
ZeroMQ - сокеты на стероидах, часть 3 (а для чего?).
|
|||
|---|---|---|---|
|
#18+
чччД, PPA, А, понял, я и забыл про рантаймы :) А то я уж было подумал что есть какой-то джедайский способ компилить файлы для инклуда в проект))) А dll потаскать можно (хотя и не очень хочется конечно). Думаю хуки поставлю на CreateFile, ReadFile и буду грузить из памяти модуль, никто не пробовал так? Файлы на почту пока не пришли, если что. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.06.2017, 13:12 |
|
||
|
ZeroMQ - сокеты на стероидах, часть 3 (а для чего?).
|
|||
|---|---|---|---|
|
#18+
Антон Аксёнов, ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.06.2017, 13:24 |
|
||
|
ZeroMQ - сокеты на стероидах, часть 3 (а для чего?).
|
|||
|---|---|---|---|
|
#18+
чччД, Аттач 2 кб? вероятно гугл отрезал dll-ку лучше такие вещи кидать через облако или в архив с паролем сувать :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.06.2017, 13:47 |
|
||
|
ZeroMQ - сокеты на стероидах, часть 3 (а для чего?).
|
|||
|---|---|---|---|
|
#18+
Я так и не получил письмо, по скрину - адрес верный. Нигде нет, ни в папках со спамом, вообще нигде. Странно. Может, правда, gdrive, ydisck... ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.06.2017, 13:48 |
|
||
|
ZeroMQ - сокеты на стероидах, часть 3 (а для чего?).
|
|||
|---|---|---|---|
|
#18+
... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.06.2017, 14:03 |
|
||
|
ZeroMQ - сокеты на стероидах, часть 3 (а для чего?).
|
|||
|---|---|---|---|
|
#18+
чччД, Здорово, тут еще и обёртка высокоуровневая, спасибо! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.06.2017, 14:09 |
|
||
|
ZeroMQ - сокеты на стероидах, часть 3 (а для чего?).
|
|||
|---|---|---|---|
|
#18+
Антон АксёновчччД, Здорово, тут еще и обёртка высокоуровневая, спасибо! Громко сказано: обёртка самая минимальная: работа с только с самыми базовыми вещами (я добавлял функционал по мере надобности): создать контекст, создать сокет, сформировать составное сообщение, принять/отправить составное сообщение, создать "прикрепленный" поток (для работы поллера). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.06.2017, 14:21 |
|
||
|
ZeroMQ - сокеты на стероидах, часть 3 (а для чего?).
|
|||
|---|---|---|---|
|
#18+
чччД, На первых парах мне это и нужно, лишнее только будет отвлекать. В любом случае контроль целостности, очерёдности доставки, пакетирование логических каналов в один физический - делать буду сам. Мне от ZeroMQ нужы только сокеты которые умеют переподключаться в случае обрыва, ну т.е. все плюшки сокетов ZeroMQ. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.06.2017, 14:31 |
|
||
|
ZeroMQ - сокеты на стероидах, часть 3 (а для чего?).
|
|||
|---|---|---|---|
|
#18+
Антон Аксёнов, Пишете тут об успехах и проблемах... тоже интересно направление zmq + xp ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.06.2017, 14:45 |
|
||
|
ZeroMQ - сокеты на стероидах, часть 3 (а для чего?).
|
|||
|---|---|---|---|
|
#18+
Коллеги, прошу прощения что взбаламутил тему, понял что ZeroMQ мне мимо. У меня по техзаданию есть некие Состояния. Эта такая штука которую протокол отправки данных должен считать (сам!) в самый послелдний момент перед реальной отправкой пакета данных в сеть (в буфер сетевого драйвера). Понятно для того чтобы второй стороне ушли как можно более свежие данные и чтобы небыло спама. А у 0MQ концепция другая совсем, там к очереди в частности и к низкоуровневым сокетам в целом не пускают. Всплакнул, ушёл курить ICS, он ближе к железу... А под никсы придётся lNet курить, (на котоые автор забил). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.06.2017, 14:30 |
|
||
|
ZeroMQ - сокеты на стероидах, часть 3 (а для чего?).
|
|||
|---|---|---|---|
|
#18+
Антон Аксёнов, и что ж вы такое делаете-то? ... ... Вчерась в одном из подразделений РЖД запустили систему на базе zmq, с перепугу заранее опций для тюнинга понавтыкали, а оно и так завелось, протестировали потенциально тяжелые случаи вроде кратковременных и долговременных обрывов связи, а также массовой заливки данных, и домой разъехались, сейчас в окошко на ураган смотрю... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.06.2017, 14:50 |
|
||
|
ZeroMQ - сокеты на стероидах, часть 3 (а для чего?).
|
|||
|---|---|---|---|
|
#18+
чччД, Ничего адски-специфичного, просто интерфейс. -много прогресс-баров (наша БД позволяет а мы этим вовсю пользуемся.) -много таблиц "я покажу тебе ВСЕ строки" с большим бегунком, но грузящие только нужные строки с сервера, соотвтетсвенно при скроле надо считать только действительно те строки на которые юзер видит в гриде. Тут главная мера ввести задержку, так сейчас и работает, но если сам сетевой движок будет брать текущую позицию (опосредованно через состояние) то эту задержку можно сильно уменьшить, визуально выглядит очень круто. ... Отдельная песня, стандартный аргумет "зачем показывать сразу всё, покажи по буквам алфавита/категориям пусть юзер начнёт фильтровать и результат уже показывай" и т.д., на самом деле наболело - кажыдй пытается придумать аргументы что такой подход неверн, но он востребован в реальной жизни, пользователи его любят (потому что удобный). Чем он удобен: пользователь ищет позицию в номенклатуре, он не помнит её название (либо как точно пишется) но хорошо знает что по алфавиту она следует за точно известной ему позицией (или перед ней). Профит, он ищет известную ему позицию и перемещает курсор вверх/вниз. Такая схема работает у нас годами (скоро десятилетиями), сломать её - это ну я не знаю с чем сравнимо, да ни с чем))) Такой большой абзац потому что, повторюсь, наболело) ... -в таблицах есть тяжелые для подсчёта/передачи ресурсы, при скроле надо считать только действительно те строки на которые юзер смотрит, то же самое что строки - только задержка перд сменой состояния чуть больше. -В дальних планах передача видеопотока, тут то же самое - кадр это состояние: один поток обновляет состояние а другой считывает и передаёт в сеть - в итоге получаем потерю кадров вместо переполненного буфера при кратковременных затыках с сетью (понятно что тут тоже будет переполненный буфер, потому что отправляющая сторона только через heartbeat interval поймёт что что-то не так и перестанет отправлять, но тут буфер будет расти небольшой интервал а в zmq по WaterMark) Кстати, а WaterMark не поможет ли мне опосредованно понять что сетевой буфер отправки переполнился? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.06.2017, 15:14 |
|
||
|
ZeroMQ - сокеты на стероидах, часть 3 (а для чего?).
|
|||
|---|---|---|---|
|
#18+
Т.е. если я поставлю WaterMark в 1 (что-то маленькое), поулчится 0mq не вернёт мне управления пока предыдущий пакет действительно не удёт? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.06.2017, 15:18 |
|
||
|
ZeroMQ - сокеты на стероидах, часть 3 (а для чего?).
|
|||
|---|---|---|---|
|
#18+
Антон Аксёнов, у меня тоже все записи сразу клиент видит (вернее, он так думает, что видит), совсем просто: от сервера сперва получаешь списик id's - очень быстро (1млн id's - всего лишь 4 мегабайта), при отображении записей в окне я знаю (мне об этом сообщает компонент отображения) диапазон id's для показа - только записи с этими id's я и подгружаю в кэш. Никакого zmq, использую Firebird & fib+, в качестве средства отображегия - VTV и DevEx, они умеют работать в таком режиме практически "искаропки". ...хотя, если у тебя на клиенте показывается не миллион, а миллиард записей - такой способ уже не годится: 4Гб данных id's тянуть на клинта не гут. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.06.2017, 15:47 |
|
||
|
|

start [/forum/topic.php?fid=58&msg=39480424&tid=2039957]: |
0ms |
get settings: |
8ms |
get forum list: |
17ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
170ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
68ms |
get tp. blocked users: |
1ms |
| others: | 217ms |
| total: | 499ms |

| 0 / 0 |
