자바 리 액 터 반응 기 모드 사용 방법 상세 설명
지금까지 고성능 네트워크 프로 그래 밍 은 반응 기 모드 를 돌 릴 수 없 었 다.많은 유명한 서버 소프트웨어 나 미들웨어 는 반응 기 모델 을 바탕 으로 이 루어 진다.예 를 들 어 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)이 처리 되 지 않 으 면 뒤의 연결 요청 이 받 아들 여지 지 않 아 뒤의 요청 이 막 히 고 서버 의 스루풋 이 너무 낮 다 는 것 이다.서버 로 서 는 심각 한 문제 다.이상 이 바로 본 고의 모든 내용 입 니 다.여러분 의 학습 에 도움 이 되 고 저 희 를 많이 응원 해 주 셨 으 면 좋 겠 습 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
JPA + QueryDSL 계층형 댓글, 대댓글 구현(2)이번엔 전편에 이어서 계층형 댓글, 대댓글을 다시 리팩토링해볼 예정이다. 이전 게시글에서는 계층형 댓글, 대댓글을 구현은 되었지만 N+1 문제가 있었다. 이번에는 그 N+1 문제를 해결해 볼 것이다. 위의 로직은 이...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.