PUBSUB를 사용하여 구독 할 때 왜 PING을 할 수 없습니까?

제임스

Azure에서 PUBSUB를 사용하는 데 문제가 있습니다.

Azure 방화벽은 일정 시간 동안 유휴 상태 인 연결을 닫습니다. 시간의 길이는 많은 논란의 여지가 있지만 사람들은 5-15 분 정도라고 생각합니다.

Redis를 메시지 큐로 사용하고 있습니다. 이를 위해 ServiceStack.Redis 라이브러리는 다음 채널을 구독하는 RedisMqServer를 제공합니다.

mq:topic:in

백그라운드 스레드에서는 소켓에서 데이터 수신을 차단하고 Redis에서 메시지를 수신하기를 기다립니다. 문제는:

Redis 메시지를 기다리는 소켓이 일정 시간 동안 유휴 상태이면 Azure 방화벽이 연결을 자동으로 닫습니다. 내 응용 프로그램은 현재 닫힌 연결을 기다리고 있으므로 인식하지 못합니다. 백그라운드 스레드가 효과적으로 중단됩니다.

나는 1 분 동안 메시지를 기다리는 일종의 Keep Alive를 구현하려고 생각했지만 하나가 수신되지 않으면 두 가지 목표로 서버를 PING합니다.

  1. Azure에이 연결이 계속 사용 중임을 알려 연결을 열어 둡니다.
  2. 연결이 닫혔는지 확인하고, 그렇다면 다시 시작하고 다시 구독하십시오.

그러나 이것을 구현했을 때 구독하는 동안 PING 명령을 사용할 수 없다는 것을 알았습니다.? 왜 그런지 잘 모르겠지만 대체 솔루션이있는 사람이 있습니까?

나는 메시지를 놓칠 수 있으므로 구독을 취소하고 정기적으로 다시 구독하고 싶지 않습니다.

다음 기사를 읽었습니다. http://blogs.msdn.com/b/cie/archive/2014/02/14/connection-timeout-for-windows-azure-cloud-service-roles-web-worker.aspx Azure Load Balancer가 4 분 후 연결을 해제하는 방법에 대해 설명합니다. 그러나 연결을 계속 유지할 수 있더라도 다른 이유로 연결이 끊어지면 구독을 다시 시작하는 두 번째 목표를 달성해야합니다 (redis 노드가 다운 됨).

Antirez

unstable이 커밋에서 Redis 브랜치의 Pub / Sub 모드에서 PING 지원을 구현했습니다 . https://github.com/antirez/redis/commit/27839e5ecb562d9b79e740e2e20f7a6db7270a66

이것은 다음 날 Redis 2.8 안정으로 백 포트 될 것입니다.

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

visudo를 사용할 때 왜 시각 모드를 사용할 수 없습니까?

분류에서Dev

ajax를 할 때 왜 readyState 3을 얻을 수 없습니까?

분류에서Dev

iostream을 포함 할 때 왜 printf ()를 사용할 수 있습니까?

분류에서Dev

Checkout 세션을 사용하여 구독을 설정할 때 billing_cycle_anchor를 어떻게 설정할 수 있습니까?

분류에서Dev

TypeError : nonetype을 확인할 때 'NoneType'개체를 구독 할 수 없습니다.

분류에서Dev

DNS를 확인할 수 없지만 FQDN을 사용하여 nslookup을 ping하고 사용할 수 있습니까?

분류에서Dev

Pay Pal을 사용하여 구독 버튼없이 구독을 판매 할 수 있습니까?

분류에서Dev

win_ping을 사용하여 Windows Server를 ping 할 수 없습니다.

분류에서Dev

win_ping을 사용하여 Windows Server를 ping 할 수 없습니다.

분류에서Dev

바디에서 BFC 기능을 사용할 때 왜 플로트를 지울 수 없습니까?

분류에서Dev

Spring JMS를 사용하여 영구 구독을 중지하고 다시 시작할 수 있습니까?

분류에서Dev

구별을 사용하여 그룹화 할 때 결과를 제대로 정렬 할 수 없습니다.

분류에서Dev

.C가 아닌 .Call을 사용하여 C ++ 함수를 호출 할 때 왜 segfault가 발생합니까?

분류에서Dev

왜 np.mean ()을 사용하여 평균을 취할 수 없습니까?

분류에서Dev

try :로 예외를 잡을 때 왜 반환 할 수 없습니까?

분류에서Dev

camel-salesforce-3.4.0-SNAPSHOT을 사용하여 Salesforce 플랫폼 이벤트를 구독 할 수 없습니다.

분류에서Dev

MQTT 및 ESP8266을 사용하여 Azure Device Twins를 구독 할 수 없습니다.

분류에서Dev

STL 목록을 사용할 때 왜이 회문 기능을 사용할 수 없습니까?

분류에서Dev

템플릿을 사용할 때 왜 앞으로 선언을 사용할 수 없습니까?

분류에서Dev

때때로 gson을 사용하여 json에서 날짜를 구문 분석 할 수 없습니다.

분류에서Dev

왜 stderr을 exec를 사용하여 파일로 리디렉션 할 수 없습니까?

분류에서Dev

내 웹 사이트를 호스트에 업로드 할 때 왜 찾을 수 없습니까?

분류에서Dev

플라스크 및 Sqlite3를 사용할 때 TypeError : 'NoneType'개체를 구독 할 수 없습니다.

분류에서Dev

Beautifulsoup의 URL을 연결할 때 왜 문자열을 사용할 수 없습니까?

분류에서Dev

numpy 배열 요소를 선택할 때 왜 AND 연산자를 사용할 수 없습니까?

분류에서Dev

pgmpy를 사용하여 MarkovModel을 구현하려고 할 때 KeyError를 수정하는 방법이 있습니까?

분류에서Dev

RxJ를 사용하면 from (myPromise)를 사용할 때 구독을 취소 하시겠습니까?

분류에서Dev

프록시를 사용하여 Google을 ping 할 수 없습니다.

분류에서Dev

프록시를 사용하여 Google을 ping 할 수 없습니다.

Related 관련 기사

  1. 1

    visudo를 사용할 때 왜 시각 모드를 사용할 수 없습니까?

  2. 2

    ajax를 할 때 왜 readyState 3을 얻을 수 없습니까?

  3. 3

    iostream을 포함 할 때 왜 printf ()를 사용할 수 있습니까?

  4. 4

    Checkout 세션을 사용하여 구독을 설정할 때 billing_cycle_anchor를 어떻게 설정할 수 있습니까?

  5. 5

    TypeError : nonetype을 확인할 때 'NoneType'개체를 구독 할 수 없습니다.

  6. 6

    DNS를 확인할 수 없지만 FQDN을 사용하여 nslookup을 ping하고 사용할 수 있습니까?

  7. 7

    Pay Pal을 사용하여 구독 버튼없이 구독을 판매 할 수 있습니까?

  8. 8

    win_ping을 사용하여 Windows Server를 ping 할 수 없습니다.

  9. 9

    win_ping을 사용하여 Windows Server를 ping 할 수 없습니다.

  10. 10

    바디에서 BFC 기능을 사용할 때 왜 플로트를 지울 수 없습니까?

  11. 11

    Spring JMS를 사용하여 영구 구독을 중지하고 다시 시작할 수 있습니까?

  12. 12

    구별을 사용하여 그룹화 할 때 결과를 제대로 정렬 할 수 없습니다.

  13. 13

    .C가 아닌 .Call을 사용하여 C ++ 함수를 호출 할 때 왜 segfault가 발생합니까?

  14. 14

    왜 np.mean ()을 사용하여 평균을 취할 수 없습니까?

  15. 15

    try :로 예외를 잡을 때 왜 반환 할 수 없습니까?

  16. 16

    camel-salesforce-3.4.0-SNAPSHOT을 사용하여 Salesforce 플랫폼 이벤트를 구독 할 수 없습니다.

  17. 17

    MQTT 및 ESP8266을 사용하여 Azure Device Twins를 구독 할 수 없습니다.

  18. 18

    STL 목록을 사용할 때 왜이 회문 기능을 사용할 수 없습니까?

  19. 19

    템플릿을 사용할 때 왜 앞으로 선언을 사용할 수 없습니까?

  20. 20

    때때로 gson을 사용하여 json에서 날짜를 구문 분석 할 수 없습니다.

  21. 21

    왜 stderr을 exec를 사용하여 파일로 리디렉션 할 수 없습니까?

  22. 22

    내 웹 사이트를 호스트에 업로드 할 때 왜 찾을 수 없습니까?

  23. 23

    플라스크 및 Sqlite3를 사용할 때 TypeError : 'NoneType'개체를 구독 할 수 없습니다.

  24. 24

    Beautifulsoup의 URL을 연결할 때 왜 문자열을 사용할 수 없습니까?

  25. 25

    numpy 배열 요소를 선택할 때 왜 AND 연산자를 사용할 수 없습니까?

  26. 26

    pgmpy를 사용하여 MarkovModel을 구현하려고 할 때 KeyError를 수정하는 방법이 있습니까?

  27. 27

    RxJ를 사용하면 from (myPromise)를 사용할 때 구독을 취소 하시겠습니까?

  28. 28

    프록시를 사용하여 Google을 ping 할 수 없습니다.

  29. 29

    프록시를 사용하여 Google을 ping 할 수 없습니다.

뜨겁다태그

보관