Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Info

Устанавливается на систему начиная с Ubuntu 1418.04.

Для установки сервера менеджера рассылок сначала необходимо обратиться за сертификатом.

После с помощью команды добавить его:

...

получить сертификат.

...

Code Block
languagetext
titleКоманда добавления получения сертификата
sudo mkdir -p /etc/docker/certs.d;echo ключ=|base64 --decode|sudo tar -zxf - -C /etc/docker/certs.d/

Далее необходимо локально добавить ключ в cashserver.arix.su.

Установка сервиса рассылок

Для установка сервиса нужно скачать следующий скрипт следующей командой:

curl http://downloads.artix.su/static/downloads/docker/cs_env/import_docker_cert.sh -o /tmp/import_docker_cert.sh
chmod u+x /tmp/import_docker_cert.sh
/tmp/import_docker_cert.sh

Установка менеджера рассылок

  1. Для установки менеджера рассылок необходимо скачать скрипт:

    Code Block
    languagetext
    curl -L http://downloads.artix.su/static/downloads/docker/delivery/install.sh -o install.sh


  2. Сделать файл исполняемым:

    Code Block
    languagetext
    chmod u+x install.sh


  3. Запустить скрипт установки

    с правами суперпользователя sudo 

    :

    Code Block
    languagetext
    ./install.sh


  4. Скрипт установит docker со всем окружением, скачает docker-compose и запустит скрипт развертывания образов для работы с рассылками и запустит их.

Обновление сервиса рассылок

Для обновления сервиса рассылок необходимо:

  1. Перейти в директорию, где находится docker-compose.yml
  2. Выполнить команду для обновления образов:

    Code Block
    docker-compose pull
  3. Выполнить команду для обновления контейнеров:

    Code Block
    docker-compose up -d

Логирование сервиса рассылок

Логи рассылок хранятся в директории var/lib/docker/volumes/delivery_delivery_logs/. Запись логов ведется в несколько файлов:

ФайлОписание
delivery-gateway.logЛог сервиса по отправке сообщений
delivery-service.logЛог сервиса рассылок. Сервис, в котором формируются сообщения для отправки.

Настройка сервиса рассылок

Для того чтобы сервис мог получать информацию о сгорании бонусов, нужно его сконфигуривать. Всю конфигурацию сервису можно передать через “Конфигурирование рассылок”.

Info
Обязательно в Artix Loyalty Management должны быть корректные настройки подключения к КС и БС.

После установки сервиса рассылок нужно зайти в Artix Loyalty Management, в разделе "Управление", перейти во вкладку “Конфигурирование рассылок”, далее “Настройки сервера рассылок”.

Info
Для работы рассылок о начислении и списании бонусов нужно установить сервис Push-уведомлений.

Установка и настройка сервиса push-уведомлений

Данный сервис нужен для работы уведомлений:

  • о начислении бонусных баллов;
  • о списании бонусных баллов; 
  • с рассылками.
Info

Поддержка сервиса push-уведомлений для accounting-сервера начинается с версии сборки 3.0.250.

Сервис запускается только под java8.

Для работы сервиса необходимо в конфигурационном файле /etc/mongodb.conf установить параметр:

Code Block
 master = true 

и перезапустить mongodb, выполнив команду:

Code Block
sudo service mongodb restart

Установка и запуск сервиса:

Code Block
# для установки или обновления выполните команду:
sudo apt-get install accounting-event-notifier
# После установки, нужно произвести корректные настройки в файле application.properties, который должен находиться по пути /opt/accounting-event-notifier/application.properties (про настройки написано ниже)
# После установки корректных настроек, нужно перезапустить сервис командой:
sudo service accounting-event-notifier restart

Логирование работы сервиса находятся в файле /var/log/accounting-event-notifier.log.

Настройка работы сервиса может быть осуществлена в конфигурационном файле application.properties, который помещается в ту же директорию, что и jar-файл.

...

su.artix.accounting.event.notifier.group.duration

...

Задержка в секундах, в течении которого будут группироваться операции для почекового объединения

...

su.artix.accounting.event.notifier.mongo.send.event.expired.seconds

...

su.artix.accounting.event.notifier.begin.from.current

...

  • true
  • false

...

Если в БД не сохранено время последнего прочитанного события - начинать искать записи с текущего момента:

  • При значении параметра true все события, которые были созданы до первого запуска сервиса будут игнорироваться.
  • При значении параметра false все события, которые были созданы до первого запуска сервиса, будут сформированы и отправлены на внешний сервис.

...

По умолчанию true

su.artix.accounting.event.notifier.type

...

  • ARTIX
  • TDERA

...

 

 

ARTIX

...

su.artix.accounting.event.notifier.rest.sender.prefix

...

su.artix.accounting.event.notifier.rest.sender.user

...

su.artix.accounting.event.notifier.rest.sender.password

...

 

TDERA

...

su.artix.accounting.event.notifier.data.protocol.version

...

su.artix.accounting.event.notifier.data.mongodb.collection.name

...

spring.data.mongodb.uri

...

Доступ до oplog MongoDB, с которой требуется генерировать события

...

  • При размещении сервиса на одной машине с бонусным сервером используется mongodb://localhost/local
  • При размещении сервиса на отдельной машине необходимо указать адрес до oplog MongoDB
Info

Для рассылки сообщений об операциях с бонусами нужно установить сервис уведомлений.

Настройка менеджера рассылок

Для того чтобы сервис мог получать информацию о сгорании бонусов, нужно его сконфигуривать. Всю конфигурацию сервиса можно передать через сетевые настройки менеджера рассылок и "Настройки внешних шлюзов".

Info
В Artix Loyalty Management обязательно должны быть указаны корректные настройки доступа до КС и БС.

Установка и настройка сервиса уведомлений

Данный сервис нужен для отправки сообщений о сгорании, начислении и списании бонусов в менеджер рассылок.

Для установки сервиса необходимо выполнить команду:

Code Block
languagetext
sudo apt-get install artixcs-accounting-event-notifier

Настройка работы сервиса осуществляется в конфигурационном файле /opt/artixcs-accounting-event-notifier/application.properties.

Code Block
languagetext
titleПример настройки
server.port=39011
#Уровень логирования
logging.level.su.artix.accounting=info
##################
# Задержка в миллисекундах, в течении которого будут группироваться операции для почекового объединения
su.artix.accounting.event.notifier.group.duration=10000
# Время (в секундах) - сколько будет храниться информация о посланных транзакциях.
# Чем больше значение - тем больше времени может простаивать "принимающий" события сервер.
# С другой стороны, чем больше это значение, тем большая нагрузка будет на СУБД. Параметр нужно подбирать эмпирически
su.artix.accounting.event.notifier.mongo.

...

Code Block
titleПример настройки
server.port=8090
##################
# Задержка в миллисекундах, в течении которого будут группироваться операции для почекового объединенияsend.event.expired.seconds=3600
# После этого количества ошибок сервис уйдет в состояние ERROR и перестанет обрабатывать сообщения.
# Состояние можно получить запросом GET http://localhost:${server.port}/v1/state
su.artix.accounting.event.notifier.groupretry.durationcount=1000050
# ВремяЕсли (в секундах)БД -не сколькосохранено будет храниться информация о посланных транзакциях.
# Чем больше значение - тем больше времени может простаивать "принимающий" события сервер.
# С другой стороны, чем больше это значение, тем большая нагрузка будет на СУБД. Параметр нужно подбирать эмпирическивремя последнего прочитанного события - начинать искать записи с текущего момента
su.artix.accounting.event.notifier.begin.from.current=true
### Автоматический перезапуск сервиса
# Перезапускать сервис, после перехода в состояние ERROR
su.artix.accounting.event.notifier.mongorestart.send.event.expired.seconds=3600auto.allow=true
# ЕслиЧерез всколько БДсекунд не сохранено время последнего прочитанного события - начинать искать записи с текущего моментаперезапускать сервис
su.artix.accounting.event.notifier.beginrestart.fromafter.currentseconds=true10
##################
# Тип сервиса, на который будут слаться события: [ARTIX,TDERA]
su.artix.accounting.event.notifier.type=ARTIX
##################
### Общие параметры для send-ера
# время ожидания, за которое принимающий сервер должен установить соединение
su.artix.accounting.event.notifier.rest.sender.connection.timeout.seconds=1
# Для ARTIX
su.artix.accounting.event.notifier.rest.sender.prefix=http://localhost:80838110/rest/sender/
su.artix.accounting.event.notifier.rest.sender.user=admin
su.artix.accounting.event.notifier.rest.sender.password=admin
##################
# TDERA формат сообщения
su.artix.accounting.event.notifier.rest.tdera.url=http://in.gates.wp.tdera.ru/customer/balance/
su.artix.accounting.event.notifier.rest.tdera.auth=Bearer YXJ0aXhfa2Fzc2E6YXJ0aXhfa2Fzc2FfdGVzdA==
su.artix.accounting.event.notifier.rest.tdera.sender=artix
##################
#Версия протокола, согласно которому сервис будет извлекать данные из коллекции с событиями. На текущий момент доступна только VERSION_1
su.artix.accounting.event.notifier.data.protocol.version=VERSION_1
su.artix.accounting.event.notifier.data.mongodb.collection.name=oplog.$mainevent
spring.data.mongodb.uri=mongodb://localhost/localaccountingEvent
##################
...
# ПослеИспользуемая этогоБД количествадля ошибоксервиса сервисформирования уйдетсгоревших вбонусов. состояниеВозможные ERRORзначения и перестанет обрабатывать сообщения.MYSQL, MSSQL
su.artix.accounting.event.notifier.bonusfetcher.db=MYSQL
# СостояниеНастройки можноподключения получить запросов GET httpк БС
su.artix.accounting.sql.driver=com.mysql.jdbc.Driver
su.artix.accounting.sql.url=jdbc:mysql://localhost:${server.port}/v1/state3306/db_bonuses_certificates
su.artix.accounting.event.notifier.retry.count=50

...

.sql.user=netroot
su.artix.accounting.sql.passwd=netroot

После установки корректных настроек, необходимо перезапустить сервис командой:

Code Block
languagetext
sudo service artixcs-accounting-event-notifier restart

При настройке и запуске сервиса на внешний сервис будут отправляться сообщения вида:

  • в режиме ARTIX (в качестве примера указано формирование запроса, если его посылать с помощью curl):

    Code Block
    languagetext
    curl -uadmin:admin -XPOST -H "Content-Type: application/json; charset=UTF-8" "http://localhost:8083/rest/sender/send" \
          --data '{"number":"3000","accountNumber":"3000","amountAdd":92597, "amountSub": -322, "date":"2018-01-10T08:57:21.234+0000","cashId":"1","shiftNum":4,"checkNum":5,"sessionId":"1$3000-7c39e6b2-750a-400e-9dd1-76cee3039eac$5$4"}'


  • в режиме TDERA:

    Code Block
    languagetext
     POST {"params":{"sender":"artix"},"doc":{"number":"3000","accountNumber":"3000","amountAdd":92597, "amountSub": -322, "date":"2018-01-10T08:57:21.234+0000","cashId":"1","shiftNum":4,"checkNum":5,"sessionId":"1$3000-7c39e6b2-750a-400e-9dd1-76cee3039eac$5$4"}}

...

  • }


Логирование работы сервиса выполняется в файле /var/log/artix/artixcs-accounting-event-notifier/artixcs-accounting-event-notifier.log.

Настройка для уведомлений о сгорании бонусов

В artixcs-accounting-event-notifier добавлен сервис, формирующий сгоревшие бонусы и добавляющий event в БД notifier.

Для того чтобы запустить сервис по отправке сгораний нужно включить настройку командой:

Code Block
languagetext
su.artix.accounting.event.notifier.bonusfetcher.enable=true

и перезапустить сервис:

Code Block
languagetext
sudo service artixcs-accounting-event-notifier restart

В БД accountingEvent в коллекцию event будут поступать сообщения о сгорании. Для этих видов сообщений (которые будут отдаваться клиенту) добавлено два типа CHECK (это сообщения ADD, SUB, BACK, PAY) и FIRED. Сгорания имеют немного другой вид нежели остальные операции Сообщения о сгорании отличаются от сообщений для остальных операций (ADD, SUB, BACK, PAY).

Сгорания Сообщения о сгорании бонусов будут формироваться из БД, которая будет указана в настройках.

Проводники (asset) группируются по accountNumber (транзакции собираются в одну по номеру счета) с lastStatus=COMMITED и status=ADD,BACK за время с момента последнего запуска. Настройка su.artix.accounting.event.notifier.bonusfetcher.scheduler.cron в конфигурационном файле /opt/artixcs-accounting-bonuses/application.properties отвечает за периодичность запуска сервиса формирования сгораний.

Code Blockcode
languagetext
titleНастройка сервиса
##################
# Включение сервиса получения и отправки сгоревших бонусов
su.artix.accounting.event.notifier.bonusfetcher.enable=true
# Настройка запуска сервиса по крону. По-умолчанию раз в сутки
# Сгоревшие бонусы формируются за период с момента последнего запуска
# Если по каким-то причинам эта информация отсутствует(нештатная ситуация),
# то сгоревшие бонусы будут сформированы за последние 24 часа
# Формирование: по счету суммируются все транзакции со статусами ADD и BACK
# На основе этой информации формируется уникальный дескриптор, чтобы не отправлять
# одни и те же сгорания дважды
su.artix.accounting.event.notifier.bonusfetcher.scheduler.cron=0 0 0 * * ?
# Формирование сгоревших бонусов - длительная операция
# Количество попыток сформировать сгоревшие бонусы. По умолчанию 1 попытка
# Пример: настройка = 2
# Сервис формирует сгоревшие бонусы раз в сутки, если произошла нештатная ситуация,
# то сервис попробует снова. Итого 2 попытки.cron=0 * * * * ?
# Формирование сгоревших бонусов - длительная операция
# Количество попыток сформировать сгоревшие бонусы. По умолчанию 1 попытка
# Пример: настройка = 2
# Сервис формирует сгоревшие бонусы раз в сутки, если произошла нештатная ситуация,
# то сервис попробует снова. Итого 2 попытки
su.artix.accounting.event.notifier.bonusfetcher.trycount=1
# Используемая БД для сервиса формирования сгоревших бонусов. Возможные значения MYSQL, MSSQL
su.artix.accounting.event.notifier.bonusfetcher.db=MYSQL
# Настройки подключения к БС
su.artix.accounting.sql.driver=com.mysql.jdbc.Driver
su.artix.accounting.sql.url=jdbc:mysql://localhost:3306/db_bonuses_certificates
su.artix.accounting.event.notifier.bonusfetcher.trycount=1
# Используемая БД для сервиса формирования сгоревших бонусов. Возможные значения MYSQL, MSSQL
su.artix.accounting.event.notifier.bonusfetcher.db=MSSQL
# Настройки подключения к БС
su.artix.accounting.sql.driver=com.microsoft.sqlserver.jdbc.SQLServerDriver
su.artix.accounting.sql.url=jdbc:sqlserver://localhost:1433;databaseName=artixcsAll
su.artix.accounting.sql.user=sa
su.artix.accounting.sql.passwd=A44H_test

Настройка отправки уведомлений об изменении баланса

Один из способов настроить отправку уведомлений покупателям об изменении баланса:

  • установить Accounting-сервер
  • указать подключение БС к БД Mongo (здесь имеется ввиду не хранилище данных accounting-сервера, а БД, в которую будут помещаться события об изменении баланса на счетах)
  • настроить и запустить сервис отправки push-уведомлений accounting-event-notifier (смотри выше)

Настройка формирования сообщений об изменении баланса на счетах в конфигурационном файле /opt/virgo/repository/usr/accounting-logic-properties.properties. Данные об изменениях баланса сохраняются в БД Mongo.

Состав данных, которые будут передаваться на внешние сервисы, определяется выбранными настройками. При включении настройки accounting.changeBalance.event.enabled сервис будет отправлять сообщения, содержащие информацию в формате описанном выше. Для отправки в сообщении не только данных об изменении баланса, но и значение баланса, который установлен на карте после начисления/списания, необходимо для параметра accounting.changeBalance.event.sendBalance установить значение true (активный параметр влияет на производительность).

НаименованиеТип данныхВозможные значенияОписаниеПримечания

accounting.changeBalance.event.enabled

логический
  • true
  • false
Генерировать события по изменению баланса

По умолчанию false

accounting.changeBalance.event.protocol.version

строковыйVERSION_1Внутренняя версия протокола между accounting-сервером и данным сервисом push-уведомлений. Не влияет на формат сообщения, посылаемый внешнему сервисуВ настоящее время доступна только VERSION_1

accounting.changeBalance.event.mongodb.uri

строковый Параметры подключения к БД Mongo, в которую производится запись событий об изменении баланса 

accounting.changeBalance.event.mongodb.database

строковый Название БД, в которую записываются события об изменении баланса 

accounting.changeBalance.event.sendBalance

логический
  • true
  • false
Указывать в событии баланс по счету после применения операций начисления/списания

По умолчанию false

При значении true производительность accounting-сервера может сильно просесть

Code Block
titleПример настройки
### Отправка сигналов об изменении баланса на счетах ###
#включить генерацию событий по изменению баланса. События генерируются на основе команды комита asset, т.е. операции сгорания бонусов в данных событиях НЕ БУДЕТ
accounting.changeBalance.event.enabled = false
#Версия протокола, согласно которому сервис будет извлекать данные из коллекции с событиями. На текущий момент доступна только VERSION_1
accounting.changeBalance.event.protocol.version=VERSION_1
#Параметры подключения к БД mongodb, в которую будут писаться события об изменении баланса
accounting.changeBalance.event.mongodb.uri = mongodb://localhost
#Название БД mongodb, в которую будут писаться события об изменении баланса
accounting.changeBalance.event.mongodb.database = accountingEvent
#Указывать в событии баланс по счету ПОСЛЕ применения операции. Внимание! Включение опции может серьезно просадить производительность!
accounting.changeBalance.event.sendBalance = false.sql.user=netroot
su.artix.accounting.sql.passwd=netroot

Настройка отправки уведомлений об изменении баланса

Один из способов настроить отправку уведомлений покупателям об изменении баланса:

  • установить Accounting-сервер;
  • указать подключение БС к БД Mongo (здесь имеется ввиду не хранилище данных accounting-сервера, а БД, в которую будут помещаться события об изменении баланса на счетах);
  • настроить и запустить сервис отправки уведомлений artixcs-accounting-event-notifier (см. выше).

Настройка формирования сообщений об изменении баланса на счетах находится в конфигурационном файле  БС, например /opt/artixcs-accounting-bonuses-certificates/application.properties.

Состав данных, которые будут передаваться на внешние сервисы, определяется выбранными настройками. При включении настройки accounting.changeBalance.event.enabled сервис будет отправлять сообщения, содержащие информацию в формате описанном выше. Для отправки в сообщении не только данных об изменении баланса, но и значение баланса, который установлен на карте после начисления/списания, необходимо для параметра accounting.changeBalance.event.sendBalance установить значение true (активный параметр влияет на производительность).

НаименованиеТип данныхВозможные значенияОписаниеПримечания

accounting.changeBalance.event.enabled

логический
  • true
  • false
Генерировать события по изменению баланса

По умолчанию false

accounting.changeBalance.event.protocol.version

строковыйVERSION_1Внутренняя версия протокола между accounting-сервером и данным сервисом уведомлений. Не влияет на формат сообщения, посылаемый внешнему сервисуВ настоящее время доступна только VERSION_1

accounting.changeBalance.event.mongodb.uri

строковый
Параметры подключения к БД Mongo, в которую производится запись событий об изменении баланса

accounting.changeBalance.event.mongodb.database

строковый
Название БД, в которую записываются события об изменении баланса

accounting.changeBalance.event.sendBalance

логический
  • true
  • false
Указывать в событии баланс по счету после применения операций начисления/списания

По умолчанию false

При значении true производительность accounting-сервера может сильно просесть


Code Block
languagetext
titleПример настройки
### Отправка сигналов об изменении баланса на счетах ###
#включить генерацию событий по изменению баланса. События генерируются на основе команды комита asset, т.е. операции сгорания бонусов в данных событиях НЕ БУДЕТ
accounting.changeBalance.event.enabled = true
#Версия протокола, согласно которому сервис будет извлекать данные из коллекции с событиями. На текущий момент доступна только VERSION_1
accounting.changeBalance.event.protocol.version=VERSION_1
#Параметры подключения к БД mongodb, в которую будут писаться события об изменении баланса
accounting.changeBalance.event.mongodb.uri = mongodb://localhost
#Название БД mongodb, в которую будут писаться события об изменении баланса
accounting.changeBalance.event.mongodb.database = accountingEvent
#Указывать в событии баланс по счету ПОСЛЕ применения операции. Внимание! Включение опции может серьезно просадить производительность!
accounting.changeBalance.event.sendBalance = false

Обновление менеджера рассылок

Для обновления менеджера рассылок необходимо:

  1. Перейти в директорию, где находится docker-compose.yml.
  2. Выполнить команду для выключения контейнеров:

    Code Block
    languagetext
    docker-compose down


  3. Выполнить команду для обновления образов:

    Code Block
    languagetext
    docker-compose pull


  4. Выполнить команду для обновления контейнеров:

    Code Block
    languagetext
    docker-compose up -d


Логирование менеджера рассылок

Логи рассылок хранятся в директории /var/lib/docker/volumes/ubuntu_delivery_logs/_data/logs. Запись логов ведется в несколько файлов:

ФайлОписание
delivery-gateway.logЛог сервиса по отправке сообщений.
delivery-service.logЛог сервиса рассылок. Сервис, в котором формируются сообщения для отправки.