본문 바로가기
728x90

분류 전체보기121

[RMQ] Python으로 배우는 RabbitMQ 튜토리얼(3) - Publish/Subscribe 이전과 동일하게 Pika Python Client를 사용한다. 이전 글(Python으로 배우는 RabbitMQ 튜토리얼(2) - Work Queue)에서는 작업 대기열(Work Queue)를 실습했다. Work Queue의 경우에는 정확히 한 작업자(Worker)에게 메세지를 전달하는 것이었다면 이번 글에서 배울 Publish/Subscribe의 경우에는 특정 토픽을 구독하는 여러 Consumer에게 메세지를 전달하는 방식이다. 여기에 동작 방식을 잘 설명하기 위해 간단한 로깅 시스템을 추가로 구축할 예정이다. 아래의 예시는 하나의 프로그램에서 Log 메세지를 전송하면, Disk에 Log를 기록하는 프로그램과 화면에 Log를 출력하는 프로그램이 각각 메세지를 수신한다. 1. 교환(Exchanges) 이전.. 2022. 1. 12.
[RMQ] Python으로 배우는 RabbitMQ 튜토리얼(2) - Work Queue - Pika Python Client 사용 - 필수조건 : pika RabbitMQ Client 버전 1.0.0. - RabbitMQ 5672 port process running 첫번째 실습에서 명명된 큐에 메세지를 보내고 받는 프로그램을 만들었다면, 이번 글에서는 시간이 오래 걸리는 작업에 사용하거나 여러 작업자에게 분산하는데 사용할 작업 대기열(Work Queue)에 대해서 배워보려고 한다. (시간이 걸리는 작업을 구현하기 위해 time.sleep()함수를 사용하여 처리할 예정이다.) 작업대기열(Work Queue)의 장점은 작업을 병렬로 처리할 수 있다는 점이다. 먼저 두 개의 worker.py 스크립트를 실행하여 메세지를 처리할 Consumer(worker)를 2개 생성한다. 튜토리얼(1)의 p.. 2022. 1. 12.
[RMQ] Python으로 배우는 RabbitMQ 튜토리얼(1) - Hello World RabbitMQ는 메세징큐 기능을 수행하는 오픈소스이다. 카프카와 동일한 기능을 제공하는 오픈소스 제품이다. 이번 글에서는 Docker로 RabbitMQ 이미지를 다운받아 실행하여 RabbitMQ에 나와있는 튜토리얼들을 수행해보려고 한다. https://www.rabbitmq.com/getstarted.html 여러 언어 중에 Python을 선택해 보았다. 1. 사전 준비 사항 우선 위 실습을 따라하려면 사전에 RabbitMQ가 5672 포트로 설치되어야 한다. 나 같은 경우는 Oracle Linux 장비에 Docker로 RabbitMQ를 실행하였다. 1-1. Docker로 RabbitMQ 다운받아 백그라운드로 실행 root@master:~# docker run -it --rm -d --name rabb.. 2022. 1. 11.
[SpringBoot] 개발환경 설치 1. JDK 11 Download 및 설치 https://www.oracle.com/kr/java/technologies/javase/jdk11-archive-downloads.html Java SE Development Kit 11.0.11 - OS 환경에 맞게 설치파일 다운로드 이후에 cmd 창에서 java -version 확인 C:\Users\syhwang>java -version java version "11.0.11" 2021-04-20 LTS Java(TM) SE Runtime Environment 18.9 (build 11.0.11+9-LTS-194) Java HotSpot(TM) 64-Bit Server VM 18.9 (build 11.0.11+9-LTS-194, mixed mode) 2... 2022. 1. 7.
[Redis] Redis-Tomcat 연동 설정 및 인스턴스간 Session 유지 테스트 이번 글에서는 redis와 tomcat을 클러스터링하여 세션 Clustering 테스트를 해보려한다. 1. Redis session-manager 다운로드 $ cd /apache/tomcat_9.0.21/servers/download $ wget https://github.com/ran-jit/tomcat-cluster-redis-session-manager/releases/download/2.0.4/tomcat-cluster-redis-session-manager.zip 2. 연동을 위한 라이브러리 및 conf 파일 설정 $ unzip tomcat-cluster-redis-session-manager.zip .... $ cp ./tomcat-cluster-redis-session-manager/lib/.. 2022. 1. 6.
[JVM GC] GC 종류와 동작 방식과 G1GC 튜닝 포인트 1. JVM GC 동작 순서 GC를 수행할 때에는 아래와 같이 Three-Step으로 이루어진다. (1) Heap 영역에 존재하는 객체들에 대하여 접근 가능 여부를 확인한다. (2) GC Root에서 시작하여 참조값을 따라가며 접근 가능한 객체들에 Mark 하는 과정을 진행한다. (3) Mark되지 않은 객체들은 제거(Sweep) 대상이 되고 해당 객체들을 제거한다. * 아래는 GC Root에서 접근 가능한 객체를 판단하는 과정에 대한 설명 GC Root에서 참조하고 있는 객체를 찾고 또 그 객체가 참조하는 객체를 찾아가며 Mark 한다. Mark되지 않은 객체는 접근 불가능한 객체(Unreachable Object)로 판단하고 제거(Sweep) 된다. Sweep 과정에 의해 삭제되면 메모리 단편화가 발.. 2022. 1. 5.
728x90