2016-08-04 3 views
0

Apache Mina에서 나오는 IO 또는 작업자 스레드로 보내면 Executor 스레드 풀에서 사용 가능한 모든 스레드가 활용됩니다. Netty는 특정 IO 또는 작업자 스레드에 채널 (연결)을 등록 할 때로드 밸런서 역할을합니다. 이 모델을 사용하면 사용 가능한 스레드가있는 동안 채널이 고정 된 스레드를 기다려야 할 수 있습니다. 내 이해는 이것이 채널에서 메시지 순서를 보장하기 위해 수행되지만 스레드를 고정하지 않고 메시지 순서를 보장하는 기술이 있다는 것입니다. 특정 스레드에 대한 채널 고정에 고유 한 이점이 있습니까?Netty가 executor 스레드 풀의 특정 스레드에 채널을 등록 (등록)하는 이유는 무엇입니까?

유휴 스레드가있을 수 있고 불필요하게 대기중인 채널이있을 수 있으므로 서버의 처리량에 대한 문제로 스레드의 고정을 확인합니다. 스레드의 고정은 쉽게 수정할 수없는 강력한 프레임 워크 원칙입니까?

+0

당신은 비 IO를 처리 할 수있는 IO 스레드 또는 작업 스레드를 고정하는 것에 대해 이야기하고 있습니까? –

답변

0

Netty 3에서 Netty 4로 갈 때 의도적 인 변경이었습니다.이 디자인 결정의 한 가지 이점은 스레드 안전 처리기를 작성하는 것이 쉬워진다는 것입니다.

3.5에서 불일치를 수정하려는 시도가 있었지만 3.x에는 잘 정의 된 스레드 모델이 없습니다. 4.0은 사용자가 스레드 안전성에 대해 너무 걱정하지 않고 ChannelHandler를 작성하는 데 도움이되는 엄격한 스레드 모델을 정의합니다. 당신이 행동

수정에 관심이 있다면 읽을 가치가
  • http://netty.io/wiki/new-and-noteworthy-in-4.0.html#well-defined-thread-model
  • 뭔가 4.0

      의 변화

    설명3210

    관련 문제