Имя: Пароль:
1C
1С v8
Высоконагруженный веб-сервис. Вариант реализации в 1С?
0 Snork
 
06.05.21
09:55
У кого был опыт реализации поделитесь знаниями..
Какой подход окажется лучше:
1. с "шиной" в 1С
2. без "шины" в 1С

Шина - 2 отдельных регистра сведений 1-на входящие данные; 2-на исходящие данные
и 2 регл задания на разбор очереди из регистров сведений

Ну и еще 1 регистр сведений журнал (лог)
1 PLUT
 
06.05.21
09:58
(0) веб-сервис? а почему не http-сервис?
2 Волшебник
 
06.05.21
09:58
3 PLUT
 
06.05.21
10:00
то, что в России - высоконагруженный сервис, в Китае - неудачный день (алибаба и jd)
4 Bigbro
 
06.05.21
10:11
на мой взгляд 1с не инструмент для реализации высоконагруженных решений.
для каждого инструмента есть своя область, и тащить 1с повсюду совсем не стоит.
все равно упретесь в потолок при нагрузках на порядок ниже альтернативных вариантов, и смысл?
5 Механик
 
06.05.21
10:12
А что вообще подразумевается под высоконагруженным сервисом? И какой "предел" у 1С?
6 arsik
 
гуру
06.05.21
10:15
(2) Все про это говорят, но никто не видел в живую. Я пытался найти информацию - 0.
7 Snork
 
06.05.21
10:27
(6) у меня есть, остался от прошлых разработчиков. но видимо подходит к пределу..
Надо, видимо, переделывать
8 Snork
 
06.05.21
10:28
(4) первичные данные в 1С, разные виды внешних источников запрашивают/дают данные
9 Snork
 
06.05.21
10:28
(1) сейчас веб. новый будет http
10 Bigbro
 
06.05.21
10:28
(7) главное обеспечить возможность параллельной обработки. тогда можно будет масштабировать горизонтально запуская новые экземпляры обработчиков событий на шине.
11 Snork
 
06.05.21
10:30
(2) та учетная база с 0ля написана, предыдущими умельцами под отраслевую специфику.  режим совместимости 8.3.7
12 Snork
 
06.05.21
10:32
(10) пока 1 на прием и 1 на отдачу. в базе еще 70 пользователей текущих работают 24/7
тут есть параллельно, то регл задания могут пользователей парализовать, надо пробовать
13 Фрэнки
 
06.05.21
10:32
повторю вопрос из (5)

А что вообще подразумевается под высоконагруженным сервисом? И какой "предел" у 1С?
14 Snork
 
06.05.21
10:35
(13) самому интересно сколько 1С вытянет? у кого какой опыт?
сейчас 30т запросов в сутки, объем растет, добавляются новые виды интеграций
15 Волшебник
 
06.05.21
10:38
(14) Это менее 1 запроса в секунду. Конечно, надо понимать цену одного запроса, чтобы присвоить системе почётное звание "высоконагруженной".
16 END
 
06.05.21
10:40
(14) Вот, можешь ознакомиться. Реально высоконагруженная система. https://infostart.ru/1c/articles/1234830/
17 Snork
 
06.05.21
10:40
(15) в секунду бывает до 4-5 запросов, запросы не равномерно распределены по суткам, а в основном в интервале 8:00-20:00
18 mTema32
 
06.05.21
10:41
(0) Шина - 2 отдельных регистра сведений 1-на входящие данные; 2-на исходящие данные
и 2 регл задания на разбор очереди из регистров сведений

Сервер только нормальный соберите и все потянет 1С.
19 END
 
06.05.21
10:41
(17) В этой же статье и результаты исследований работы 1С с http сервисами.
20 Snork
 
06.05.21
10:41
(16) высоконагруженная для 1с и не для 1С разные понятия. Топик про 1С
21 Snork
 
06.05.21
10:42
(18) уже. кластер из 2 пока
22 END
 
06.05.21
10:44
(20) Ты статью то читал? Там как раз разбор, почему 1С не потянул такие нагрузки и пришлось использовать вспомогательные звенья.
23 END
 
06.05.21
10:45
(20) Ребята изначально то все хотели на чистом 1С организовать.
24 Волшебник
 
06.05.21
10:46
(17) Надо смотреть цену запроса: сколько нужно выполнить работы, чтобы ответить на единичный средний запрос. Например, сколько и каких запросов к БД, какой объём данных ответа.

В какой-то момент станет понятно, что надо поставить кучу кэширующих систем/баз, в 1С передавать только самые сложные.
25 Snork
 
06.05.21
10:46
(22) почитаю. у меня первичная система - 1С. все оперативные обмены будут в ней, возможно для ресурсоемких придётся что-то изобретать
26 mTema32
 
06.05.21
10:49
(1) Я так и не понял в чем принципиальное отличие веб-сервисов от http.
(25) Мы для ресурсоемких обменов фоном делаем все процедуры, а результат кладем отдельно - его и забирает клиент сервиса.
27 Snork
 
06.05.21
10:52
(26) в 1с код для http намного проще писать, сопровождать, расширять, чем для web сервиса
Когда много фоном запишешь в БД, пользователей замедляешь жизнь
28 mistеr
 
06.05.21
10:52
(4) Я конечно рискую кого-то обидеть, и могу оказаться неправ, но по-моему смысл простой: кроме 1С, ничего не знаешь, а денег урвать за заказ хочется.
29 PLUT
 
06.05.21
10:54
(26) веб-сервисы "тормозные", http пошустрее работают, но с авторизацией и безопасностью нужно заморочиться, если систему "наружу" голой ж.пой выставлять для клиентов
30 Василий Алибабаевич
 
06.05.21
10:55
(26) Приципиально одна весчЪ. Для ВЕБ-сервиса всегда выполняется модуль сеанса. Для каждого запроса. И если оно громоздкое - сушите весла. Для http этого нет.
Вторая достаточно принципиальная весчЪ - для http не выполняется стандартная процедура авторизации.
31 PLUT
 
06.05.21
10:55
(28) иногда 1С - это "мастер-система", а http - удобный механизьм интригации между
32 Snork
 
06.05.21
10:55
(28) другой случай. в наследство достался Франкенштейн на 1С, ну и бюджет не безлимитный.
Тут вопрос какой предел у 1С, если по нормальному сделать. Тогда и понять можно какой запас, перспективы
33 mistеr
 
06.05.21
10:55
(24) Так в том-то и дело, что количество работы зависит от дизайна системы, и используемых технологий. Я более чем уверен, что Nginx + NоSQL база решит задачу ТС за x0.1 денег.
34 PLUT
 
06.05.21
10:58
(30) для http всегда инициализируются параметры сеанса ( «тяжелый» обработчик УстановкаПараметровСеанса()), другое дело в http можно повторно сеансы использовать, тем самым сократить расходы на инициализацию
35 Snork
 
06.05.21
10:58
(33) допустим ставим Nginx + NоSQL, но все равно все это дело должно в 1С будет обмениваться. Получается лишнее звено в цепи и соответствующие накладные расходы
36 PLUT
 
06.05.21
11:01
(35) покури MQTT-брокер ("кролика" того же) для гарантированной доставки сообщений, или если запрос потеряется, ну и х@р с ним
37 Snork
 
06.05.21
11:02
(36) я не про это. все равно писать придётся обмен 1С и NоSQL с обработкой большого кол-ва запросов
38 mistеr
 
06.05.21
11:04
(35) Ну пусть обмениваются в off-peak. С передачей большого количества данных малым количеством запросов 1С вполне справится. А вот наоборот — нет.
39 Василий Алибабаевич
 
06.05.21
11:06
Непонятны задачи обмена. Если обмен односторонний - оджин подход. Двусторонний - совсем другой.
40 vde69
 
06.05.21
11:08
(32) ну смотри, расписываю на пальцах:

1. 1с оптимизирована для чтения а не для записи, то есть это "бек" система
2. тебе нужно ее интегрировать с "фронт" системой, которой важно быстро писать
3. критичным местом является не получить отказ (блокировку или любой другой) при записи из "фронта"

для решения потянет или нет - берешь свое решение 1с и загружаешь его на 100% записью (тестовых данных), от туда получаешь время самой большой транзакции и делишь 24 часа на это время, получится максимум записей за сутки
далее надо понимать не равномерность запросов, для офисной работы эту цифру надо разделить на 3 или на 4

это будет ограничение "с верху",

далее вводишь коэф. развития я обычно делю на 10 (один порядок), можно делить на 100 (два порядка)


пример: самая длинная транзакция длится 2 сек
24*60*60/2 = 43200
43200 / 4 = 10800
10800 / 10 = 1080

примерно 1000 документов в сутки для офисной работы при скорости проведения 1 документа 2 сек с запасом на пики и будущее развитие до 10х.
документов в сутки
41 ptiz
 
06.05.21
11:11
(17) "в секунду бывает до 4-5 запросов" - а где тут нагрузка, тем более "высокая"?
Узкое место будет не в веб-сервисе, а в обработке этих запросов самой 1С.
42 mTema32
 
06.05.21
11:15
(0) ТС, на мой взгляд все уже придумано.
Я так делал и видел в других - не одинес системах подобную реализацию "тяжелых" обменов.
Клиент стучится с запросом в сервис, ему сервис отдает идентификатор запроса. И он потом с этим идентификатором стучится уже другим методом, где ему возвращается статус обработки запроса. И так он будет ломиться в ожидании получения нужного статуса. После чего забирается результат запроса.
Это если коротко.
43 Snork
 
06.05.21
11:18
(41) логично, узкое место в 1С. Я в очередь думаю сразу писать все данные, чтобы их только отправлять, без доп запросов
44 Snork
 
06.05.21
11:18
(42) я для новых интеграций там так и сделал уже
45 mistеr
 
06.05.21
11:22
(42) Это не решение задачи "получить ответ быстро". Это лишь удобство, если приходится ждать долго. И не для всех случаев это подходит.
46 Kassern
 
06.05.21
11:26
(42) Так почта России работает, когда статусы посылок хочешь получить. Если мне не изменяет память, 1 токен дается на 3000 заказов. А далее по этим токенам получаешь нужные данные, когда, они будут готовы.
47 ptiz
 
06.05.21
11:26
(43) Всё зависит от:
1) критично ли тому, кто вызвал 1С, время ожидания
2) критично ли тому, кто вызвал 1С, чтобы обработка его данных полностью завершилась за этот вызов, и он не может ждать какого-то регл задания
3) будет ли блокировка в 1С при параллельной обработке входящих запросов

Какой ответ ты хочешь получить, если никаких вводных данных не привел и не описал задачу целиком?
48 Snork
 
06.05.21
12:44
(47) vde69 уже ответил
Ошибка? Это не ошибка, это системная функция.