[SPRING] SPRING 서버에서 JAVA NIO 프레임 워크 사용
SPRINGSPRING 서버에서 JAVA NIO 프레임 워크 사용
Web-Servlet과 일반 Java 응용 프로그램을 혼합 한 하이브리드 서버 응용 프로그램을 구현하고 있습니다.
java 응용 프로그램은 원격 장치의 수천 개의 소켓을 관리하는 반면 웹 응용 프로그램은 사용자와 상호 작용하여 소켓의 상태를 설정 / 읽습니다. Java NIO 또는 Apache-MINA와 Jboss-Netty는 소켓 응용 프로그램을위한 좋은 옵션 인 것으로 보입니다.
첫 번째 질문은 동일한 서버에서 두 응용 프로그램 (웹 인터페이스가있는 서블릿 + Java NIO 응용 프로그램)을 모두 실행할 수 있습니까? 이제는 서블릿 용 Tomcat과 소켓 애플리케이션 용 일반 procrun 데몬을 사용합니다.
Spring에서 NIO 사용에 대한 정보를 보지 못했기 때문에 Spring이이 조합에 적합한 지 모르겠습니다.
두 번째 질문은 두 애플리케이션이 둘 사이에서 어떻게 통신 할 수 있는가하는 것입니다. 지금 당장은 RMI를 사용하고 있지만 더 나은 솔루션이 있는지 궁금합니다.
해결법
-
==============================
1.Spring을 사용하여 동일한 jvm에서 NIO 소켓 서버와 웹 서버를 확실히 실행할 수 있습니다. 나는 Grails (어쨌든 봄에 래퍼)를 사용하여이 작업을 수행했습니다. Grails의 부트 스트랩 클래스에서 tcp 서버를 시작합니다.
Spring을 사용하여 동일한 jvm에서 NIO 소켓 서버와 웹 서버를 확실히 실행할 수 있습니다. 나는 Grails (어쨌든 봄에 래퍼)를 사용하여이 작업을 수행했습니다. Grails의 부트 스트랩 클래스에서 tcp 서버를 시작합니다.
일반적인 스프링 웹 응용 프로그램의 경우 특정 포트 (예 : 8090)에서 수신 소켓 서버를 시작하고 스프링 프레임 워크 수명주기 리스너 또는 사후 프로세서를 사용하여 8080에서 웹 서버를 시작할 수 있습니다.
소켓 서버를 스프링 빈으로 만들고 아래와 같이 init 메소드를 사용하여 실제로 소켓 서버를 시작하십시오. 스프링 프레임 워크는 빈 인스턴스화시이를 자동으로 호출합니다.
netty 서버의 구성 예는 다음과 같습니다.
<bean id="tcpServer" class="netty.NettyTCPServer" init-method="createServerBootstrap" destroy-method="stopServer"> <property name="pipelineFactory" ref="pipelineFactory"></property> </bean> <bean id="pipelineFactory" class="netty.HandshakePipelineFactory"> <lookup-method name="createHandshakeHandler" bean="handshakeHandler" /> <property name="stringDecoder" ref="stringDecoder"></property> <property name="stringEncoder" ref="stringEncoder"></property> <property name="nulEncoder" ref="nulEncoder"></property> <property name="frameSize" value="256"></property> </bean>
from https://stackoverflow.com/questions/3758970/using-java-nio-framework-in-spring-server by cc-by-sa and MIT license
'SPRING' 카테고리의 다른 글
[SPRING] Spring 문맥에 모의 삽입하기 [duplicate] (0) | 2019.01.15 |
---|---|
[SPRING] 단계 정의 파일간에 동일한 셀레늄 WebDriver 공유 (0) | 2019.01.15 |
[SPRING] Spring boot rest service에서 파일을 다운로드한다. (0) | 2019.01.15 |
[SPRING] 메이븐 (maven)과 부두 (jetty)를 사용하여 실행 가능한 항아리 만들기 (0) | 2019.01.15 |
[SPRING] Spring 보안 OAuth2는 JSON을 허용합니다. (0) | 2019.01.15 |