2017-02-05 7 views
0

내 서버에서 Java 다중 스레드 네트워크 응용 프로그램을 실행 중이고 스레드 수를 2000 개 이상으로 늘리면 외부 서버에 연결할 수 없다는 예외가 발생하기 시작합니다. "Connection refused"오류. 이것은 클라이언트 측에서 온 것입니다. 다른 서버에서 1000 개의 스레드를 수행 할 때 오류가 발생하지 않습니다.자바 소켓 연결 제한?

어쨌든이 한계를 늘릴 수 있습니까?

+1

2000 개의 스레드를 참조 할 수 있습니다. Mama mia – Andremoniy

+0

한계는 서버 측에서 적용될 수 있으며이 경우 클라이언트 측에서 제한 할 수 없습니다. – abl

+0

@Andremoniy 80GB 이상의 RAM이있는 20 개의 코어가있는 서버에서 실행됩니다. 하드웨어가 그것을 처리 할 수 ​​있습니다. – Arya

답변

1

의심의 여지가 없습니다. 각 서버에는 수신 연결 제한이 있습니다. 모든 점령에 DOS attacks 기반으로합니다.

+1

2000 년의 연결이 클라이언트에게도 의미가 없음을 언급하는 것도 가치가 있습니다. – rkosegi

+0

@rkosegi 위의 해설에서 말한대로 * Mamma mia ... ":-) – Andremoniy

-1

Java에서 '연결 당 스레드'를 사용하는 것은 2000 연결을 사용할 때 좋지 않은 생각입니다. Java NIO

+0

이것은 클라이언트 측 IO 부담을 말하며 서버가 새로운 연결을 거부하지는 않습니다. – rkosegi