1

한 주제에서 두 번째 메시지를 한 번만 보내야합니다.짧은 기간에 둘 이상의 메시지를 보낼 때 TOPICS_MESSAGE_RATE_EXCEEDED

3 개의 Android 기기가 있고 짧은 기간 (1 초) 내에 여러 개의 다운 스트림 메시지를 주제 (세 개의 기기가 구독 됨)로 보내려고합니다. 우리 서버는 그 중 세 가지에 대해 ACK를합니다.

그 순간에 두 개의 메시지를 주제로 보내지 만 그 중 하나는 오류 메시지가 TOPICS_MESSAGE_RATE_EXCEEDED 인 NACK을 반환합니다.

time_to_live이 먼저 만료되지 않으면 이제 메시지를 다시 보내도록 다시 시도합니다. 이 경우 사용자가 다시 클릭하면 해당 메시지가 다시 전송됩니다. 이것이 올바른 행동입니까?

누구든지 이전에이 문제가 있었습니까? 어떻게 해결 되었습니까?

+2

돈을 지불한다고 가정합니다. – Kayaman

+0

맞다면이 문제에 대한 설명을 어디에서 찾을 수 있습니까? – dzivi

+0

"실제 워크로드에이 서비스를 사용하려면 돈을 지불해야합니다."라고 묻는 문서에서 가정합니다. 나는 단지 추측하고있다. 당신이 무언가의 자유로운 버전을 사용하고있는 것처럼 들린다. 그리고 그것은 단지 당신에게 그런 불쌍한 전송률을 허용한다. – Kayaman

답변

2

이것은 GCM/FCM에 대해 예상되는 동작입니다. 잠깐 동안 주제에 여러 메시지를 보내면이 오류가 발생합니다.

나는이 홍수에 대한 GCM/FCM에 대한 안전망 역할을하고 트래픽을 처리하는 것에도 생각합니다. 가입자가 1000 명인 경우 해당 주제에 대해 1 초 이내에 여러 개의 메시지를 여러 번 보내면됩니다.

주제에 보내는 각 메시지에 대해 지연 (약 5-10 초)을 구현해야합니다. 특정 주제에 가입자 메시지의 비율이 너무 높은을 초과

주제 메시지 속도 :

는 @로합니다 (docs에서 기반)에 란의 대답 here을 언급했다. 이 항목에 대해 보낸 메시지 수를 줄이고 즉시 다시 보내지 마십시오.

+0

시간 내 주셔서 감사합니다. 이것은 좋다. 나는 지수 적 백 오프에 대해 읽었습니다. 그거 좋은 생각이야? – dzivi

+0

@ 12345 지수 백 오프는 일반적으로 페일 세이프 *로 사용됩니다.원한다면 사용할 수 있습니다. 그러나 귀하의 시나리오에서는 TOPICS_MESSAGE_RATE_EXCEEDED가 이미 예상되므로 메시지를 보낼 때 지연을 구현하여 완전히 회피하십시오. –

+0

@ 12345 그냥 체크인하고 싶습니다. 요청 지연을 구현 한 후에도 여전히 오류가 발생합니까? 비헤이비어를 확인하려는 위치에서 소식을 수정 한 것으로 나타났습니다. 나는 그것을 이해하는 데 어려움을 겪고있다. 더 자세히 설명해 주시겠습니까? –

관련 문제