저는 java 웹 서버 앞에 node.js를 놓고 노드의 비동기 처리를 활용하기 위해 노력해 왔습니다. 일부 조명 처리 및 기타 작업과 결국 socket.io를 수행합니다. 응용 프로그램의 실제 작업의 대부분은 자바로 이루어졌으며 지금까지 모든 요청을 처리하기 위해 부두 웹 서버를 사용해 왔습니다. 나는 처음에 node-http-proxy를 사용하여 (전달 된 요청을 수정할 수도 있음) 고려하고 있었다. 더 깊이 고려해 보면 http 요청을 전달하는 대신 RabbitMQ와 node-amqp 라이브러리를 사용하여보다 강력한 통신 프로토콜을 사용할 수 있다는 것을 알았습니다. 이렇게하면 java에서 node 및 socket.io를 통해 브라우저로 다시 푸시 할 수있게됩니다.RabbitMQ 및 nodejs를 사용하여 독립 실행 형 Java를 실행하는 방법
내 질문은 : 이제 노드와 들어오는 모든 요청을 처리합니다. 부두에서 자바를 계속 실행해야하는 이유가 있습니까? 그렇지 않다면, 문자 그대로 명령 행의 main 메소드에서 Java 코드를 실행해야합니까? 마지막으로이 접근법에 중대한 결함이 있습니까?
우리의 응용 프로그램은 단일 페이지 응용 프로그램이며 초기에 페이지를로드하라는 첫 번째 요청을 넘어 모든 추가 호출은 안정된 json 호출이며 amqp를 통해 쉽게 전송되어야합니다.
Java에서 다중 스레드를 사용할 수없는 이유는 무엇입니까? 메시지 브로커의 복잡성을 모두 추가하고 다른 언어로 코드를 작성하면 무엇을 얻고 자합니까? – SimonC
* why *에 대해 너무 깊이 들어 가지 않고 우리가 얻고 자하는 대부분은 요청을 비동기 적으로 처리하는 이점, 특히 값 싸게 요청을 처리하는 이점 (socket.io/throttling)입니다. 우리는 부두 계속을 탐험했지만 Java 코드는 스레드에 상당히 의존합니다. 지금은 복잡함에도 불구하고 이것이 더 깨끗해 보입니다. 우리는 다른 분야에서도 AMQP를 활용할 계획을 가지고있었습니다. –