从服务器缓存跟踪Mixpanel

时间:2015-02-04 20:39:41

标签: c# azure mixpanel

这是一个一般性的设计问题。我目前正在从我的服务器(托管在azure上的C#web api)向Mixpanel发送跟踪事件(使用Mixpanel.NET软件包:https://github.com/chrisnicola/Mixpanel.NET)。

这在大多数情况下都可以正常工作。但是,它并不像我喜欢的那样强大: 1.尽管很小,它会不必要地减慢我的服务器速度,因为事件是在正常使用API​​期间发送的。 2.如果mixpanel失败,事件就会丢失

解决这些问题的最佳方法是什么?我以为我可以在我的服务器上缓存事件并最终将它们发送到Mixpanel。这是一个好方法吗?猜测我需要使用某种类型的耐用存储,以防我的服务器在发送之前发生故障。天蓝色队列会对此有好处吗?

提前致谢。

1 个答案:

答案 0 :(得分:0)

  1. 根据邮件的大小,您可以将其写入Azure Storage QueueAzure Service Bus。如果您的消息太大而无法自己进入队列,您只需将存根记录写入队列,然后将完整的消息写入Azure Table StorageAzure SQL DatabaseAzure DocumentDB使用队列存根作为识别完整消息存储位置的方法。
  2. 使用Worker Role to read the queue并向Mixpanel API发送消息。当Mixpanel关闭时,不要从队列中弹出存根,它将被重新处理。如果Mixpanel API已启动,请使用存根提取完整消息并发送到Mixpanel API,然后从队列中删除存根。