128
파이썬 비동기 라이브러리 Asyncio
생각한다.
ØMQ
소켓을 사용하는 상용 코드에서는 각각의 소켓을 처리하는 코루틴 처리기를
별도의 파일로 분리하여 더 나은 코드 구조로 만든다. 하나의 수신/송신 소켓을 사용하는 프로
그램이더라도 수신과 송신에 대해 별도의 코루틴을 사용하는 것이 더 쉽다.
개선된 코드는 스레드를 사용하는 경우와 유사한 형태를 보였다. 실제로 스레드를 사용하는 경
우에도 동일한 구조로 구성하면 된다. 블로킹
do
_
reciever
()
와
do
_
subscriber
()
를 각각의
스레드에서 실행하면 된다. 하지만 애플리케이션이 시간이 지남에 따라 기능과 복잡도가 늘어
나면 경합 조건의
가능성
도 증가할 것이다.
이제부터 탐험해 볼 부분이 많다. 다음 사례 연구에서는
ØMQ
를 실제로 활용하는 방법에 대
해 더 알아보겠다.
4.5.2
사례 연구: 애플리케이션 성능 모니터링
오늘날 현대적이고 컨테이너 기반의 마이크로서비스 배포 환경에서는 애플리케이션의
CPU
와
메모리 사용량을 확인하는 작업이 예전과 같이 단지
top
을 실행하는 것만으로는 처리하기 힘
든 문제가 되었다. 이 문제를 해결하기 위해 몇 년 동안 여러 가지 상용 제품이 출시되었지만
소규모 스타트업이나 취미 생활인 고객들에게는 비용이 너무 크다.
이번 사례 연구에서는
ØMQ
와
asyncio
를 활용하여 분산 애플리케이션 모니터링을 수행하는
작은 프로토타입을 만들겠다. 설계는 다음과 같이
3
개의 부분으로 구성한다.
애플리케이션 계층
이 계층에 모든 애플리케이션이 포함되어 있다. ...