Отслеживание Mixpanel из кэширования сервера

Это общий вопрос дизайна. В настоящее время я отправляю события отслеживания со своего сервера (веб-API C#, размещенный на Azure) в Mixpanel (используя пакет Mixpanel.NET: https://github.com/chrisnicola/Mixpanel.NET).

Это отлично работает по большей части. Однако он не так надежен, как хотелось бы: 1. хотя и минимален, он излишне замедляет работу моего сервера, поскольку события отправляются во время обычного использования API. 2. если mixpanel падает, события теряются

Каков наилучший способ решения этих проблем? Я думал, что смогу кэшировать события на своем сервере и в конечном итоге отправить их в Mixpanel. Это хороший подход? Предполагаю, что мне нужно будет использовать какое-то надежное хранилище на случай, если мой сервер выйдет из строя перед их отправкой. Подойдут ли для этого лазурные очереди?

Заранее спасибо.


person Jonathan    schedule 04.02.2015    source источник


Ответы (1)


  1. В зависимости от размера сообщения вы можете записать его либо в Очередь хранилища Azure или Служебная шина Azure. Если ваше сообщение слишком велико, чтобы помещаться в очередь само по себе, вы можете просто записать запись-заглушку в очередь, а затем фактически записать полное сообщение либо в Хранилище таблиц Azure, База данных Azure SQL или Azure DocumentDB, используя заглушку очереди, чтобы определить, где хранится полное сообщение.
  2. Используйте рабочую роль для чтения очереди и отправки сообщений в Микспанель API. Когда Mixpanel не работает, просто не вынимайте заглушку из очереди, и она будет обработана повторно. Если Mixpanel API работает, используйте заглушку, чтобы получить полное сообщение и отправить его в Mixpanel API, а затем удалить заглушку из очереди.
person Simon W    schedule 05.02.2015