다음과 같은 문제가 있습니다 :ZMQ 중개인 자동 발견
클라우드에 ZMQ 기반 중개자 그룹이 있습니다. 이는 특정 IP 범위를 사용하는 Amazon VPC에서 작동합니다.
또한 클라이언트 앱이 있으며 모든 호스트에서 실행되며 전 세계 어디에나 위치 할 수 있습니다.
나는 자동차에 이러한 클라이언트가 사용 가능한 브로커 :이 클라이언트가 시작될 때,이 브로커 IP가 위의 목록을 가져해야
Broker1: 172.44.22.33
Broker2: 172.44.22.34
Broker3: 172.44.22.35
Broker4: 172.44.22.36
....
Client: 82.34.55.12
을 ... 발견 할 수 있습니다.
제 질문은 이것을하는 가장 좋은 방법입니다.
물론 클라이언트는 범위 내 모든 IP에 연결하려고 시도 할 때 무차별 방식을 사용할 수 있지만 이는 좋거나 효율적인 해결책은 아닙니다.
VPC는 멀티 캐스트를 지원할 수 있습니다 (n2n을 통해).이 경우 클라이언트는 멀티 캐스트 메시지를 보내고 사용 가능한 브로커는 항상 멀티 캐스트 데이터의 일부인 보낸 사람 IP를 사용하여 "응답"합니다. (내가 아는 한).
하지만 더 좋은 방법은 없나요? 클라이언트가 자동으로 검색 할 필요가 있습니다. 왜냐하면 이것은 0 구성 시스템이어야하기 때문입니다.
나는 멀티 캐스트/브로드 캐스트 나 bonjure/zeroconf 같은 것을 사용하여 LAN상에서 쉽게 발견 할 수 있음을 알고 있습니다. 그러나 클라이언트는 내 네트워크의 일부가 아니며 어디서나 위치 할 수 있습니다.
미리 감사드립니다.
편집 :
내가이 가능한 브로커에 대한 정보를 저장하는 것 "설정 서버"를 추가하는 등, 너무 다른 방법으로 해결 될 수 알지만, 내가 분산 솔루션을 선호하는 것이다.EDIT2 :
그것은 광역 검색이 지원되기 때문에이 목적을 위해 사용될 수있는 DNS-SD 보인다. 알 수 있듯이 수동 DNS 서버에도 일부 특수 DNS 항목을 추가 할 수 있습니다.
클라이언트는 DNS 레코드가 보급 된 서비스의 데이터를 저장하는 도메인 이름에 대해서만 알고 있어야합니다.
클라이언트가 bonjur/avahi 라이브러리 또는 다른 DNS-SD 구현을 통합해야 이러한 쿼리를 수행 할 수 있습니다. 맞습니까? 이것에 대한 최고의 무료 라이브러리는 무엇입니까, avahi?
답변 해 주셔서 감사합니다. 처음에는 몇 명의 브로커가있을 것이지만,이 숫자는 빠르게 증가 할 것입니다. 6-12 개월 안에 수천 명의 고객에게 서비스를 제공하는 100 대 이상의 중개인이있을 수 있습니다. 가십 프로토콜을 살펴 봅니다. – user2297996