Гость
Форумы / Разработка информационных систем [игнор отключен] [закрыт для гостей] / Система электронных платежей / 17 сообщений из 17, страница 1 из 1
11.11.2010, 14:16
    #36949485
Lord British
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Система электронных платежей
Встала задача реализации системы электронных платежей для оплаты всевозможных служб в пределах города.

Система примитивная: профиль пользователя, электронный счет в нашей системе, осуществление операций оплаты со счета и ввода денег на счет.

Хочется сделать так:

реализовать SOAP/REST over HTTP API и к нему написать несколько "морд": web, desktop, mobile (android, symbian, iOS)

Возник ряд вопросов:

1) Балансировка нагрузки/масштабируемость сервиса. Хочется сервисную часть (морда, api) крутить на несколких серверах. Соединения к которым разбрасываются каким-нибудь балансировщиком аппаратным или программным. Кто в теме как это обычно выглядит? Хочется по единому DNS имени попадать на один из серверов эдакого HA (high avail...) кластера, прозрачно дщля пользователя. Т. е. его перекидывает балансировщик сам.

2) Балансировка нагрузки/масштабируемость БД. Что лучше применить? Шардинг какой-нибудь дикий с репликациями? Или кластер предлагаемый той или иной СУБД. Рассматривается использование Oracle или MS SQL.

Спасибо. Буду рад любой информации.
...
Рейтинг: 0 / 0
12.11.2010, 10:49
    #36951159
Hauer
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Система электронных платежей
Lord British
1) Балансировка нагрузки/масштабируемость сервиса. Хочется сервисную часть (морда, api) крутить на несколких серверах. Соединения к которым разбрасываются каким-нибудь балансировщиком аппаратным или программным. Кто в теме как это обычно выглядит? Хочется по единому DNS имени попадать на один из серверов эдакого HA (high avail...) кластера, прозрачно дщля пользователя. Т. е. его перекидывает балансировщик сам.


Хмм... Ну вот так, как Вы описали, так и делается:-) В принципе, можно вообще сделать чисто на уровне TCP/IP. Например, не секрет, что одному имени DNS не обязательно должен соответствовать один адрес. Ну вот хоть yandex попробуйте попинговать и посмотреть на IP-адреса. Ну или nslookup глянуть на ту же тему. Но это такой вариант не очень, если у Вас цель HA кластер.
Можно использовать специальный софт какой-нибудь. К примеру,
Apache .

С аппаратными я хуже знаком, но и там есть решения. Подороже выйдет только, я боюсь.

Lord British
2) Балансировка нагрузки/масштабируемость БД. Что лучше применить? Шардинг какой-нибудь дикий с репликациями? Или кластер предлагаемый той или иной СУБД. Рассматривается использование Oracle или MS SQL.

Спасибо. Буду рад любой информации.

Есть опыт работы с Oracle RAC. Реально решает такую задачу. Единственно что, это совсем не то, что просто на одну машину - и ставиться сложнее и поддерживать сложнее и информации/специалистов меньше. Плюс по-любому тогда нужен SAN. Про MSSQL не знаю, но думаю, что хуже будет, из общих соображений. SAN все равно нужен будет.
...
Рейтинг: 0 / 0
12.11.2010, 11:31
    #36951293
i
i
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Система электронных платежей
CQRS + ESB + Oчередь сообщений. В nServiceBus или в других аналогах, есть полный комплект для этих целей(WCF,Gateway для доступа по HTTP, балансировщик нагрузок, поддерживаются очереди сообщений основных вендеров). В результате: отказоустойчивость, маштабируемость, минимальные требования к железу.
...
Рейтинг: 0 / 0
12.11.2010, 11:35
    #36951306
Hauer
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Система электронных платежей
i,

А морда?
...
Рейтинг: 0 / 0
12.11.2010, 12:09
    #36951402
i
i
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Система электронных платежей
Haueri,

А морда?

WCF = SOAP. Морда может быть любой
...
Рейтинг: 0 / 0
12.11.2010, 12:57
    #36951535
Lord British
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Система электронных платежей
Hauer

Есть опыт работы с Oracle RAC. Реально решает такую задачу. Единственно что, это совсем не то, что просто на одну машину - и ставиться сложнее и поддерживать сложнее и информации/специалистов меньше. Плюс по-любому тогда нужен SAN. Про MSSQL не знаю, но думаю, что хуже будет, из общих соображений. SAN все равно нужен будет.



У меня был опыт установки Oracle RAC на виртуалки с общим виртуальным хранилищем. Примерно представляю как выглядит. Но к сожалению в продакшне никогда не видел. Работал только со standby/primary. Но это больше относится ко времени восстановления. Кроме того, полагаю, что необходимо придерживаться некоторых требований при написании приложения, чтобы не завалить этот кластер (использование последовательностей например...). Если поделитесь соображениями по этому поводу буду признателен.
...
Рейтинг: 0 / 0
12.11.2010, 13:32
    #36951615
Hauer
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Система электронных платежей
iHaueri,

А морда?

WCF = SOAP. Морда может быть любой

Ну так о том и вопрос, кто будет балансировать нагрузку на морду. Или считается, что морда нисколько не нагружается?
...
Рейтинг: 0 / 0
12.11.2010, 13:36
    #36951631
Hauer
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Система электронных платежей
Lord BritishHauer

Есть опыт работы с Oracle RAC. Реально решает такую задачу. Единственно что, это совсем не то, что просто на одну машину - и ставиться сложнее и поддерживать сложнее и информации/специалистов меньше. Плюс по-любому тогда нужен SAN. Про MSSQL не знаю, но думаю, что хуже будет, из общих соображений. SAN все равно нужен будет.



У меня был опыт установки Oracle RAC на виртуалки с общим виртуальным хранилищем. Примерно представляю как выглядит. Но к сожалению в продакшне никогда не видел. Работал только со standby/primary. Но это больше относится ко времени восстановления. Кроме того, полагаю, что необходимо придерживаться некоторых требований при написании приложения, чтобы не завалить этот кластер (использование последовательностей например...). Если поделитесь соображениями по этому поводу буду признателен.

Да нет, особых требований никаких к приложениям нет (с чего бы быть каким-то проблемам с последовательностями?). Stanby/primary это все-таки не совсем то, мне кажется. RAC состоит из ноудов, которые в принципе равноценны. Т.е. обращение целиком к кластеру, точно так же. как и к одному серверу (connection string только отличается).
...
Рейтинг: 0 / 0
13.11.2010, 11:27
    #36953554
DPH3
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Система электронных платежей
Ну, тот тоже повторюсь - для платежной системы в пределах города подходят любые прямолинейные решения, нагрузка очень маленькая.

При средней доходности системы платежей, в масштабах города Oracle RAC, скорее всего, выйдет за пределы бюджета.
Вообще, основное требование к БД для платежной системы - это возможность организовать более-менее осмысленный HA - а тут, в общем, кроме Postgress 9.0 (слишком свежего) и DB2 Express C с годовой поддержкой ничего и нет, увы.

Application Layer, в общем, все равно на чем делать - что разработчику знакомо, то и использовать. Нагрузки, как я уже говорил, сравнительно небольшие.

Да, кстати, надо отметить, что для целей масштабирования платежной системы RAC малопригоден - так как основная проблема будет, по идее, в масштабировании update, а тут RAC ничем не поможет, если даже не помешает.
...
Рейтинг: 0 / 0
13.11.2010, 11:39
    #36953576
Hauer
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Система электронных платежей
DPH3При средней доходности системы платежей, в масштабах города Oracle RAC, скорее всего, выйдет за пределы бюджета.

Собственно, я про RAC только исходя из:

Lord British
Рассматривается использование Oracle или MS SQL.


А так, конечно, это огромная нагрузка на бюджет. Хотя.... Местами Oracle может проявить гибкость в плане лицензирования, мне думается.
...
Рейтинг: 0 / 0
13.11.2010, 12:06
    #36953633
DPH3
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Система электронных платежей
Hauer
Рассматривается использование Oracle или MS SQL.

Ну, судя по всему, или с другими не знакомы или проект попильный, денег не считают.
Тогда, наверно, Oracle EE - оптимальное решение, дороже уже сложно что-нибудь впихнуть.
Где-то за 200+K$



А так, конечно, это огромная нагрузка на бюджет. Хотя.... Местами Oracle может проявить гибкость в плане лицензирования, мне думается.
Ну, на таком заказе где-то 30% скидки получить получится. Вот больше, насколько я знаю, уже сложнее. Впрочем, при больших заказах там и 75% скидки бывают и 90% :)
Но если проект "откатный", то зачем скидки?
...
Рейтинг: 0 / 0
13.11.2010, 13:27
    #36953836
Hauer
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Система электронных платежей
DPH3,

Я видел и 70 на не таком уж большом заказе. Но это вариант типа "всё или ничего", т.е. берите 200К и давайте нам, что мы хотим или вообще ничего не купим.
...
Рейтинг: 0 / 0
13.11.2010, 13:58
    #36953925
DPH3
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Система электронных платежей
Hauer,
Охотно верю. Но тут-то заказ даже по чистым ценам где-то на 200K$, не больше (3 машинки по 2 ядра - две в RAC для локального HA и нормального обновления версий, одна - в другой ДЦ с DataGuard), т.е. 6 лицензий EE. А, еще поддержка, конечно...

До аналогичного решения на DB2 (где-то около 12К$ или вообще 4k$ в год) все-таки не дойдет. Да и ручное на Postgress будет подешевле :)
...
Рейтинг: 0 / 0
13.11.2010, 14:26
    #36954004
Пробегал
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Система электронных платежей
Подскажите расшифоровку сокращению "НА" ? И есть ли более подробное описание решения на PostgreSQL и DB2 ? И какая в этом случае СУБД более подходит ?
...
Рейтинг: 0 / 0
13.11.2010, 14:35
    #36954027
DPH3
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Система электронных платежей
Пробегал,


HA = High Availability, т.е. высокая доступность.

Аналоги Ораклового DataGuard, в общем, все примерно про одно и то же.
В DB2 это называется HADR, доступно при покупке годовой поддержки для бесплатной версии DB2 Express C (т.е. 2k$ в год). Описание - на ibm.com, например.

В PostrgresSQL в 9ой версии появилось несколько механизмов для обеспечения высокой доступности, аналогичные DataGuard, но в продакшне, насколько я знаю, их еще нет.

Я бы для платежной системы использовал бы DB2. Но если уже есть хороший DBA по Postgress - то можно и Postgress. Oracle - только если есть на это деньги (и, опять таки, очень хороший DBA - настройка в оракле DataGuard - вещь очень не простая).
...
Рейтинг: 0 / 0
13.11.2010, 16:04
    #36954188
alexeyvg
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Система электронных платежей
Lord British2) Балансировка нагрузки/масштабируемость БД. Что лучше применить? Шардинг какой-нибудь дикий с репликациями? Или кластер предлагаемый той или иной СУБД. Рассматривается использование Oracle или MS SQL.

Спасибо. Буду рад любой информации.А как возникла идея масштабировать нагрузку БД? Планируются в перспективе миллиарды платежей в день?

Зачем вам платить лишнее??? Или просто поучиться?
...
Рейтинг: 0 / 0
14.11.2010, 22:43
    #36955897
s_ustinov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Система электронных платежей
alexeyvgLord British2) Балансировка нагрузки/масштабируемость БД. Что лучше применить? Шардинг какой-нибудь дикий с репликациями? Или кластер предлагаемый той или иной СУБД. Рассматривается использование Oracle или MS SQL.

Спасибо. Буду рад любой информации.А как возникла идея масштабировать нагрузку БД? Планируются в перспективе миллиарды платежей в день?

Зачем вам платить лишнее??? Или просто поучиться?
Кстати, хороший вопрос
предположим, в городе 50 000 000 людей (понаехали) и каждый (включая новорожденных) решил в конце месяца сделать по 100 платежей...
получится 5 000 000 000 транзакций... с одной стороны много...
с другой стороны - транзакции примитивные, да и понаедут до такого количества платежей явно не в этом десятилетии
...
Рейтинг: 0 / 0
Форумы / Разработка информационных систем [игнор отключен] [закрыт для гостей] / Система электронных платежей / 17 сообщений из 17, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]