
Wingman
31.08.2018
14:37:20
спасибо

Roman
31.08.2018
14:37:37
а кто основатель канала тут?

Mykyta
31.08.2018
14:37:45
А посоветуйте плз.
Есть у меня штука, вынесенная в отдельный сервис: она будет ходить по различному оборудованию и собирать с него кучу самых разнообразных данных.
В результате - структурированные однообразные ответы, либо ошибка.
В неё пулять задание (объекты для обхода) будет какая-то другая штука.
Так вот, думаю я о том, как и что лучше сделать: делать http(s)-запрос с нужными параметрами, и ждать ответ, либо поднимать tcp-сессию и гонять туда-обратно нужные данные.
Учитывая, что опрос одной железки может и на 5-10 минут затянуться, а таких задания может быть несколько тысяч в течение 5 минут - оверхед (в смысле сложности) с сокетами и своим мини-протоколом может быть оправдан...
rabbitmq, nsq, nats.io (nats-streaming), kafka, zmq на выбор

Roman
31.08.2018
14:37:59
@twentydraft ?

Google

Мерлин
31.08.2018
14:56:48

Roman
31.08.2018
15:01:58
Все ок, просто уточнил

Danil
31.08.2018
15:28:17
заблочили в старой группе, думаю за какие грехи

Виктор
31.08.2018
15:28:49
заблочат всех, чтобы все в этот канал переехали. там же Даниил Подольский запинил сообщение соответствующее

Sparrow
31.08.2018
15:29:36

Виктор
31.08.2018
15:30:03
да, начали с самых грешных. я вот питонист, поэтому меня заблочили в первой партии

Danil
31.08.2018
15:30:09

Sparrow
31.08.2018
15:31:37

Виктор
31.08.2018
15:31:57

Sparrow
31.08.2018
15:33:06
Я на яваскрипте, но это только ради денег!

Roman
31.08.2018
15:43:18
А посоветуйте плз.
Есть у меня штука, вынесенная в отдельный сервис: она будет ходить по различному оборудованию и собирать с него кучу самых разнообразных данных.
В результате - структурированные однообразные ответы, либо ошибка.
В неё пулять задание (объекты для обхода) будет какая-то другая штука.
Так вот, думаю я о том, как и что лучше сделать: делать http(s)-запрос с нужными параметрами, и ждать ответ, либо поднимать tcp-сессию и гонять туда-обратно нужные данные.
Учитывая, что опрос одной железки может и на 5-10 минут затянуться, а таких задания может быть несколько тысяч в течение 5 минут - оверхед (в смысле сложности) с сокетами и своим мини-протоколом может быть оправдан...
HTTP/1.1 ни в коем случае, он не умеет multiplex.
HTTP/2 можно, он не будет блокировать другие запросы
TPC/IP можно, но сложно
а ещё можно https://github.com/qbeon/webwire-go, это WebSocket со всеми удобствами

Wingman
31.08.2018
15:43:52
Благодарю, схоронил)

Roman
31.08.2018
15:45:32
А посоветуйте плз.
Есть у меня штука, вынесенная в отдельный сервис: она будет ходить по различному оборудованию и собирать с него кучу самых разнообразных данных.
В результате - структурированные однообразные ответы, либо ошибка.
В неё пулять задание (объекты для обхода) будет какая-то другая штука.
Так вот, думаю я о том, как и что лучше сделать: делать http(s)-запрос с нужными параметрами, и ждать ответ, либо поднимать tcp-сессию и гонять туда-обратно нужные данные.
Учитывая, что опрос одной железки может и на 5-10 минут затянуться, а таких задания может быть несколько тысяч в течение 5 минут - оверхед (в смысле сложности) с сокетами и своим мини-протоколом может быть оправдан...
суть в том что TCP/IP по умолчанию не умеет multiplex REQ-REP, ошибки, аутентификацию и т.д. и т.п.
а webwire всё это предоставляет в довольно простом интерфейсе, имеется клиент и сервер на Go и клиент на JS

Google

Wingman
31.08.2018
15:45:49
Примерно понятно)

Roman
31.08.2018
15:47:32

Wingman
31.08.2018
15:48:43

Roman
31.08.2018
15:48:45

Roman
31.08.2018
15:50:54

Roman
31.08.2018
15:52:06

Wingman
31.08.2018
15:52:22

Лемур
31.08.2018
15:53:54
громоздко
Зато устойчиво. Сервисы друг от друга отвязываются.

Roman
31.08.2018
15:54:02

Лемур
31.08.2018
15:54:12
ДЦ сгорит

Roman
31.08.2018
15:54:22

Лемур
31.08.2018
15:54:47
Надо все риски учитывать. И смотреть с чем ты можешь смирится, чтобы не оверхедить.

Roman
31.08.2018
15:57:19
а зачем в этой задаче мультиплексирование?
хмм, момент, ещё раз перечитал внимательно. Тут говорится о нескольких тысячах параллельных запросов. Если речь идёт о 1к конкурентных клиентов то да мультиплекс особо не нужен.... НО!
есть огромное НО: но если вдруг таки понадобится одновременно с 1 клиента посылать например 2 запроса а у нас HTTP/1.1 то нам кранты, ибо если первый запрос заблокирует связь на 5-10 минут, то нам придётся создавать для каждого запроса отдельное подключение, а это 2х нагрузка на сервер
если-же изначально у нас имеется мултикплекс, то такая проблема исключена в принципе, запросы не блокируют друг друга

Виктор
31.08.2018
15:58:21
воркер это инстанс приложения, вроде

Roman
31.08.2018
15:58:32


Roman
31.08.2018
16:00:02
Зачем? Что мешает принимать и отдавать пачкой?
пачками больше кода и сложнее получится, ты считай переизобретаешь в таком случае мультиплекс, который в webwire имеется по умолчанию. Да и работать оно будет гораздо хуже..
например у тебя 2 типа запроса: первый занимает 5-10 минут, второй секунд 30, так вот без мультиплекса придётся в 2 соединения шмалять, ибо первый блокирует подключение к чертям на 10 минут и второй не сможет одновременно в 30 секундных интервалах гоняться
или я что-то не так понял?

Google

Wingman
31.08.2018
16:01:24

Pavel
31.08.2018
16:01:40

Roman
31.08.2018
16:01:47

Roman
31.08.2018
16:01:48

Roman
31.08.2018
16:02:15

Wingman
31.08.2018
16:02:26

Roman
31.08.2018
16:02:32
Кажжый - тысячи
тогда тебе обязательно нужен мультиплект, без него просто не будет работать либо придётся создавать тысячи соединений и это маразм.

Roman
31.08.2018
16:03:15

Roman
31.08.2018
16:03:48

Wingman
31.08.2018
16:03:58
Ну не запросов

Roman
31.08.2018
16:04:07

Wingman
31.08.2018
16:04:08
1000 "выдаваемых заданий"
Можно и в одном запросе
Но дико не нравится

Roman
31.08.2018
16:04:27

Pavel
31.08.2018
16:04:47
хм?
Без мультиплекса — збс.

Roman
31.08.2018
16:05:09
Можно даже взять какой-нибудь mysql/postgres и в нем хранить

Pavel
31.08.2018
16:05:10
И H1 — one love.

Google

Roman
31.08.2018
16:05:41
1000 "выдаваемых заданий"
ааа, ну это конечно другое дело.
тогда да, мультиплекс будет не нужен, но, повторюсь, если он вдруг понадобится по каким либо причинам в будущем (клеитн теперь не только проверяет статус 100500 железок, но и статус XYZ) тогда придётся всё переписывать, ибо невыгодно выйдет без мултиплекса
я о том что мультиплекс хорошо иметь за-пазухой на всякий пожарный

Pavel
31.08.2018
16:05:59
H2 по сути только глупым браузерам нужен, где вшит лимит 2 подключения на домен ?

Roman
31.08.2018
16:06:04

Roman
31.08.2018
16:06:32

Pavel
31.08.2018
16:06:35
В других вариантах от него символический профит, если он вообще есть.

Roman
31.08.2018
16:06:37

Pavel
31.08.2018
16:06:57

Roman
31.08.2018
16:07:03

Admin
ERROR: S client not available

Roman
31.08.2018
16:08:35
Без мультиплекса — збс.
ну раз так, тогда и HTTP/2 не нужен и вообще дураки его изобрели по непонятной причине))
мультиплекс это очень важная фича, и я не уверен говорим ли мы действительно об одном и том-же

Pavel
31.08.2018
16:09:24

Daniel
31.08.2018
16:09:39
при чем тут константа?

Roman
31.08.2018
16:10:12

Wingman
31.08.2018
16:10:27
Чем?
1) громоздкостью)
2) сдох "выдающий задания", а "исполнитель" результаты так и держит в памяти. Надо крутить таймауты. Геморройно и громоздко

Daniel
31.08.2018
16:10:27
что - нет? не важная?

Pavel
31.08.2018
16:10:29

Daniel
31.08.2018
16:10:48
я чет в этот юмор не врубаюсь

Pavel
31.08.2018
16:11:18
Гугл изобрёл Quic чтобы ускорить свой сайтик.

Daniel
31.08.2018
16:11:56
ну?
они и браузер свой изобрели, чтобы держать сообщество за яйца

Google

Roman
31.08.2018
16:12:22

Roman
31.08.2018
16:12:28

Wingman
31.08.2018
16:13:21

Roman
31.08.2018
16:13:42

Pavel
31.08.2018
16:13:46

Roman
31.08.2018
16:14:02
еще одно поле в табличке, типа job_owner_id
главное в такой схеме, что сами воркеры могут быть вообще на разных машинах даже

Roman
31.08.2018
16:14:42

Wingman
31.08.2018
16:14:47
Ладно, я придираюсь)

Roman
31.08.2018
16:15:43

Roman
31.08.2018
16:16:09

Roman
31.08.2018
16:16:25
ну и да, на long fat network да с потерями запросто получишь невозможность утилизировать всю полосу
а скорее, вообще все будет еле ползать

Roman
31.08.2018
16:17:12
они-же все встанут по идеи

Roman
31.08.2018
16:17:28
я думаю, @irc0p может больше вариантов рассказать когда такое бывает