2012-12-06 3 views
-1

내 프로젝트는 실제로 꽤 기본이지만, 나는 그것에 대한 올바른 정보를 찾을 수 없다. (예 : 여러 클라이언트를 수용하는 서버를 만드는 방법 만 찾을 수있다.)자바 nio socketchannel : 여러 서버에 클라이언트

아이디어는 간단합니다.
여러 서버에 연결할 클라이언트를 만들고 해당 서버의 쿼리 항목 + 자치적 메시지를 기다리고 있습니다.
대략적인 아이디어를 얻으려면 여러 서버를 SSH 연결 (Jsch 사용)을 통해 모니터링하고, 로그인을 수행하여 매분 1 명령을 보내 서버의 모든 경보를 검색하는 간단한 프로그램을 만들고 싶습니다. 또한 서버는 즉시 알람을 보냅니다.

내 질문은 다음과 같습니다. 진행 방법에 대한 예제가 있습니까? 모든 튜토리얼? (구글은별로 도움이되지 못했지만 어쩌면 충분히 열심히 노력하지 않았을 수도있다.)

참고 : 스레드에서 일반 소켓을 사용하여 이미 동일한 작업을 수행 할 수 있지만 수천 개의 서버를 폴링 할 때부터 동일한 수의 스레드 + 소켓을 여는 것이 좋지 않다고 들었습니다.

+0

일부 아이디어 양식을들을 수 있습니다 : http://stackoverflow.com/questions/130067/best-server-performance-monitoring-tool-for-java-servers – Forhad

+0

제안을 주셔서 감사합니다 ... 내 문제를 완전히 해결하지 못했다. 그건 내 실수 다. 내 예제 (SSH를 통한 서버 모니터링)는 사실 단순한 지나치게 단순화되었는데, 내가 언급 한 "서버"는 실제로 독점적 인 장치이기 때문에 우리는 이미 Nagios와 OpenNMS를 시도했지만 그들은 전혀 맞지 않는다. => 우리는 집에서 만든 솔루션이 필요합니다. NIO와 함께해야 할 의무가 있습니다. – Loose

답변

0

NIO에서 작동하는 SSH 구현을 찾지 못할지 의심 스럽습니다.

나는 어떤 점도 있음을 더 의심합니다. 이 프로토콜은 NIO를 사용하여 스레드를 절약하면 아무런 차이가 없거나 사실 NIO 스레드가 현재 서비스하고있는 채널을 암호화하고 암호 해독하는 동안 다른 서비스 채널을 굶겨서 더 악화됩니다. 그리고 1 분 간격으로 실제로 폴링을한다는 사실을 고려할 때 NIO를 처음 사용하는 이유는별로 없었습니다.

JSch 또는 Ganymed SSH 또는 다른 SSH 라이브러리, 스레드 중 하나를 사용하고 평생을 즐기십시오.

+0

답변 해 주셔서 감사합니다! 나는 그것이 내가 기대하고 있었던 것이 아니라는 것을 인정해야한다. 그러나 나는 "당신의 삶과 함께한다"부분을 좋아한다! – Loose