목록Infra (12)
yoongrammer

메시징 큐에서 흔히 사용되는 두 가지 패턴, 퍼블리시/서브스크라이브(Pub/Sub)와 포인트 투 포인트(Point-to-Point, P2P)의 개념과 실제 사용 방법에 대해 알아보겠습니다.각 패턴에 대한 설명과 함께 Python 코드 예시를 통해 실무에서의 적용 방식도 함께 살펴보겠습니다.퍼블리시/서브스크라이브(Pub/Sub) 패턴Pub/Sub 패턴에서는 메시지를 발행하는 퍼블리셔(Publisher)와 그 메시지를 구독하는 서브스크라이버(Subscriber)로 구성됩니다.퍼블리셔는 특정 주제(Topic)에 메시지를 발행하고, 해당 주제를 구독한 서브스크라이버들은 그 메시지를 수신합니다.특징비동기 통신: 퍼블리셔와 서브스크라이버는 서로 직접 통신하지 않으며, 메시징 시스템이 중간에서 메시지를 전달합니다.확..
RabbitMQ: 상세하고 체계적인 가이드현대의 애플리케이션은 복잡하고 분산된 시스템으로 구성되어 있습니다. 이러한 시스템 간의 효율적인 통신을 위해 메시지 브로커가 필수적입니다. 그 중에서도 RabbitMQ는 오픈 소스 메시지 브로커로서 널리 사용되고 있으며, 다양한 프로토콜과 언어를 지원합니다.RabbitMQ란 무엇인가?RabbitMQ는 AMQP(Advanced Message Queuing Protocol)를 구현한 메시지 브로커입니다. 이는 애플리케이션, 시스템, 서비스 간의 메시지 전달을 중개하여 비동기 통신을 가능하게 합니다. RabbitMQ는 신뢰성 있는 메시징, 유연한 라우팅, 고가용성 등을 제공합니다.RabbitMQ의 아키텍처RabbitMQ는 클라이언트 애플리케이션과 서버로 구성됩니다. 클..

Apache Kafka: 상세하고 체계적인 가이드 현대의 데이터 중심 애플리케이션은 실시간 데이터 스트리밍과 높은 처리량을 요구합니다. 이러한 요구를 충족시키기 위해 Apache Kafka는 강력한 솔루션으로 자리매김하고 있습니다. 이 블로그 글에서는 Apache Kafka의 개념, 아키텍처, 주요 기능, 사용 사례, 장단점, 생태계 등을 자세하고 체계적으로 살펴보겠습니다.Apache Kafka란?Apache Kafka는 고성능, 분산형 스트리밍 플랫폼으로, 실시간 데이터 파이프라인과 스트림 애플리케이션을 구축하는 데 사용됩니다. Kafka는 대규모 데이터의 실시간 처리와 높은 처리량을 지원하며, 데이터의 지속성과 내결함성을 보장합니다.Kafka의 아키텍처Kafka의 아키텍처는 여러 구성 요소로 이루어져..

목차캐시(Cache) 란?캐시(Cache)는 자주 사용하는 데이터나 값을 미리 복사해 놓는 임시 저장소입니다.속도 향상을 위해 캐시를 사용하며, 다음과 같은 상황에서 캐시를 주로 사용합니다.원본 데이터보다 빠르게 접근 가능할 때같은 데이터에 반복적으로 접근할 때변하지 않은 데이터를 주로 사용할 때레디스(Redis)는 단순한 구조와 in-memory저장소로 인한 빠른 성능 때문에 캐시에 주로 쓰입니다. 캐싱 전략(Caching Strategies) 캐시로 사용할 때 어떻게 배치하는지가 시스템 성능에 큰 영향을 끼치는데 이를 캐싱 전략(Caching Strtegies)이라고 합니다.Look-AsideLook-Aside는 데이터를 찾을 때 우선 캐시에서 데이터를 찾고 데이터가 있다면 캐시에서 데이터를 가지..

목차 YugabyteDB 설치하기 OS별 YugabyteDB 설치 방법에 대해 알아보도록 하겠습니다. macOS 요구사항 macOS 10.12 이상이어야 합니다. Python 2 or 3이 설치되어 있어야 합니다. YugabyteDB 다운로드 1. 다음 명령어를 수행하여 YugabyteDB를 다운로드합니다. $ wget https://downloads.yugabyte.com/yugabyte-2.5.1.0-darwin.tar.gz 2. tar파일의 압축을 풀고 YugabytyeDB 디렉터리로 이동합니다. $ tar xvfz yugabyte-2.5.1.0-darwin.tar.gz && cd yugabyte-2.5.1.0/ 3. 설치가 완료되었는지 확인해 봅니다. $ ./bin/yugabyted version..

목차YugabyteDB 알아보기YugabyteDB는 고성능 클라우드 네이티브 분산 SQL 데이터베이스입니다. 특징YugabyteDB 특징은 다음과 같습니다.강력한 RDBMS 기능 제공PostgreSQL과 호환됩니다.High Performance낮은 대기시간과 높은 처리량을 보여줍니다. (C, C++ 언어로 만들어짐)Strong consistencyACID transaction 지원으로 강한 일관성을 보장합니다.Continuous availability지속적인 가용성을 위해 raft 분산 합의 프로토콜 기반 이중화를 사용합니다.Horizontal scalability수평 확장이 간단합니다.Multi-cloud다중 클라우드 배포가 가능합니다.AWS, GCP, Azure, PivotalDocker, Kuber..

목차Docker 사용하기Docker 명령은 docker run, docker push와 같이 docker 형식이며, 항상 root 권한으로 실행해야 합니다. docker 명령은 root 권한으로 실행해야 하기 때문에 일반 계정에서는 항상 sudo를 사용해하지만 번거롭다면 sudo를 입력하지 않는 방법이 두 가지가 있습니다. 1. 처음부터 root 계정으로 로그인하거나 sudo su 명령을 사용하여 root 계정으로 전환합니다.$ sudo su# 2. 현재 계정을 docker 그룹에 포함시킵니다.$ sudo usermod -aG docker ${USER}$ sudo service docker restart 현재 계정에서 로그아웃한 뒤 다시 로그인 한다.만약 usermod group 'docker' dos..

목차 Docker 설치하기 OS별 Docker 설치방법에 대해 알아보도록 하겠습니다. MacOS 요구사항 Mac하드웨어는 Hypervisor 프래임워크를 지원하는 Intel 프로세서가 장착된 최신 모델이어야 합니다. 아래 명령으로 확인이 가능합니다. // hv기능이 지원되면 1 로 출력됩니다. $ sysctl kern.hv_support kern.hv_support: 1 macOS는 버전 10.14 이상이어야 합니다. 최소 4GB RAM이 필요합니다. 버전 4.3.30 이전의 VirtualBox는 Docker Desktop과 호환되지 않으므로 설치하면 안 됩니다. 설치방법 1. 아래 링크로 접속 후 Get Docker를 클릭하여 Docker를 다운로드합니다. https://hub.docker.com/ed..

목차 Docker 알아보기 Docker는 컨테이너 기반의 오픈소스 가상화 플랫폼입니다. Docker는 go 언어로 작성되었으며 다음과 같은 Linux 커널의 기능을 활용해 만들어졌습니다. namespaces cgroups Union file systems docker는 OS를 가상화하는 방식이 아닌 프로세스를 격리하는 방식(Container)을 사용해 가상화보다 더 가볍고 빠릅니다. 가상화 머신(Virtual Machine) OS를 설치한 가상머신 이미지를 만들어 배포를 편하게 합니다. OS를 설치해야 하기 때문에 무겁고 성능이 좋지 못한 것이 단점입니다. 전가상화(Full Virtualization)의 느린 속도를 개선하기 위해 반가상화(Paravirtualization)방식이 개발되었지만 OS를 설치..

관련 글 2020/10/25 - [DB] - CockroachDB 란 2020/11/01 - [DB] - CockroachDB 설치 목차 CockroachDB 사용방법 노드 3개를 가지고 있는 클러스터를 만들어 보겠습니다. 1. 클러스터 시작 1. cockroach start 명령을 사용하여 첫 번째 노드를 생성합니다. $ cockroach start \ --insecure \ --store=node1 \ --listen-addr=localhost:26257 \ --http-addr=localhost:8080 \ --join=localhost:26257,localhost:26258,localhost:26259 \ --background 다음과 같은 메시지가 표시됩니다. * * WARNING: RUNNIN..