|
архитектура приложения
|
|||
---|---|---|---|
#18+
Доброго времени суток! У меня есть сайт, который использует сторонние веб сервисы. Один веб сервис для проверки наличия и цены товара и для заказа. Другой это веб сервис нашей 1С. Он тоже используется для создания заказов уже в нашей 1С, а также для получении различной информации, такой как цены, наличие, задолженность и т.д. На данный момент эта система работает не совсем стабильно - если один из сервисов отваливается, то получается что в одну из систем заказ проходит в другую нет. и получаются разночтения. Есть следующая идея. Написать windows сервис, который бы принимал сообщения с нашего сайта и в цикле отправлял бы сообщения каждому из сервисов до тех пор пока не получит ответ об успешном создании заказа. и так каждому сервису по очереди. Также есть мысль вынести все обращения к нашей 1С (через веб сервис) в этот же windows сервис. Вот такая работа с 1С является слабым звеном нашего сайта, потому что обращений много (порядка 30 000 в сутки), и когда отваливается 1С не работает и наш сайт. Пытаюсь сейчас продумать как это реализовать. Прошу помочь с идеями. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.08.2015, 07:31 |
|
архитектура приложения
|
|||
---|---|---|---|
#18+
"если один из сервисов отваливается, то получается что в одну из систем заказ проходит в другую нет. и получаются разночтения." А если отваится один из сервисов во время работы вашего новго Windows сервиса? Или скажем - новй сервис заткнется на отправке одному из сервисов - все, дальше не проходит? Н совсем логика вашей системы понятна: эти сервисы, куда вы хотите отправлять по очереди - они равнозначны, независимы или следущий зависит от подтверждения заказа предыдущим ? подробнее опишите, пример какой-нибудь. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.08.2015, 11:17 |
|
архитектура приложения
|
|||
---|---|---|---|
#18+
Да, без понимания зависимостей сложно что-то предложить. Но одно ясно, если нужна надежная доставка сообщений, то пользовать MSMQ, RabbitMQ, WebSphere и т.д. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.08.2015, 12:05 |
|
архитектура приложения
|
|||
---|---|---|---|
#18+
AxeleronДа, без понимания зависимостей сложно что-то предложить. Но одно ясно, если нужна надежная доставка сообщений, то пользовать MSMQ, RabbitMQ, WebSphere и т.д. ну, я бы SQL Express с брокером заюзил, или Redis, всё от наклонностей зависит ... |
|||
:
Нравится:
Не нравится:
|
|||
05.08.2015, 12:21 |
|
архитектура приложения
|
|||
---|---|---|---|
#18+
Спасибо за ответы. Поясню на примере чтоб было более понятно. Есть веб сервис (назовем его ВС1) сторонней компании, который выдает свои остатки и цены а также дает возможность создания заказа и отслеживания его статуса. Есть веб сервис нашей 1С (назовем его ВС2) который также выдает наши остатки, цены, создает заказы, выдает статусы заказов, а также очень много других функций с которыми наш сайт работает постоянно. Сайт работает с ВС1 - получает остатки и цены. пользователь делает заказ, ВС1 создает заказ, который отменить уже нельзя. затем ВС2 создает заказ на этот же товар в нашей 1С. они должны быть синхронизированы. бывает так что ВС1 не отвечает, заказ там не создается, но создается в нашей 1С или наоборот. Хотим создать что-то вроде буфера. он будет создавать заказ в ВС1, дожидаться ответа, и если все ок, пытаться создать заказ в 1С, до тех пор пока заказ не создастся, т.е. не придет ответа от ВС2 об успешном выполнении работы. В принципе, всю работу с 1С мы хотим пустить через этот буфер, потому как если отваливается 1С, то наш сайт практически не работает. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.08.2015, 16:37 |
|
архитектура приложения
|
|||
---|---|---|---|
#18+
Edilbek, Т.е. насколько я понимаю у сервиса 2 есть прямая зависимость от успешности выполнения сервиса 1? Т.е. по сути вы копию просто заказа по сервису 1 себе записываете сервисом 2? И вся валидация заказа происходит только при вызове сервиса 1? Верно? ... |
|||
:
Нравится:
Не нравится:
|
|||
05.08.2015, 17:09 |
|
архитектура приложения
|
|||
---|---|---|---|
#18+
EdilbekСпасибо за ответы. Поясню на примере чтоб было более понятно. Есть веб сервис (назовем его ВС1) сторонней компании, который выдает свои остатки и цены а также дает возможность создания заказа и отслеживания его статуса. Есть веб сервис нашей 1С (назовем его ВС2) который также выдает наши остатки, цены, создает заказы, выдает статусы заказов, а также очень много других функций с которыми наш сайт работает постоянно. Сайт работает с ВС1 - получает остатки и цены. пользователь делает заказ, ВС1 создает заказ, который отменить уже нельзя. затем ВС2 создает заказ на этот же товар в нашей 1С. они должны быть синхронизированы. бывает так что ВС1 не отвечает, заказ там не создается, но создается в нашей 1С или наоборот. Хотим создать что-то вроде буфера. он будет создавать заказ в ВС1, дожидаться ответа, и если все ок, пытаться создать заказ в 1С, до тех пор пока заказ не создастся, т.е. не придет ответа от ВС2 об успешном выполнении работы. В принципе, всю работу с 1С мы хотим пустить через этот буфер, потому как если отваливается 1С, то наш сайт практически не работает.Ну дык после успешного создания заказа в ВС1 записать сообщение в очередь, или лог, или базу о том, что надо синхронизировать, и пусть отдельный процесс(ы) эти сообщения разгребают. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.08.2015, 18:55 |
|
архитектура приложения
|
|||
---|---|---|---|
#18+
Axeleron, да верно. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.08.2015, 07:38 |
|
архитектура приложения
|
|||
---|---|---|---|
#18+
skyANA, вот я и обратился на форум, чтоб более опытные люди подсказали как эту очередь, лог или базу лучше сделать. т.е. саму архитектуру. использовать wcf или msmq? создавать ли windows сервис или программку через scheduler запускать? ... |
|||
:
Нравится:
Не нравится:
|
|||
06.08.2015, 07:42 |
|
архитектура приложения
|
|||
---|---|---|---|
#18+
EdilbekskyANA, вот я и обратился на форум, чтоб более опытные люди подсказали как эту очередь, лог или базу лучше сделать. т.е. саму архитектуру. использовать wcf или msmq? создавать ли windows сервис или программку через scheduler запускать? wcf и msmq немного разные вещи. я бы в этом случае не связывался с msmq, а использовал бы что-то попроще и поуправляемее. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.08.2015, 10:49 |
|
архитектура приложения
|
|||
---|---|---|---|
#18+
EdilbekAxeleron, да верно. Раз выполнение ВС1 не зависит от выполнения ВС2 и является приоритетным, то я соглашусь с предложением skyANA. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.08.2015, 11:51 |
|
архитектура приложения
|
|||
---|---|---|---|
#18+
EdilbekskyANA, вот я и обратился на форум, чтоб более опытные люди подсказали как эту очередь, лог или базу лучше сделать. т.е. саму архитектуру. использовать wcf или msmq? создавать ли windows сервис или программку через scheduler запускать?Тут Вы должны задать себе вопрос: "А какие требования и что ещё мы с этой очередью, логом, базой будем делать?". От этого зависит выбор решения. Вы какое-то время живёте с существующим решением, накопили наверное пачку проблем и хотелок. Очередь решит их? А лог? А база? ... |
|||
:
Нравится:
Не нравится:
|
|||
06.08.2015, 14:59 |
|
|
start [/forum/topic.php?fid=19&msg=39023321&tid=1396861]: |
0ms |
get settings: |
10ms |
get forum list: |
13ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
30ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
50ms |
get tp. blocked users: |
2ms |
others: | 252ms |
total: | 374ms |
0 / 0 |