2015-02-04 2 views
0

이것은 일반적인 디자인 질문입니다. 나는 현재 Mixserel (Mixpanel.NET 패키지를 사용하여 : https://github.com/chrisnicola/Mixpanel.NET)에 내 서버 (푸른 색에 호스팅 된 C# 웹 API)에서 추적 이벤트를 보내고 있습니다.서버 캐싱의 믹스 패널 추적

대부분이 문제가 없습니다. 그러나 그것은 내가 원하는 것만 큼 강력하지는 않습니다. 1. API를 정상적으로 사용하는 동안 이벤트가 전송되기 때문에 최소한의 시간 동안 서버가 불필요하게 느려집니다. 2. 믹스 패널이 다운되면 이벤트가 손실됩니다.

이러한 문제를 해결하는 가장 좋은 방법은 무엇입니까? 내 서버에서 이벤트를 캐시하고 결국 Mixpanel에 보낼 수 있다고 생각했습니다. 그것은 좋은 접근입니까? 내 서버가 전송되기 전에 내구성 스토리지를 사용해야 할 것입니다. 푸른 대기열이 이것에 좋은가요?

미리 감사드립니다.

답변

0
  1. 메시지 크기에 따라 Azure Storage Queue 또는 Azure Service Bus에 쓸 수 있습니다. 메시지가 너무 커서 대기열에 갈 수없는 경우 대기열에 스텁 레코드를 작성한 다음 실제로 전체 메시지를 Azure Table Storage, Azure SQL Database 또는 Azure DocumentDB에 작성하여 대기열 스텁을 사용하여 전체 메시지가 저장됩니다.
  2. Worker Role to read the queue을 사용하고 메시지를 Mixpanel API에 보냅니다. Mixpanel이 다운되었을 때 단순히 큐에서 스텁을 팝하지 않으면 다시 처리됩니다. Mixpanel API가 작동중인 경우 스텁을 사용하여 전체 메시지를 가져 와서 Mixpanel API로 전송 한 다음 스텁을 대기열에서 제거하십시오.