Intergration Spring Bean & Akka Actor
📘 Backend/Spring2023. 9. 28. 19:55Intergration Spring Bean & Akka Actor

📘 Akka Actor Akka Actor는 동시성 모델을 기반으로 하는 어플리케이션 프레임워크 입니다. 이번 진행중인 프로젝트에서, JVM에 여러 Thread가 동시에 작업하는 분산 어플리케이션을 Actor Model을 기반으로 단순화하기 위함과 데이터의 실시간성, 고성능이 요구되는 백엔드 설계를 위해 사용하게 되었습니다. Actor Model의 특징 액터들은 상태를 공유하지 않습니다. 액터들 간의 통신은 메시지 전달을 통해서 이루어 집니다. (이벤트 기반 모델) 액터간의 통신은 비동기로 이루어 집니다. 각 액터는 전달받은 메시지를 큐에 보관하며, 메시지를 순차적으로 처리합니다. 액터는 일종의 경량 프로세서 입니다. Akka 프레임워크는 Scala로 작성되었으므로 Java 기반의 어플리케이션에서 완벽하..

Spring ehCache & DevTools
📘 Backend/Spring2023. 9. 28. 18:32Spring ehCache & DevTools

📘 Spring ehCache Spring에서 간단하게 사용할 수 있는 Java기반 오픈소스 캐시 라이브러리 입니다. redis나 memcached같은 캐시 엔진들도 있지만, 저 2개의 캐시 엔진과는 달리 ehcache는 Daemon을 가지지 않고 Spring 내부적으로 동작하여 캐싱 처리를 합니다. 따라서 redis같이 별도의 서버를 사용하여 생길 수 있는 네트워크 지연 혹은 단절같은 이슈에서 자유롭고, 같은 로컬 환경 일지라도 별도로 구동하는 memcached와는 다르게 ehcache는 서버 어플리케이션과 라이프사이클을 같이 하므로 사용하기 더욱 간편합니다. Ehcache의 2.x 버전과 3 버전의 차이는 큽니다. 3 버전 부터는 javax.cache API(JSR-107)와의 호환성을 제공합니다. ..

2023. 9. 26. 21:00부하테스트 - Event 기반 Data Simulator 개발

보호되어 있는 글입니다. 내용을 보시려면 비밀번호를 해주세요.

Redis Publish/Subscribe Pattern (Spring Data Redis)
📦 Database/NoSQL2023. 9. 13. 15:07Redis Publish/Subscribe Pattern (Spring Data Redis)

구현 요구사항 딥러닝 엔진에서 MQTT 데이터 전송 클러스터링/데이터 미러링된 RabbitMQ 클러스터 5대 노드에서 각 라우팅 키에 맞게 Exchange -> Routing Key -> Quorum Queue에 메시지들이 쌓이고 Slave Queue에 메시지가 미러링 됩니다. Redis 설치 Backend(Spring Data Redis)에서 미러링 된 Slave Queue에서 데이터를 가져와서 Redis Pub/Sub 채널을 열어줍니다. Spring Redis(Backend)에서 소켓을 열어줍니다. 소켓의 URL은 WebSocketConfig 클래스에 나온것처럼 ws://localhost:18080/ws입니다. 프론트엔드(React/TypeScript 환경)에서 백엔드의 소켓에 접속해 데이터를 받아옵..

Redis Configuration
📦 Database/NoSQL2023. 9. 12. 17:03Redis Configuration

Redis Configuration Red Hat Enterprise 9.2.0 버전에서 진행하며, Redis의 각종 옵션들을 공식 문서를 보며 대충 번역해서 자주 사용할 것 같은 옵션들만 정리합니다. Redis Configuration 공식 문서 서버 세팅 📕 Shell Script 작성 #!/bin/bash # 패키지 설치 dnf -y update && dnf -y upgrade && dnf -y install firewalld redis yum-utils net-tools wget curl # 방화벽 포트 & 서비스 설정 systemctl start firewalld && systemctl enable firewalld && firewall-cmd --permanent --add-port=6379/..

RabbitMQ - Clustering & Mirroring
📘 Backend/Message Broker2023. 9. 10. 15:37RabbitMQ - Clustering & Mirroring

📘 요구사항 내가 구현하고 싶은 그림 (그림 잘 못 그림) RabbitMQ의 Clustering & Mirroring을 사용해 구현 같은 네트워크에 있는 5개의 서버(WIndows 4, Linux1)에 각각의 RabbitMQ를 설치 해야 함. WIndows 서버에 있는 4대의 RabbitMQ + 관리서버(Linux) +1로 클러스터링 WIndows 서버의 Rabbit은 각각 다른 Exchange/Queue (Master Queue)를 가진다 Linux 서버의 RabbitMQ는 Windows Rabbit의 각 Queue의 Mirroring인 Slave Queue를 둔다. Linux 서버의 Backend Redis에서 Slave Queue들을 Subscribe하고 데이터를 필요에 따라 변환, Maria DB..

RabbitMQ - Publish/Subscribe On Linux
📘 Backend/Message Broker2023. 9. 10. 15:34RabbitMQ - Publish/Subscribe On Linux

📘 RabbitMQ 설치 (Linux) 서버 환경 : AWS EC2 t2.micro / Red Hat Enterprise Linux 9.2.0 버전 기반으로 진행합니다. Shell Script를 작성해서 간단하게 환경 세팅을 할 건데 그 전에 AWS 보안 그룹에서 사용할 포트/IP 허용 해줍니다. 실제 상용 서버에서는 IP-Port로 필요한 포트만 할당 하는 게 좋지만 저는 귀찮으므로 보안 그룹에서 제 Local External IP 대역을 /32로 설정해서 Local Network에 모든 TCP 포트를 할당하였습니다. 서버 환경 요구사항 Docker 사용 X 인스턴스 생성 후 접속 Xshell, Putty, Gitbash, Cmd 등 터미널을 열고 인스턴스를 생성할 때 만든 Pem키가 위치한 곳으로 이..

image