Многопоточный МикроСервер для файловой базы управляемого приложения 1c

0. Александр Бреднев (Chai Nic) 114 19.12.13 14:45 Сейчас в теме
МикроСервер УПФ - это промежуточный сервер, который принимает запросы от тонких клиентов и веб-клиентов управляемого приложения 1с и распределяет их между автоматически созданными процессами веб-сервера. Решение позволяет решить проблему однопоточности файловой компоненты модуля веб-сервера 1с и повысить скорость многопользовательской работы.

Перейти к публикации

Комментарии
1. logdog (logdog) 19.12.13 16:38 Сейчас в теме
1. Хотел бы протестировать данную программу
2. Закрывает ли Ваша программа запущенные сеансы, например, по тайм-ауту 20 минут?
3. База находится на сервере терминала под 2003, в локальной сети, но коннекты к базе будут идти из вне. Получится ли использовать Вашу программу,например, при использовании port forwarding?
2. Александр Бреднев (Chai Nic) 114 19.12.13 16:54 Сейчас в теме
(1) logdog,
1. Отправил в личку
2. Да, закрывает, по умолчанию таймаут прекращения трансляции 25 минут, 20 минут таймаут 1с и 5 минут на всякий случай.
3. Работать то она будет, а вот насколько эффективно - зависит от того, как работает ваш портфорвардинг - если он сохраняет адрес источника - то соединения будут эффективно распределяться, если же не сохраняет - все соединения пойдут на один порт.
3. Алексей Белоусов (AllexSoft) 19.12.13 17:13 Сейчас в теме
(2) не понял насчет лицензии в вашей программе, она платная? если да то сколько, если бесплатная то почему лайт версия, где полная ?
ПС: если платная - совет выкладывай ценник на ИС, иначе тут очень быстро прикроют публикацию...
4. Александр Бреднев (Chai Nic) 114 19.12.13 17:21 Сейчас в теме
(3) AllexSoft, насколько я понял, ИС не разрешает продажу бета-версий?

Без ключа она работает как лайт(3 веб-сервера) или можно поставить демо-ключ (4 часа, далее останов). Так что она в принципе бесплатная, но с ограничениями.
5. Алексей Белоусов (AllexSoft) 19.12.13 17:39 Сейчас в теме
(4) но полная версия есть вообще в наличии, или это пока остановилось на этапе демо.. просто на посмотреть и кто хочет пользоваться то пока нельзя, ждать релизную.. так чтоль ?
6. Александр Бреднев (Chai Nic) 114 19.12.13 17:57 Сейчас в теме
(5) AllexSoft, пользоваться можно - три сервера лучше, чем один.. А релиз скоро будет. Пока собираю пожелания.
7. Алексей Белоусов (AllexSoft) 19.12.13 18:25 Сейчас в теме
(6) релизная версия будет платная ? сколько ориентировочно .. ?
8. Александр Бреднев (Chai Nic) 114 19.12.13 19:56 Сейчас в теме
(7) AllexSoft, релиз будет также с лайт- и демо-режимами, кое-что добавлю в настройки, цена на лицензию будет 1-2 т.р. Цели особо заработать нет, есть цель слегка себя мотивировать на дальнейшее развитие программы.
9. Александр Зубцов (iov) 363 20.12.13 03:07 Сейчас в теме
ладно убедил плюс авансом.
10. Максим Гончаров (maxx) 615 20.12.13 15:16 Сейчас в теме
Супер!!!

А на чем служба написана?
11. Александр Бреднев (Chai Nic) 114 20.12.13 15:36 Сейчас в теме
Внесены несколько доработок, связанных с работой 1с версии 8.3. Рекомендуемая версия 1с для работы совместно с данной программой - не ниже 8.3.5.
12. DrZombi DrZombi (DrZombi) 09.10.15 11:28 Сейчас в теме
Все отстой... Не дорого, вот вот и бесплатно... Туфта...

На заре грядет атаки Шифровальщиков. Такой подход, Вот оно, Файловая и даром, конторке обойдется боком и очень дорого. Мало того, что придется платить Мошенникам. Так еще и сдача отчетности не терпит задержек. И не кого не волнует, что у вас и как случилось.

За Самокат, спасибо. "Оно вертится". Оставим её Автору :)

...
Так же Файловые БД, от фирмы 1С, очень не устойчивы и подвержены краху :)

...
Если хочется халявы, так есть http://v8.1c.ru/overview/Term_000000133.htm
PostgreSQL https://ru.wikipedia.org/wiki/PostgreSQL

Какие галочки ставить в сей системе, есть в инете. Настраивается чуть ли ни по шаблону. Нужно только уметь читать.
13. Александр Бреднев (Chai Nic) 114 09.10.15 15:00 Сейчас в теме
(12) DrZombi, сложно понять ваш поток мыслей. При чем тут халявный постгрес? Сервер 1с то вам кто подарит?
Не нравится мой самокат - не катайся, никто не неволит. В некоторых случаях он может быть полезен.
14. Алексей Белоусов (AllexSoft) 12.10.15 12:02 Сейчас в теме
(12) DrZombi, боюсь вы первый день с сервером 1С работаете, ознакомьтесь сначала о "халявности" предложенного вами решения, а потом пишите ерунду.
15. Павел А. (tfmebel) 15.02.16 16:29 Сейчас в теме
Добрый день. Пробую установить вашу программу, но что то не получается.
Пишет вот такую ошибку: "Неправильный путь к файлу '1Cv8.cdn'. Схема не зарегистрирована"
Вопрос следующий:
Базу надо публиковать (из конфигуратора 1С) ??
И еще веб сервер апач у меня установлен как служба ее надо отключить?
16. Александр Бреднев (Chai Nic) 114 16.02.16 07:59 Сейчас в теме
(15) tfmebel, маловато информации. Что именно пишет эту ошибку? Какие версии ОС, 1с, апача?
Базу в 1с публиковать не обязательно, апач как службу можно не отключать, если не нужно использовать тот же tcp-порт.
17. Алексей Белоусов (AllexSoft) 16.02.16 10:29 Сейчас в теме
Chai Nic, твоя утилитка умеет кстати процессы апача распределить по процам (назначить каждый процесс на свое ядро) ?
22. Александр Бреднев (Chai Nic) 114 16.02.16 13:47 Сейчас в теме
(17) AllexSoft, нет, с привязкой к процессору не заморачивался. Вообще ни разу не сталкивался с необходимостью этого. Намного правильнее рулить приоритетами.
23. Алексей Белоусов (AllexSoft) 16.02.16 13:56 Сейчас в теме
(22) у меня 4 ядерный проц, процесс httpd кушает только 25% ресурсов процессора! хоть приоритет реального времени ему ставь - все равно, ровно одно ядро нагружено и все )
24. Александр Бреднев (Chai Nic) 114 16.02.16 13:58 Сейчас в теме
(23) AllexSoft, ну так в случае моей программы запускается несколько процессов апача, так что использоваться будут и другие ядра.
25. Алексей Белоусов (AllexSoft) 16.02.16 14:44 Сейчас в теме
(24) проверено?) а то 4 процесса httpd на одном ядре крутиться будут еще ..
27. Александр Бреднев (Chai Nic) 114 16.02.16 15:14 Сейчас в теме
(25) AllexSoft, всё будет нормально. В первом приближении так - ядро ОС выбирает процессор на каждом кванте выделения процессорного времени лишь на время этого кванта. А привязка процесса к ядру означает только то, что другие процессоры рассматриваться при выборе не будут. Соответственно, зависимости от того, как именно называется процесс, нет.
18. Павел А. (tfmebel) 16.02.16 11:01 Сейчас в теме
Комп на котором базы и апач: Win7 64
1С:Предприятие 8.3 (8.3.7.1790)
Управление торговлей, редакция 11.1 (11.1.10.199)
Апач 2,2,22 запущен как служба.

Тестовая база находится в папке С:\BASE\TESTTTTT

Микросервер установил. Файл "ини" отредактировал (поправил нужные пути). Остальное не трогал.

В 1С указываю следующий путь до базы http://192.168.7.5:9000/TESTTTTT
и выскакивает вышеописанная ошибка. Что делаю не так.?
19. Павел А. (tfmebel) 16.02.16 11:08 Сейчас в теме
Причем не работает не через браузер не через 1С.
На локальном компе (где запущена программка) через браузер - работает.
20. Павел А. (tfmebel) 16.02.16 11:12 Сейчас в теме
С первой ошибкой разобрался - мой косяк. При указании пути базы надо было выбрать что она расположена на веб сервере, а не в локальной сети. Но теперь вылезла другая ошибка см. картинку. 1C запускаю файлом 1cv8s.exe, далее добавляю базу на веб сервере и путь к ней.
Открывается выбор пользователя, а дальше уже появляется эта ошибка.

https://yadi.sk/i/-OyRcGQ0ouc8k
Причем вроде как подключение то проходит. Но что то не идет дальше.
В микросервере пишется:
Init translation from 192.168.7.10 to port 9001
21. Александр Бреднев (Chai Nic) 114 16.02.16 13:45 Сейчас в теме
(20) tfmebel, брандмауэры с антивирусами не могут мешать?
26. Павел А. (tfmebel) 16.02.16 15:06 Сейчас в теме
(21) да вроде не должны. Проверял. Сейчас еще раз посмотрю.
28. Павел А. (tfmebel) 16.02.16 15:19 Сейчас в теме
Вот что пишется в терминале
https://yadi.sk/i/VcMgCDSWovTvu

первое появление строки которая содержит was closed появилось когда появилось окно выбора пользователя 1с
второе was closed появилось когда выскакивает ошибка.
29. Александр Бреднев (Chai Nic) 114 16.02.16 15:51 Сейчас в теме
(28) tfmebel, Это нормально, что соединения открываются и закрываются. Так работает клиент 1с. Он не держит постоянное соединение на уровне tcp, а открывает и закрывает их при необходимости.
Напрямую на 127.0.0.1:9001 подключается, в обход редиректора, если попробовать?
31. Павел А. (tfmebel) 16.02.16 19:05 Сейчас в теме
(29) на компе на котором запущен микросервер - нет не работает.
32. Александр Бреднев (Chai Nic) 114 16.02.16 20:01 Сейчас в теме
(31) tfmebel, При обычной публикации через апач работает на этом же компе?
33. Павел А. (tfmebel) 17.02.16 10:13 Сейчас в теме
(32) да работает.
В общем я не знаю что произошло, возможно комп перезагрузил, возможно еще что то.
Сегодня вроде бы заработало. Даже запустилась 1С, но периодически выскакивает таже ошибка (см. выше картинку). Но по истечению отсчета времени или нажимая сразу кнопку повторить она уже не закрывается, а продолжает работать (типа переподключается что ли). Работает гораздо медленнее чем через обычный веб сервер.
Спасибо за ответы. В общем поиграюсь...
34. Александр Бреднев (Chai Nic) 114 17.02.16 13:57 Сейчас в теме
(33) tfmebel, в ini-файле ничего не меняли, кроме путей к 1с, апачу и к базе? Апач надеюсь 32-битный, как и 1с? Кинь мне ini-файл.
35. Cthutq Иванов (ewqewqewq) 20.04.16 17:56 Сейчас в теме
Что то мало скачиваний боюсь на боевой ставить. Почему прога так непопулярна?
36. Fanvis (Fanvis) 22.04.16 12:04 Сейчас в теме
Приветствую.
Сколько полная версия стоит? Как приобрести?
Сейчас пользуемся этой штукой: http://infostart.ru/public/239498/
Очень нравится. Автор - КРАСАВА!
37. Александр Бреднев (Chai Nic) 114 22.04.16 15:29 Сейчас в теме
Fanvis, платной полной версии не будет, поскольку не могу гарантировать работоспособность на всех релизах платформы (с некоторыми релизами были серьезные заморочки в виде зависаний апача и отвалов клиентов). Всё-таки, механизм не совсем штатный. И после появления в продаже официального мини-сервера на 5 клиентов от 1с уже не настолько жизненно необходимый.
38. Fanvis (Fanvis) 22.04.16 16:20 Сейчас в теме
(37) у нас на вашей прошлой разработке крутится 20 клиентов. всего 15 апачей поднято. и это на 1 базу.
полет нормальный. в перспективе, конечно, переход на клиент сервер. но пока и так нормально работает. спасибо за решение!
40. Sieg Heil (mdie) 81 14.07.16 18:55 Сейчас в теме
(37) тогда "отдать на растерзание" в github'е :-)
39. мария кам (mskamrakova) 10.06.16 12:38 Сейчас в теме
Очень интересная программка, буду пробовать.
Спасибо автору!
41. Алексей Белоусов (AllexSoft) 18.07.16 12:02 Сейчас в теме
кстати, решил эту проблему без программ, простым NATом на на роутере. Входящий порт один, далее делаем списки с клиентами по процессам, и правила на src-nat входящий пор скажем 8888, netmap - сервер:порт1, когда клиент из списка КлиентыПорта1. Ну и таких правил сколько запущено процессов апачей. Все работает стабильно. Единственное получается жесткая привязка либо диапазона айпишников по портам, либо конкретные списки пользователей кого на какой процесс перенаправлять
42. Александр Бреднев (Chai Nic) 114 18.07.16 15:59 Сейчас в теме
(41) AllexSoft, ну это статическое распределение получается, а программа распределяет динамически поровну
43. Алексей Белоусов (AllexSoft) 27.07.16 10:39 Сейчас в теме
(42) это да, ну в моем случае статический вариант устроил вполне, просто по диапазонам IP адресов, пачками по 10 адресов на 1 процесс апача.. нагрузка процессора равномерная теперь, пиков практически нет (как было при варианте когда все работали на одном процессе), опять же загрузка может подскочить и до 100% процессорного времени, когда как при варианте с одним процессом занималось только одно ядро ( В общем я результатом доволен. Вот если бы вы выложили свою разработку на опенсорс, то я бы наверное выбрал ее) не планируется выкладывать?
44. Евгений Стоянов (quick) 564 05.01.17 19:55 Сейчас в теме
а разве настройка в апаче запускать несколько процессов не то же самое делает?
45. Александр Бреднев (Chai Nic) 114 09.01.17 08:12 Сейчас в теме
(44) Конечно нет. Количество предварительно запущенных процессов в апаче вообще мало на что влияет в плане работы сервером 1с, это скорее для высоконагруженных серверов со статическим контентом имеет смысл. А в случае опубликованной 1с все соединения одного сервиса апача обращаются к одному экземпляру дллки, вставая в очередь. Суть программы в том, чтобы апачей (а значит и экземпляров wsap22) было несколько, с балансировкой нагрузки между ними.
46. drim87 - (drim87) 09.01.17 09:17 Сейчас в теме
Почему не использовать IIS? Он может создавать для работы много процессов распределяя нагрузку.
48. Александр Бреднев (Chai Nic) 114 09.01.17 13:09 Сейчас в теме
(46) Это НЕ ТЕ процессы! Рабочий процесс (аналог рпхоста в клиент-серверной 1с) всё равно один на публикацию. И он однопоточный.
47. Евгений Стоянов (quick) 564 09.01.17 12:29 Сейчас в теме
Получается если я использую linux, то могу поднять несколько хостов с одной базой и настроить nginx как балансер.
49. Александр Бреднев (Chai Nic) 114 09.01.17 13:14 Сейчас в теме
(47) Сложность в том, что клиент должен всегда обращаться к тому же экземпляру апача, к которому было первое обращение в рамках сеанса 1с. То есть, необходимо запоминать соединения и выбирать ту самую трансляцию. Моя програмка это и делает. А простой балансировщик работать не будет.
50. sergey1280 Филиппов (sergey1280) 28.07.17 16:57 Сейчас в теме
Пытаюсь установить на 2008 сервере x64 пишет Error launching installer... Как решить этот вопрос?
51. sergey1280 Филиппов (sergey1280) 28.07.17 16:59 Сейчас в теме
Можно ли доработать под 2008 windows?
52. Alexey Ganzha (Alsegan) 17.01.18 16:54 Сейчас в теме
А можно сделать так, чтобы создание нового процесса было привязано именно к сеансу, а не к клиентскому компьютеру?
А то у меня есть клиент, у него 3 компа. Главбух юзает сразу 8 сеансов в файвловой, это не проблема. А вот остальные 2 сидят на веб сервере и тоже в сумме на двоих у них открыто около 8 баз. 16Гб в принцепи бы хватило. Но сам апач всё сбрасывает.
53. Александр Бреднев (Chai Nic) 114 18.01.18 08:03 Сейчас в теме
(52) Сеанс 1с создает множество последовательных tcp-сеансов (по сути каждый серверный вызов - новое соединение), и отличить на сервере один от другого невозможно, если не анализировать трафик. Так что не получится. Можете просто создать несколько апачей и вручную указать каждому сеансу свой экземпляр.
Оставьте свое сообщение