나는 서버와 150 대의 클라이언트 컴퓨터를 가지고있다. 모든 클라이언트가 서버에 등록하고 서버는 등록 된 클라이언트에서 메소드 호출 (콜백)을 수행합니다.서버 아키텍처 디자인에서 클라이언트 연결을 확인 하시겠습니까?
이 시스템에서는 서버가 주기적으로 (연결 테스트) 연결된 모든 클라이언트에 ping을 수행합니다 (ping은 콜백 메소드 임). 하지만 모든 클라이언트가 스레드에서 작업을 ping 할 경우. 사용할 수없는 클라이언트에서 메서드 호출 대기 시간 때문에 너무 느리게 작동합니다. 그리고 연결이 끊어진 경우 시간 초과가 발생할 때까지 기다립니다. 그래서 대기 시간이 너무 깁니다. 연결 상태 검사에 대한 새로운 아이디어가 있습니다.
연결 된 클라이언트마다 스레드를 생성합니다. 그리고 각 스레드는 자신의 클라이언트를 제어합니다. 따라서 모든 시스템 연결 검사는이 스레드에 의해 수행됩니다.
유용할까요?
이 프로젝트에 대한 몇 가지 전문적인 제안은 있습니까?
감사합니다.
클라이언트가 서버 객체에 연결되어 sayHello 메소드를 호출했다고 생각하십시오. 반면 서버는 클라이언트 메소드를 호출하지만 ...이 클라이언트는 응답하지 않습니다. (클라이언트는 서버 메소드를 호출 할 수 있지만 서버는 클라이언트 메소드를 호출 할 수 없습니다.) 어떻게 생각하세요? – emin
서버는 정의에 따라 클라이언트를 호출 할 수 없습니다. 응답을 보내 클라이언트의 요청을 처리합니다. 그게 다야. – ahanin
서버는 클라이언트에 대한 콜백을 수행 할 수 있습니다. 이것은 주로 사용되는 메커니즘입니다. http://docs.oracle.com/cd/E13211_01/wle/rmi/callbak.htm – emin