>  기사  >  백엔드 개발  >  Apache Mina 연구 노트(1) - 시작하기

Apache Mina 연구 노트(1) - 시작하기

黄舟
黄舟원래의
2017-01-18 09:43:151154검색

이 장에서는 MINA가 무엇인지, Non-Blocking IO가 무엇인지, Non-Blocking IO에서 이 프레임워크를 개발한 이유에 대해 설명하고 MINA가 실행되는 매우 간단한 예도 보여 드리겠습니다. .

1. 비차단 IO

비차단 IO API는 JAVA 버전 1.4에 등장했으며 수만 개의 애플리케이션에서 사용되었습니다. NIO API는 다양한 비차단 IO를 포괄합니다. java.nio.* 패키지에는 다음과 같은 중요한 구조가 포함되어 있습니다.

Buffers - Data Containers
Chartsets - Containers translators for bytes and Unicode
Channels - represents connections to entities capable of I/O operations
Selectors - provide selectable, multiplexed non-blocking IO
Regexps - provide provide some tools to manipulate regular expressions

MINA 프레임워크에서 우리는 채널, _Selectors_ 및 버퍼에 가장 관심이 있습니다.

2.NIO vs BIO

IO를 차단하는 BIO는 읽기, 쓰기 등의 작업을 수행할 때 소켓을 사용하여 차단 모드를 사용하므로 차이점을 이해하는 것이 중요합니다. 소켓에서 다른 작업을 수행하면 호출자는 작업이 완료될 때까지 차단됩니다.

그러나 일부 실제 상황에서는 요청이 완료되면 호출 수신자가 호출자에게 알릴 것으로 예상하며 호출자는 다른 작업을 완료할 수 있습니다. 동시에 연결된 소켓이 많으면 NIO가 더 나은 솔루션입니다. 각 연결마다 특정 스레드를 만들 필요가 없으며 원하는 경우 일부 스레드를 사용하면 됩니다. NIO에 대해 더 많은 정보를 얻으려면 인터넷에 많은 정보와 책이 있습니다.

3.Why MINA?

일부 웹 애플리케이션을 작성하는 것은 종종 부담스럽고 ​​낮은 작업으로 간주됩니다. 레벨 개발. 개발자들이 자주 접하지 않는 영역이거나, 학교에서 공부했지만 잊어버렸거나, 네트워크 계층의 복잡성이 더 높은 수준의 추상화에 숨겨져 있어 근본적인 내용을 이해하지 못하는 영역입니다.

비동기 IO의 경우 시간이라는 추가적인 복잡성이 나타납니다.

BIO와 NIO의 가장 큰 차이점은 BIO에서는 요청을 보낼 때까지 기다려야 한다는 것입니다. 서버측에서는 연결이 올 때마다 스레드가 생성된다는 의미입니다. 따라서 NIO에서는 동기화 문제를 비-접속 방식으로 해결해야 합니다. 차단 시스템은 어떤 이벤트가 발생하면 참여해야 함을 의미합니다. NIO에서는 이전 통화를 기다릴 필요 없이 요청을 보내고 요청이 완료되면 알려드립니다.

4.프레임워크의 필요성

이러한 차이점과 문제의 복잡성을 고려할 때 가장 좋은 해결책은 이러한 복잡성을 숨기는 것입니다. 이것이 바로 MINA가 하는 일이지만 MINA는 그 이상을 제공할 수 있습니다. TCP, UDP 또는 기타 메커니즘을 통해 통신할 때 공통 IO. TCP와 UDP만 고려한다면 MINA는 이 두 프로토콜을 구별할 수 있으며 사용자는 애플리케이션의 다른 부분에 집중할 수 있습니다.

MINA는 TCP 및 UDP 문제를 해결할 수 있을 뿐만 아니라 직렬 통신 및 ARP에도 매우 유용합니다.

마지막으로 MINA는 서버-클라이언트 통신 문제를 해결하고, 요구 사항에 적응하는 확장성이 뛰어난 서버를 작성하고, 메모리 성능을 반영할 수 있도록 맞춤화된 네트워크 프레임워크입니다. MINA가 잘하는 것은 항상 만들어지고 있는 것입니다. 서버 개발이 더 쉬워집니다.

5.첫 번째 단계

아래에서는 MINA를 사용하는 것이 얼마나 쉬운지 보여주고 매우 간단한 예제를 실행해 보겠습니다. 먼저 여기로 이동하여 최신 버전의 MINA를 다운로드하세요. 최신 버전을 사용하지 말아야 할 특별한 이유가 없다면 개발 시 최신 버전을 사용하시기 바랍니다. http://mina.apache.org/mina-project/downloads.html. 다운로드가 완료되면 다운로드한 파일의 압축을 풀어주세요. 디렉터리에는 몇 가지 하위 디렉터리가 포함되며, 그 중 disk에는 MINA 라이브러리의 jar 파일이 포함되고, docs에는 API 문서가 포함되며, lib에는 MINA에 필요한 jar 파일이 포함됩니다.

6. 첫 번째 MINA 프로그램을 실행합니다

먼저 터미널에 접속했다면, 클래스패스에 다음 패키지를 추가하고 /etc/profile을 수정한 후 적용해 주어야 합니다. . 통합 환경을 사용하는 경우 클래스 경로를 빌드하면 됩니다.

위는 Apache Mina 학습노트(1) - Getting Started 내용입니다. 더 많은 관련 내용은 PHP 중국어 홈페이지(www.php.cn)를 참고해주세요!


성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.