Kafka란? (feat.성능과 고가용성)
·
Infra
카프카(Kafka) 란?카프카 홈페이지에 들어가 보면 카프카를 고성능 분산 이벤트 스트리밍 플랫폼이라고 소개하고 있다.또한 Fortune 100 기업 중 80프로 이상이 카프카를 사용한다고 한다. 아래의 이모티콘에서 볼 수 있듯다양한 업종에서 카프카를 사용하고 있다.카프카의 구조카프카의 구조를 간단히 도식화하면 위와 같은데 프로듀서와 컨슈머는 메시지(이벤트)를 기반으로통신한다. 프로듀서는 카프카 클러스터에 메시지를 저장하고, 컨슈머는 카프카 클러스터에서 메시지를 가져온다. 카프카 클러스터를 이루고 있는 브로커는 각각 하나하나가 서버라고 생각하면 되는데이런 브로커들이 모여 카프카 클러스터를 형성한다. 카프카 클러스터를 관리하기 위해 주키퍼 클러스터(앙상블)가 필요하다 (Kafka 2.8.0 버전부터 주키퍼..
클러스터와 노드 개념
·
Infra
클러스터란?위키백과에서 찾아보면 컴퓨터 클러스터는 여러 대의 컴퓨터들이 연결되어하나의 시스템처럼 동작하는 컴퓨터들의 집합을 말한다고 한다.노드란?노드는 클러스터를 구성하는 개별적인 컴퓨터(서버), 가상머신, 혹은 컨테이너 등을 가리키는 개념이다.여기서 주의할 것은 노드라고 해서 무조건 컴퓨터를 가리키는 것이 아니란 것이다.(예를 들어 쿠버네티스에서의 노드는 컴퓨터이지만, HDFS(Hadoop Distributed File System)에서 노드는대부분 스토리지 장치이다.)마스터 노드(Master Node)와 워커 노드(Worker Node)노드는 마스터 노드와 워커 노드로 나누어진다 (구체적인 명칭이나 역할은 사용하는 기술에 따라 달라질 수 있다.) 마스터 노드클러스터 전체를 모니터링하고, 자원(CPU,..
Nginx 알아보기
·
Infra
Nginx란?Nginx는 웹 서버로 트래픽이 많은 WAS(Web Application Server)를 도와주는 비동기 이벤트 기반구조의 웹 서버 프로그램이다.주요 특징으로는 - 가볍고 빠름- 로드 밸런싱 제공- 리버스 프록시 지원- SSL/TLS 적용 가능 등이 있다. Web Server 와 WAS(Web Server Application)의 차이웹 서버는 클라이언트(브라우저)의 요청을 받아 정적인 파일(HTML, CSS, JS, 이미지 등)을 제공한다.WAS는 웹 서버가 처리하지 못하는 동적인 웹 애플리케이션을 실행하는 서버이다. 즉, 사용자의 요청을 받아 비즈니스 로직을 수행하고 DB와 연동하여 결과를 반환한다.Nginx 등장 배경1995년 최초의 웹서버인 유닉스 기반의 NCSA HTTPd가 있었다...
도커(Docker) 알아보기
·
Infra
도커란?간단히 말하면 도커란 애플리케이션을 패키징 할 수 있는 툴이다.컨테이너에 애플리케이션과, 의존성, 환경설정등을 하나로 묶어서 서버와 같이 로컬과 다른 곳에 쉽게 배포하기 위해 사용할 수 있게 한다.도커를 사용하는 이유?만약 nodeJs를 이용하여 서버를 만들었다고 한다면 로컬에서 작업한 코드를 서버에 올리는 것만으로는 서버를 구동할 수 없다.오른쪽 그림과 같이 다양한 라이브러리들, 설정, 의존성등 서버를 구동하기 위해 필요한 모든 것들을 로컬과 동일하게 서버에도 구성해줘야 한다. 동일하게 환경을 구성했다고 생각했지만 막상 로컬과 서버에 구성해 준 환경이 버전이 맞지 않아 제대로 동작하지 못하는 경우도있기 때문에 직접 서버에 로컬과 동일한 환경을 구성해서 서버를 구동한다는 것은 매우 번거로운 일이다..