목록IT (165)
And Brain said,
오늘은 Spring Cloud의 Bus에 대해 알아보도록 하자. MSA는 다들 잘 알다시피 여러 개의 마이크로서비스가 각각 독립적으로 동작하고 서로 통신하여 기능을 제공하는데 이때, 마이크로서비스들 간에 변경 사항이 발생할 경우, 이를 다른 서비스들에게 전파해야 한다. 이를 위해 Spring Boot 애플리케이션에서 사용되는 버스 구현체가 Spring Cloud Bus다. Spring Cloud Bus는 AMQP(Advanced Message Queuing Protocol) 기반의 브로커 기반 메시징 시스템으로, RabbitMQ나 Apache Kafka를 이용하여 구현한다. 메시지 브로커에 대한 더 자세한 내용은 아래 포스팅을 참조 https://theworldaswillandidea.tistory.co..
오늘은 MSA의 서비스 간 비동기 통신을 위한 미들웨어인 RabbitMQ에 대해 알아보고 실습까지 진행해보자. MSA에서는 각각의 서비스들의 결합도를 낮추고 유연성을 높이기 위해 RabbitMQ, Kafka, Redis같은 메시지 브로커들을 사용한다. 메시지 브로커란 메시지 큐의 일종으로, 다수의 클라이언트 간에 메시지를 전달하고, 중개하는 역할을 한다. 만약, 한 서비스에서 다른 서비스로 데이터를 전송해야 하는 상황에서 직접적인 REST API 호출이 아닌 RabbitMQ를 통해 메시지를 전송할 경우, 발신 서비스는 메시지를 전송한 후에 바로 응답을 반환할 수 있으며, 수신 서비스는 해당 메시지를 수신하여 처리할 수 있다. 이를 통해 서비스 간의 결합도를 낮추고, 장애나 부하 발생 시에도 시스템 전체에..
오늘은 Oracle 사의 VirtualBox를 사용해보도록 하자. VirtualBox는 사용자들이 다양한 운영체제나 미들웨어 등을 가상 머신에서 자유롭게 원하는대로 실행할 수 있도록 해주는 오픈소스 가상머신 소프트웨어다. 자, 그럼 바로 이 VirtualBox의 세상으로 여행을 떠나보자. 각자의 환경에 맞춰 VirtualBox를 설치해준다. https://www.virtualbox.org/wiki/Downloads 설치된 VirtualBox를 실행하여 이런 화면이 나왔다면, 도구 -> 네트워크로 들어간다. Host-only Networks 만들기 NAT Networks 만들기 이러면 VirtualBox의 기초 네트워크 세팅은 끝났다. 이제 가상머신을 만들어보자. 다시 첫 화면에서, 새로만들기 우분투 이미..
오늘은 오픈소스 데이터 수집, 처리, 전송 도구 Logstash에 대해 알아보자. Logstash는 다양한 소스에서 데이터를 수집하고, 필터링, 가공하여 Elasticsearch 등의 저장소에 전송한다. Logstash는 크게 입력(input), 필터(filter), 출력(output) 3가지 파이프라인으로 구성되어있는데 각각은 다채롭게 활용 가능하여 강력한 확장성을 가진다. input, filter, output 설정들에 대해 예제를 통해 알아보자. 기본적으로 conf.d 폴더 내에 설정 파일들을 둬서 설정한다. input { beats { port => 5044 host => "0.0.0.0" }} input 설정을 이런 식으로 해준다면 모든 IP에서 오는 데이터들을 5044 포트로 들어오게 한다. ..
오늘은 Spring Boot의 Profile 설정을 통해, 쉽게 환경 별로 설정을 구분할 수 있도록 해보자. 바로 시작하자. 자, 이렇게 설정하면 된다. 매우 쉬우니 여기서 끝. 부연설명을 해보자면, 일단 이 프로젝트는 Config Server가 따로 존재하여, Config가 프로젝트 외부에 존재한다. 하여 yml 파일에 --- 식으로 다른 환경에 맞춰 Config Server 경로를 잡아주기 위해 Config Server의 IP를 변경해주었다. 기본적으로 Spring boot를 실행하면 프로필은 default로 실행된다. 하지만, 이런 식으로 설정해준다면 각각의 환경에 따라 변화무쌍하게 프로젝트를 운용할 수 있게된다. dev, prod 같은 것들은 예시이므로, 본인이 원하는 프로필네임으로 설정해주어도 ..