2017-10-29 14 views
-1

Java를 사용하여 프록시 서버를 구축 중입니다. 이 응용 프로그램은 도커 컨테이너 (다중 인스턴스)에 배포됩니다.공유 노드 현명한 대기열

다음은 현재 작업하고있는 요구 사항입니다.

  1. 클라이언트는 프록시 서버가 목적지 노드 서버에 수신 된 순서에
  2. 프록시 서버 앞으로 이러한 요청을 HTTP 요청을 보냅니다.
  3. 대상에 도달 할 수없는 경우 프록시 서버는 해당 요청을 저장하고 나중에 사용할 수있을 때 전달합니다. (키) 노드 이름 - - (값) 도달 상태 + 요청
  4. 마찬가지로 요청이 실패 할 경우, 요청은 "X"시간
내가 노드 현명한 큐 주입 (해시지도를 구현

후 다시 시도됩니다 대기열을 수신 한 순서대로).

위의 솔루션은 인스턴스가 하나 뿐인 경우에 적합합니다. 하지만 여러 인스턴스가있을 때이를 해결하는 방법을 알고 싶습니다. 이 문제를 해결하기 위해 사용할 수있는 공유 데이터 구조가 있습니까? ActiveMQ, Redis, Kafka 그런 종류의 (나는 아주 공유 메모리/처리에있어 새로운).

도움을 주시면 감사하겠습니다.

미리 감사드립니다. Ajay

답변

0

구현 아이디어를 얻을 수있는 Jetty 기반 Kafka 용 오픈 소스 REST 프록시가 있습니다. 카프카 클러스터가 쓰기에 매우 사용할 수 있으며, 메시지 지속성에 해당하는 3 개 카프카 노드의 최소 일반적 있기 때문에

https://github.com/confluentinc/kafka-rest

이 프록시는 메시지 자체를 저장하지 않습니다. 클러스터가 일시적으로 쓸 수없는 경우 프록시의 kafka 클라이언트를 재 시도하도록 구성 할 수 있습니다.

+0

의견을 보내 주셔서 감사합니다. –