노드 네트워크가 있습니다. 노드는 서로 메시지를 보낼 수 있어야합니다. 메시지는 노드에서 노드로 만 전송됩니다 (즉, 브로드 캐스트 없음). 노드는 메시지를 보내야하는 노드의 주소를 알고 있습니다. 노드는 수신자를 반드시 알 필요는 없습니다. 일부 노드 (주 노드라고 함)는 아주 많은 수의 노드 (> 100k)와 메시지를주고받을 수 있습니다.Java에서 신뢰할 수없는 네트워크에 사용할 메시지 서비스
한 노드에서 다른 노드로 영구 메시지를 보내려합니다. 신뢰할 수없는 네트워크에서도 비동기 적으로 발생하기를 원합니다. 나는. 나는 메시지 서비스가 나를 위해 재전송, 승인 등을 처리하기를 원한다.
http://activemq.apache.org/networks-of-brokers.html에서 설명한대로 중개자의 정적 네트워크 (내 작은 설정에서는 2 노드 만)로 ActiveMQ를 사용해 보았습니다. 이것은 잘 작동하지만, 100k 노드가 하나의 단일 노드 (메인이라고 함)와 연결되어 100k 브로커가 실행되어 모든 관련 노드로 메시지를 전달할 수 있어야합니다. 모든 노드는 산발적으로 전송 될 수 있으며 주 노드는 다른 노드를 여러 번 (> 10k) 보내야 할 수도 있습니다 (주 : 모든 브로드 캐스트는 서로 다른 메시지를 수신하므로 아무런 브로드 캐스트가 없습니다).
내가 사용한 상상의 하나는이 그림 http://i154.photobucket.com/albums/s260/sheep_p/communication.png에서 볼 수 있습니다. 여기서 실린더는 대기열을 나타냅니다. 모든 노드에는 인바운드 및 아웃 바운드 큐가 있습니다.
이 기술을 구현하는 데 사용할 수있는 기술은 무엇이며 필요한 기술 구성은 무엇입니까?
기술은 Java와 함께 작동해야하며 무료 개인 또는 학술 라이센스가 있어야합니다.
그래서 신뢰할 수없는 네트워크를 통해 안정적인 통신을 구축하고 높은 확장 성을 원하십니까? 네티티를 확인해 봤어? –
@ nikolay-kuznetsov 코멘트를 주셔서 감사합니다. Netty를 확실히 볼 것입니다. 귀하의 질문에 대답하기 위해 : 아니, 전에 그것을 고려하지 않았습니다. – abondoa