|
Транспорт RabbitMQ & Web-сервисы | ☑ | ||||||
---|---|---|---|---|---|---|---|---|
0
Hisoka
19.05.20
✎
07:27
|
Коллеги приветствую, поделитесь пожалуйста опытом.
Есть центральная база и 1000 периферийных. На данный момент обмен происходит сообщениями через Rabbitmq. Появилась задача передавать заказы, которые создаются в периферийных базах, в центральную более быстрым способом По примерным расчетам, около 50 заказов может быть создано одновременно, соответственно одновременно 50 WEB запросов на передачу в центральную базу. Есть ли у кого опыт использования Web-сервисов на подобные задачи, либо все же использовать старого доброго кролика?.. Заранее спасибо за советы. |
|||||||
1
Комрад1
19.05.20
✎
07:41
|
А что, у кролика такая низкая скорость, что веб-сервисы быстрее будут?
|
|||||||
2
Hisoka
19.05.20
✎
07:44
|
Там сейчас раз в 20 минут передается операционная деятельность. Вариант сделать отдельную очередь и вычитывать ее быстрее тоже рассматривается.
К скорости кролика - вопросов нет. |
|||||||
3
Комрад1
19.05.20
✎
07:47
|
(2) Ну тогда зачем использовать другую технологию, если имеющаяся устраивает? В чём вы видите потенциальный выигрыш от Web-сервисов?
|
|||||||
4
Hisoka
19.05.20
✎
07:52
|
(3) Передача заказов планируется под интернет магазин. То есть объемы данных совсем маленькие.
Через кролик же передается более большой объем информации, и пока не редки случаи что обмен через кролика иногда ложится (проект в активной разработке, группой разработчиков. Бывает что случаются проблемы при обработке входящий и исходящих сообщений, очередь забивается и потом очень долго рассасывается) |
|||||||
5
Hisoka
19.05.20
✎
07:54
|
(3) таким образом пытаюсь чуть-чуть повысить отказоустойчивость. Что-то мне подсказывает что веб сервис будет более лучшим решением для моей задачи.
|
|||||||
6
Комрад1
19.05.20
✎
07:59
|
(4) Как-то "маленький объем" и "50 заказов одновременно" не бьётся. Если не уверены в надежности кролика, то рассмотрите HTTP сервисы ещё, там диагностика проблем проще.
|
|||||||
7
Hisoka
19.05.20
✎
08:04
|
(6) Понял, спасибо за совет
|
|||||||
8
Hisoka
19.05.20
✎
08:05
|
(6) Заказ не типовой, обрезанный. Очень мал по объему
|
|||||||
9
Garykom
гуру
19.05.20
✎
08:38
|
(2) Нужно сделать отдельную очередь.
Точнее ее надо всегда делать когда не требуется последовательность передачи сообщений. |
|||||||
10
Garykom
гуру
19.05.20
✎
08:39
|
(0) С кроликом как работаете через адаптер или пулю или еще как?
|
|||||||
11
Garykom
гуру
19.05.20
✎
08:48
|
(9)+ Да если сообщений не много то можно и одну очередь использовать с приоритетами сообщений.
Но имхо на 1000 периферийных лучше разные очереди. |
|||||||
12
arsik
гуру
19.05.20
✎
09:17
|
(0) Для вас 1с создала https://wonderland.v8.1c.ru/blog/integratsionnaya-shina/
|
|||||||
13
Комрад1
19.05.20
✎
09:35
|
(12) Использовать "сырой" продукт без опыта промышленной эксплуатации - так себе решение.
|
|||||||
14
Hisoka
19.05.20
✎
09:52
|
(12) оба продукта на 1с, тут наверное этот инструмент не совсем подойдет. Но все равно спасибо за предложение
|
|||||||
15
Hisoka
19.05.20
✎
09:54
|
(11) на каждую базу свою очередь ?
|
|||||||
16
mzelensky
19.05.20
✎
09:55
|
(15) На каждое "направление" свою очередь
|
|||||||
17
PR
19.05.20
✎
10:58
|
(0) Лучше научиться готовить Кролика, а не менять технологии по сто раз на дню
|
|||||||
18
Hisoka
19.05.20
✎
11:24
|
(17) HTTP сервисы тоже используются, тут дело за выбором на конкретную задачу
|
|||||||
19
H A D G E H O G s
19.05.20
✎
11:30
|
Почитал про rabbit mq и так и не понял, нафига он нужен.
|
|||||||
20
Комрад1
19.05.20
✎
11:32
|
(19) Для задач, подобных этой, и не нужен, в общем то.
|
|||||||
21
Garykom
гуру
19.05.20
✎
11:37
|
(19) Для удобного обмена объектами-сообщениями.
|
|||||||
22
Garykom
гуру
19.05.20
✎
11:39
|
(20) Это примерно как RDP|тонкий клиент vs РИБ
|
|||||||
23
timurhv
19.05.20
✎
11:41
|
(19) Для высоконагруженных систем и с большим количеством обменов. Обмен не упадет между системами, если 1С базу решили обновить. Все сообщения обмена будут сохранены в RabbitMQ.
RabbitMQ https://www.youtube.com/watch?v=0xoT0-TzhZ4 Хранение изменений объектов в Kafka: https://www.youtube.com/watch?v=BqkJaidyno0 Nats (отправка за 3 секунды, 1С разбирает за 9 мин): https://www.youtube.com/watch?v=P-J2ohPmhnw |
|||||||
24
Garykom
гуру
19.05.20
✎
11:45
|
(15) На каждую базу своя входящая очередь да и можно несколько очередей на базу чтобы разделить потоки.
Правильная архитектура точек входа/очередей/биндингов это продумывать надо под условия. |
|||||||
25
Комрад1
19.05.20
✎
11:46
|
(22) Нет, если бы автору надо было заказ прогрузить во все 1000 переферийных баз в реальном времени, тогда кролик вполне был бы уместен.
|
|||||||
26
H A D G E H O G s
19.05.20
✎
11:47
|
(23) Я думал - какая-нибудь bulk insert напрямую в базу, а это всего лишь транспорт.
|
|||||||
27
Garykom
гуру
19.05.20
✎
11:47
|
(25) Ты же наверно понимаешь что на заказ из каждой 1000 периферийных баз надо ответить?
|
|||||||
28
Garykom
гуру
19.05.20
✎
11:48
|
(26) Угу всего лишь транспорт и с напрямую в базу приходится отдельно извращаться.
Ну можно с многопотчностью на фоновых |
|||||||
29
Комрад1
19.05.20
✎
11:51
|
(27) И что из этого следует? 50 заказов в секунду в пике - это какая-то запредельная нагрузка, что-ли?
|
|||||||
30
Garykom
гуру
19.05.20
✎
11:52
|
(29) У ТС уже есть кролик - не вижу смысла если задачу можно решить на нем без лишних сущностей.
Если бы его не было то да есть смысл выбирать веб-сервисы (еще вопрос какие ибо их дофига разных) или кролика внедрять. |
|||||||
31
Комрад1
19.05.20
✎
12:06
|
(30) Топором, конечно, можно забивать гвозди. Но лучше использовать молоток.
|
|||||||
32
PR
19.05.20
✎
12:11
|
(19) Брокер сообщений
Типа КД 3, только трехзвенка Например, Пете нужно сообщить всем интересующимся о том, что Танька из 5 квартиры девица легкого поведения Но Петя не хочет бегать и спрашивать у каждого, интересна ли ему эта информация И не хочет отвечать всем обращающимся по этому вопросу в любое время дня и ночи Поэтому он пишет в подъезде на стене эту информацию, а уж все интересующиеся читают ее там |
|||||||
33
Garykom
гуру
19.05.20
✎
12:11
|
(31) В условиях ограничения веса предпочту взять только топор с обухом подходящим для забивки гвоздей.
Или ты умеешь молотком валить деревья? Тор ты это? |
|||||||
34
PR
19.05.20
✎
12:12
|
(27) Кролик переваривает десятки тысяч обращений в секунду
|
|||||||
35
Комрад1
19.05.20
✎
12:12
|
(33) Ну если с расчетом, что лет через 5 после забивания гвоздей вдруг лес валить понадобится :)
|
|||||||
36
Garykom
гуру
19.05.20
✎
12:14
|
(35) Нет тут фишка что количество технологий в одной конфе возрастает - с поддержкой проблема.
|
|||||||
37
Garykom
гуру
19.05.20
✎
12:14
|
(36)+ Хотя если уже есть и кролик и веб-сервисы в конфе то глубоко пофиг да.
|
|||||||
38
Комрад1
19.05.20
✎
12:17
|
(36) Я больше про вопрос выбора технологий для реализации конкретных задач, думать, что будет, если "вдруг через 5 лет компания вырастет в мильён раз" не очень разумно
|
|||||||
39
Garykom
гуру
19.05.20
✎
12:21
|
(38) В мильён раз да, но зачем в два раза увеличивать технологическую сложность то?
Я бы понял если например нужен именно онлайн и офлайном через кролика никак, тогда да только сервисы. |
|||||||
40
Garykom
гуру
19.05.20
✎
12:23
|
(39)+ В этом случае нечто вроде gRPC на ура идет но это еще сложнее.
|
|||||||
41
Garykom
гуру
19.05.20
✎
12:25
|
Имхается шина данных в 1С уже появилась, со временем и до gRPC c protobuf из коробки дойдет.
JSON же добавили хотя XML до сих пор в строю. |
|||||||
42
Комрад1
19.05.20
✎
12:26
|
(39) С Http-сервисами знакомо большинство 1С-ников, а вот с кроликами/кафками и т.п. - единицы. Использование кролика без необходимости - зачем? Если бы автора устраивала работа кролика, или была возможность самому сделать так, чтобы устраивала - вопроса здесь не появилось бы.
|
|||||||
43
Garykom
гуру
19.05.20
✎
12:27
|
(41)+ Хотя не удивит что в очередной раз через одно место как с ЖР который недо sqlite блин.
Лучше бы нативную поддержку sqlite впилили в платформу а не только древний xbase-dbf |
|||||||
44
Garykom
гуру
19.05.20
✎
12:27
|
(42) Дык (30)
|
|||||||
45
Garykom
гуру
19.05.20
✎
12:28
|
(42) Или ты предлагаешь отказаться ТС от кролика совсем и весь обмен перевести на веб-сервисы? Нюню.
|
|||||||
46
Комрад1
19.05.20
✎
12:33
|
(45) У ТС альтернатива - трахаться с кроликом, или сделать надёжно работающий вариант. Тут уж кому как больше нравится :)
|
|||||||
47
Garykom
гуру
19.05.20
✎
12:39
|
(46) Думаю просто ты пока кролика не освоил и находишься на этапе ура я освоил веб-сервисы ))
|
|||||||
48
Комрад1
19.05.20
✎
12:45
|
(47) Ты тему целиком читал, вообще? Перечитай (3) и (4) :))
|
|||||||
49
spock
19.05.20
✎
13:21
|
Лучше шина, но с отдельными очередями.
Проще пояснить от обратного: в центре нужно будет иногда тушить базу на регламентные процедуры (обновление, чистка, апгрейд железа, прочее) и, при схеме с WS, все эти 1000 точек будут ждать подъема центра. ХЗ как реализовано в точках, может там кто-то должен дрюкать кнопку "Отправить" и его будет злить ошибка отсутствия связи с центром. Ок, центр поднялся и одновременно большая толпа точек начнет пушить свои заказы. Центру поплохеет от такой активности. Если будет шина - заказы от точек уходят и копятся в шине, центр поднялся после регламентных процедур и в нормальном режиме начал обходить очереди и забирать заказы. Rabbitmq |
|||||||
50
Комрад1
19.05.20
✎
13:25
|
(49) А если шина упала/на регламентном обслуживании, то что?
|
|||||||
51
novichok79
19.05.20
✎
13:27
|
естественно шина данных, я бы выбрал Kafka, в нашем случае это было быстрее ссаного кролика.
|
|||||||
52
novichok79
19.05.20
✎
13:27
|
проголосовал
Rabbitmq |
|||||||
53
Cyberhawk
19.05.20
✎
13:28
|
Делай на Кафке, Кролик тупой
|
|||||||
54
novichok79
19.05.20
✎
13:36
|
(50) для этого есть логи. веб сервисы тоже могут упасть.
|
|||||||
55
novichok79
19.05.20
✎
13:42
|
Kafka предлагает гораздо более высокую производительность, чем брокеры сообщений, такие как RabbitMQ. Она использует последовательный дисковый ввод-вывод для повышения производительности, что делает ее подходящим вариантом для реализации очередей. Она может обеспечить высокую пропускную способность (миллионы сообщений в секунду) при ограниченных ресурсах, что необходимо для случаев использования больших данных.
даже гугол знает правду. |
|||||||
56
Комрад1
19.05.20
✎
13:43
|
(54) Могут. Я про то, что отказоустойчивость не является важным преимуществом кролика.
|
|||||||
57
Комрад1
19.05.20
✎
13:44
|
(55) О, а расскажи про 1С с миллионами сообщений в секунду?
|
|||||||
58
novichok79
19.05.20
✎
13:48
|
(57) да пожалуйста. реальный кейс, который я автоматизировал. есть база на 1С, а есть парсер, который собирает данные в реальном времени и кладет в кафку, база на 1С забирает эти данные из кафки регл. заданием и пишет в базу в потоках.
|
|||||||
59
Garikk
19.05.20
✎
13:52
|
(58) и прям миллион сообщений в секунду?
обычно всё упирается не в скорость брокера, а в сами обработчики |
|||||||
60
novichok79
19.05.20
✎
13:53
|
(59) сбор данных - 1,5 млн в день. проверка актуальности ссылок - 10-20 млн. в день.
|
|||||||
61
Комрад1
19.05.20
✎
13:55
|
(60) Это и близко не "миллионы в секунду"
|
|||||||
62
novichok79
19.05.20
✎
13:58
|
(61) ок, но под задачу из (0) Kafka идеально подходит, т. к. она еще хранит какое-то время данные, а у кролика насколько я помню очередь закончилась и уссё.
|
|||||||
63
Garikk
19.05.20
✎
13:59
|
(60) 20млн в день это гдето 230 в секунду...вообще ерунда с точки зрения любой службы очередей
у меня ща на работе больше 2тыс в секунду...и загрузка на хосте кролика меньше 15% ...тупо не успевают серваки разбирать (62) кролик настраивается по разному... минус у него в том что он немногопоточный, в смысле многопроцессорность не умеет |
|||||||
64
Cyberhawk
19.05.20
✎
14:10
|
(63) "кролик настраивается по разному" // Подскажешь, как Кролика настроить, чтоб он продолжал хранить в себе уже успешно отданные сообщения?
|
|||||||
65
Комрад1
19.05.20
✎
14:12
|
(62) Подходит. Только, эту-же задачу можно решить ещё несколькими не менее подходящими, но более простыми, способами.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |