2014-09-12 2 views
0

현재 메시지 릴레이에 ActiveMQ MQTT를 사용하기 위해 Android 및 iOS 응용 프로그램을 설치했습니다. 모든 것이 잘 작동하지만 아무도 도와 줄 수 있다면 다음과 같은 질문을합니다.활성 MQ 보안 및 확장 성

1) 이해하는 바와 같이 모든 클라이언트는 분명히 MQ 서버에 열린 TCP 연결을 유지해야하며 주제를 등록하고 주제가 공개되면 등록 된 클라이언트가 통지를받습니다. 클라이언트의 수가 수백만에 달하면 수백만 개의 활성 열린 TCP 연결을 의미합니다. 서버에 대한 이와 같은 많은 수의 연결의 파급 효과는 무엇입니까? 상황을 처리하는 더 좋은 방법이 있습니까? 연결하는 대신 1 분에 1 번 정도 '세계의 상태'(즉, 읽지 않은 최신 메시지)를 쿼리하고 클라이언트의 연결을 끊으라고 권하는 것이 좋습니다. 또는 내가 편집증적이고 수백만 개의 열린 TCP 연결이 괜찮습니까?

2) 보안에 관해서는 SSL을 사용할 수는 있지만 제 3자가 모든 주제 (또는 개별 주제)를 구독하지 못하도록하는 방법을 여전히 이해할 수 없다는 것을 알고 있습니다. 내가 이해하는 한, 고객은 서버에 연결하여 주제에 가입해야하지만 타사 응용 프로그램이 동일한 작업을 수행하지 못하게하려면 어떻게해야합니까? 그런 일을 어떻게 막고 내 앱의 클라이언트 만 자신의 주제에 연결하고 구독 할 수 있는지 확인하십시오. 당신의 도움에 미리

많은 감사,

답변

1
  1. 다시 연결 않는 경우, 당신은 당신의 클라이언트가 영구 가입을 만들 수 있는지 확인해야합니다. 그렇지 않다면 연결 사이에 게시 된 모든 것을 놓치게됩니다. 이것은 또한 고려해야 할 확장 성 문제 일 수 있습니다. 수백만 개의 연결을 사용하면 클러스터를 사용하거나로드 균형 조정을 지원하는 토폴로지를 고려하는 것이 좋습니다. 끊임없이 클라이언트를 다시 연결하면 예기치 않은 오버 헤드는 물론 브로커가오고가는 모든 것을 따라 잡을 수 있습니다. 결정의 큰 부분은 하드웨어뿐만 아니라 모든 서버를 기반으로합니다.

이 단지 스크래치 토폴로지의 표면하지만 here is a good starting point.

편집 : 추가 정보는 내가 처음 이동을 추가하는 의미 연결의 수백만에 문제를 해결하기 위해 노력합니다.

  1. ActiveMQ 내의 인증 플러그 인을 통해 역할 기반 보안을 설정할 수 있습니다. 와일드 카드를 사용하여 특정 주제 트리에 대한 액세스를 허용하는 패턴으로 각 역할/그룹을 설정할 수 있습니다.

작동 방법 및 방법에 대한 귀하의 질문에 대답해야 좋은 정보와 See this page for more details on setting this up.

Here is another 사이트.