아키텍처

Ryu 아키텍처 를 소개 합니다. 각 클래스의 사용법 등은 API 레퍼런스 를 참조하십시오.

응용 프로그래밍 모델

Ryu 응용 프로그램 프로그래밍 모델을 설명합니다.

_images/fig1.png

응용 프로그램

응용 프로그램은 ryu.base.app_manager.RyuApp 을 상속한 클래스입니다. 사용자 로직은 응용 프로그램으로 기술됩니다.

이벤트

이벤트는 ryu.controller.event.EventBase 를 상속한 클래스의 개체입니다. 응용 프로그램 간의 통신은 이벤트를 송수신함으로써 가능합니다.

이벤트 큐

각 응용 프로그램은 이벤트 수신을 위한 큐를 하나 가지고 있습니다.

스레드

Ryu 는 eventlet을 사용한 멀티-스레드로 동작합니다. 스레드 는 비선점형 이므로, 시간이 걸리는 처리를 수행하는 경우에는 주의가 필요합니다.

이벤트 루프

응용 프로그램 당 한 개의 스레드 가 자동으로 생성됩니다. 이 스레드는 이벤트 루프를 실행 합니다. 이벤트 루프는 이벤트 큐에 이벤트가 있으면 꺼내 해당 이벤트 처리기 (뒤에 설명) 를 호출합니다.

추가 스레드

hub.spawn 함수를 사용하여 추가 스레드를 만들고 응용 프로그램 별 처리를 할 수 있습니다.

eventlet

eventlet 기능을 응용 프로그램에서 직접 사용할 수 있지만, 추천하지 않습니다. 가능하다면 hub 모듈에서 제공하는 래퍼를 사용하도록 하십시오.

이벤트 처리기

응용 프로그램 클래스 의 메서드를 ryu.controller.handler.set_ev_cls 데코레이터로 한정하여 이벤트 처리기를 정의할 수 있습니다 . 이벤트 처리기는 지정된 형식의 이벤트가 발생했을 때 응용 프로그램 이벤트 루프에서 호출됩니다.