Page tree

Versions Compared

Key

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

...

Info

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

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

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

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

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

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

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

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


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

    Code Block
    chmod u+x install.sh


  3. Запустить скрипт установки с правами суперпользователя sudo installsudo 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
Для работы рассылок о начислении и списании бонусов нужно установить сервис Push-уведомлений.

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

...

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

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

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

...

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

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

server.port
числовой
 

Порт, на котором будет поднят rest для управления сервисомУправление состоянием сервера можно осуществлять через rest-api, который доступен для просмотра по адресу http://<host>:<server.port>/swagger-ui.html

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

строковый
 

http-префикс внешнего сервиса, на который будут отправляться полученные событияК примеру, при указании http:10.10.10.10:80/a/b/c/event/ сервисом будет генерироваться POST запрос по адресу http:10.10.10.10:80/a/b/c/event/send

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

строковый
 

Логин пользователя для basic-авторизации на внешнем сервисеПо умолчанию admin

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

строковый
 

Пароль пользователя, от имени которого будет производиться basic-авторизация на внешнем сервисеПо умолчанию admin

 


TDERA

su.artix.accounting.event.notifier.rest.tdera.urlстроковый
 

URL, на который будет отправляться POST-запросК примеру, при указании http:10.10.10.10:80/a/b/c/event/ сервисом будет генерироваться POST запрос по адресу http:10.10.10.10:80/a/b/c/event/update
su.artix.accounting.event.notifier.rest.tdera.authстроковый
 

Заголовок в POST-запросе для авторизацииЗначение из параметра в неизменном виде будет передано в заголовке Authorization
su.artix.accounting.event.notifier.rest.tdera.senderстроковый
 

Название отправителяПо умолчанию artix

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

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

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

строковый
 

Наименование коллекции, из которой будут извлекаться данные о событиях
 

spring.data.mongodb.uri

строковый
 

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

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

su.artix.accounting.event.notifier.retry.count

числовой
 

Количество ошибок, по достижении которого останавливается обработка ошибок.По умолчанию 50


Code Block
titleПример настройки
server.port=8090
##################
# Задержка в миллисекундах, в течении которого будут группироваться операции для почекового объединения
su.artix.accounting.event.notifier.group.duration=10000
# Время (в секундах) - сколько будет храниться информация о посланных транзакциях.
# Чем больше значение - тем больше времени может простаивать "принимающий" события сервер.
# С другой стороны, чем больше это значение, тем большая нагрузка будет на СУБД. Параметр нужно подбирать эмпирически
su.artix.accounting.event.notifier.mongo.send.event.expired.seconds=3600
# Если в БД не сохранено время последнего прочитанного события - начинать искать записи с текущего момента
su.artix.accounting.event.notifier.begin.from.current=true
##################
# Тип сервиса, на который будут слаться события: [ARTIX,TDERA]
su.artix.accounting.event.notifier.type=ARTIX
##################
# Для ARTIX
su.artix.accounting.event.notifier.rest.sender.prefix=http://localhost:8083/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.$main
spring.data.mongodb.uri=mongodb://localhost/local
# После этого количества ошибок сервис уйдет в состояние ERROR и перестанет обрабатывать сообщения.
# Состояние можно получить запросов GET http://localhost:${server.port}/v1/state
su.artix.accounting.event.notifier.retry.count=50

...

  • установить 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

...