자바 리 액 터 반응 기 모드 사용 방법 상세 설명

1653 단어 JavaReactor반응
리 액 터 반응 기 모드
지금까지 고성능 네트워크 프로 그래 밍 은 반응 기 모드 를 돌 릴 수 없 었 다.많은 유명한 서버 소프트웨어 나 미들웨어 는 반응 기 모델 을 바탕 으로 이 루어 진다.예 를 들 어 Nginx,Redis,Netty 등 이다.
반응 기 모드 는 고성능 네트워크 프로 그래 밍 의 필수,필수 모드 이다.
반응 기 안내
반응 기 모드 는 Reactor 반응 기 스 레 드,Handlers 프로세서 두 가지 역할 로 구성 되 어 있 습 니 다.
(1)Reactor 반응 기 스 레 드 의 직책:IO 이벤트 에 응답 하고 Handlers 프로세서 에 배포 합 니 다.
(2)Handlers 프로세서 의 직책:비 차단 적 인 업무 처리 논리.
위의 반응 기 모델 정의 에서 이런 모델 이 어떤 신기 한 점 이 있 는 지 알 수 없다.물론 간단 함 부터 복잡 함 까지 반응 기 모드 도 버 전이 많다.앞의 정의 에 따 르 면 가장 간단 한 버 전 일 뿐이다.
다 중 스 레 드 OIO 의 치 명 적 결함
자바 의 OIO 프로 그래 밍 에서 최초 와 가장 원시 적 인 네트워크 서버 프로그램 은 while 순환 으로 포트 에 새로운 연결 이 있 는 지 계속 감청 합 니 다.있 으 면 하나 와 처리 함 수 를 호출 하여 완성 합 니 다.예제 코드 는 다음 과 같 습 니 다.

@Test
 public void client() throws IOException {
   Socket client = new Socket("127.0.0.1", 9999);
   Writer writer = new OutputStreamWriter(client.getOutputStream());
   writer.write("Hello World");
   writer.flush();
   writer.close();
   client.close();
 }
 
 @Test
 public void server() throws IOException {
   ServerSocket server = new ServerSocket(9999);
   while (true){
     Socket socket = server.accept();
     Reader reader = new InputStreamReader(socket.getInputStream());
     print(reader);
     reader.close();
     socket.close();
     server.close();
   }
 }
이 방법의 가장 큰 문 제 는 이전 네트워크 에 연 결 된 handle(socket)이 처리 되 지 않 으 면 뒤의 연결 요청 이 받 아들 여지 지 않 아 뒤의 요청 이 막 히 고 서버 의 스루풋 이 너무 낮 다 는 것 이다.서버 로 서 는 심각 한 문제 다.
이상 이 바로 본 고의 모든 내용 입 니 다.여러분 의 학습 에 도움 이 되 고 저 희 를 많이 응원 해 주 셨 으 면 좋 겠 습 니 다.

좋은 웹페이지 즐겨찾기