본문 바로가기

서버인프라137

[ 제 3강 소비와 생산 ] KAFKA Producer & Consumer KAFKA의 생산과 소비를 테스트 하려 합니다. 우선 컨슈머 셋팅을 하겠습니다. 우리가 이전 시간에 생성했던 토픽을 활용합니다. 아래와 같이 컨슈머를 실행하면, 아래 이미지와 같은 console이 생성 됩니다. 어떤 현상이 발생 한다기 보다는 그냥 로그를 확인하는 창과 비슷합니다. 이벤트가 발생하면 찍히는 kafka-console-consumer --bootstrap-server 192.168.2.77:9092,192.168.2.78:9092,192.168.2.79:9092 --topic example-topic 이제 프로듀서를 실행해 보겠습니다. 아래와 같이 프로듀서를 실행하면 > 프롬프트 상태로 멈춰 있는데요, 이제 거기에 어떤한 모든 메시지를 입력하면 되겠죠~ kafka-console-produce.. 2021. 2. 1.
[ 제 2강 설치 ] KAFKA TOPIC 생성 이번에는 TOPIC 생성을 해보도록 하겠습니다. TOPIC의 생성 방법은 어렵지 않으니 가볍게 해보도록 하겠습니다. kafka-topics --create --zookeeper 192.168.2.77:2181,192.168.2.78:2181,192.168.2.79:2181/kafka --replication-factor 1 --partitions 1 --topic example-topic 위와 같이 하면 topic 생성이 완료 됩니다. topic 생성 확인 명령은 아래와 같습니다. kafka-topics --zookeeper 192.168.2.77:2181,192.168.2.78:2181,192.168.2.79:2181/kafka --list | grep example-topic grep 없이 list를.. 2021. 2. 1.
[ 제 1강 설치 ] zookeeper 와 KAFKA 설치하기 이번에는 zookeeper 설치를 진행해 보려 합니다. 오래전 설치 한 기억들을 끌어올리려 하니 ㅠㅠ 정말 힘드네요 일단 zookeeper 설치에 앞서 사전 진행 사항이 필요합니다. zookeeper와 kafka 테스트의 편의성을 위해 confluent platform을 사용해 보려합니다. 사전진행 (3대의 서버에서 실행 합니다.) 1. 필수 패키지 설치 진행 yum install curl which 2. yum 패키지 설치 rpm --import https://packages.confluent.io/rpm/6.0/archive.key 3. yum repo 생성 /etc/yum.repos.d/confluent.repo [Confluent.dist] name=Confluent repository (dist.. 2021. 1. 26.
APACHE KAFKA 이야기 KAFKA 사용기 데이터의 빠지는 현상을 최대한 줄여야 하는 시스템 운영이 필요하던 곳에서, DB에 적재되어야 할 데이터 적재되지 못하는 현상이 발생하는 상황을 맞이 했습니다. 그런 데이터들이 중간중간에 빠지면서 계산이 맞지 않아 어려움을 격었는데요, 그때 많은 고민을 하던 중 KAFKA 도입에 대한 얘기를 했습니다. 필자는 시스템엔지니어인데 그당시 개발자들에게 KAFKA사용을 권하는게 가장 큰 힘든점 이었습니다. 그럼, KAFKA의 장점과 단점을 이야기 해 보겠습니다. 1. 장점 - 속도 - 메시지 소실율의 감소 - 구조설계의 간소화 2. 단점 - 진입장벽이 있음 - 클러스터 구축에 있어 시스템 가용이 올라감. (zookeeper 3대, kafka 3대) 이벤트 스트리밍이란? 이벤트 스트리밍은 인체의 .. 2021. 1. 25.
[ 제5강 캐싱 ] NGINX 콘텐츠 캐싱 응답 캐싱 활성화 캐싱을 사용하려면 proxy_cache_path 최상위 컨텍스트에 지시문을 포함하십시오. 필수 첫 번째 매개변수는 캐시 된 콘텐츠의 로컬 파일 시스템 경로이고 필수 매개변수는 캐시 된 상목에 대한 메타 데이터를 저장하는 사용되는 공유 메모리 영역의 이름과 크기를 정의 합니다. http { ... proxy_cache_path /data/nginx/cache keys_zone=one:10m; } 그런다음 proxy_cache 서버 응답을 캐시 할 컨텍스트에 지시문 keys_zone 을 포함하고 proxy_cache_path 지시문에 대한 매개 변수로 정의 된 영역 이름을 지정합니다. http { ... proxy_cache_path /data/nginx/cache keys_zone=one.. 2021. 1. 22.
[ 제4강 TCP&UDP부하 분산 ] NGINX 로드 벨런서 TCP & UDP 부하분산을 위한 전제조건 NGINX 오픈소스 --with-stream 활성 TCP 또는UDP를 통해 통신하는 애플리케이션 데이터베이스 또는 서비스 역방향 프록시 구성 1. 최상위 stream {} 블록 만들기 stream { } 2. server {} 최상위 stream {} 각 가상 서버에 대해 하나 이상의 구성 블록을 정의 합니다. 3. server {} 각 서버의 구성 블록 내에 서버가 수신 listen 하는 IP 주소 및 / 또는 포트를 정의하는 지시문을 포함 합니다. UDP 트래픽의 경우 udp 매개 변수도 포함 합니다., TCP 가 stream 컨텍스트의 기본 프로토콜 이므로 지시문에 대한 tcp 매개 변수가 없습니다. stream { server { listen 12345;.. 2021. 1. 22.
[ 제3강 서버 가중치 ] NGINX 로드 벨런서 기본적으로 NGINX는 R-R 방법을 사용하여 가중치에 따라 그룹의 서버간에 요청을 분산합니다. weight매개변수 server는 서버 가중치를 설정합니다. 기본값은 1 다음과 같습니다. upstream backend { server backend1.example.com weight=5; server backend2.example.com; server 127.0.0.1 backup; } backend1.example.com 에는 가중치 5가 있습니다. 다른 두 서버는 가중치 1로 (default) 로 설정되지만, backup 서버는 두 서버를 모두 사용 할 수 없는 경우가 아니면 요청을 수신하지 않습니다. backend1.example.com에 5번의 요청을 가하고, 6번째는 backend2.exampl.. 2021. 1. 20.
[ 제2강 균형조정 ] NGINX 로드 벨런서 로드 균형 조정 방법 선택 NGINX 오픈소스는 4가지 로드 밸런싱 방법을 지원 합니다. 1. 라운드 로빈 : 요청이 서버 가중치를 고려하여 서버 전체에 균등하게 분산됩니다. ( 활성화 하기 위한 지시문 없음 ) upstream backend { server backend1.example.com; server backend2.example.com; } 2. 최소연결 : 서버 가중치를 고려하여 활성 연결 수가 가장 적은 서버로 요청이 전송됩니다. upstream backend { least_conn; server backend1.example.com; server backend2.example.com; } 3. IP해시 : 요청이 전송되는 서버는 클라이언트 IP주소에서 결정됩니다. 이 경우 IPv4 주소의.. 2021. 1. 20.
엔진엑스 이야기 NGINX에 관하여 NGINX Unit은 Unix 계열 시스템 에서 사용할 수 있는 다중 언어 앱 서버, 역방향 프록시 및 정적 파일 서버 입니다. nginx 팀 구성원이 처음부터 매우 효율적이고 런타임에 완전히 구성 할 수 있도록 빌드했습니다 . 최신 버전은 2020 년 11 월 19 일에 릴리스 된 1.21.0입니다. 여기 에서 변경 로그를 참조 하십시오 . GitHub 기반 로드맵 은 향후 계획을 설명합니다. 소스는 Apache 2.0 라이선스에 따라 배포됩니다 . NGINX, Inc 에서 상업적 지원을받을 수 있습니다 . NGINX 주요 특징 적응성 전체 구성 은 사용자 친화적 인 RESTful JSON API 를 통해 HTTP를 통해 동적으로 관리 됩니다. 구성 업데이트는 중단없이 런타임에 세부.. 2021. 1. 20.
[ 제1강 HTTP 부하분산 ] NGINX 로드 벨런서 HTTP 트래픽을 서버 그룹에 프록시 NGINX Plus 또는 NGINX Open Source 를 사용하여 HTTP 트래픽 서버 그룹으로 로드 균형을 조정하려면 먼저 upstream 지시문을 사용하여 그룹을 정의 하여야 합니다. 쉽게 upstream 지시문을 사용하여 그룹을 정의하고 사용하면 된다. 라고 생각하면 됩니다. 그러면, upstream 지시문을 어떻게 생성하냐???? 아래와 같이!! http 블록안에 upstream 블록을 생성 합니다. http { upstream backend { server backend1.example.com; server backend2.example.com; server 127.0.0.1 backup; } } 그리고, 위 그룹의 요청을 전달 하려면 proxy_pass.. 2021. 1. 20.
NGINX 설치 설치 전제 조건 CentOS 8 Ubuntu 20.04 CentOS 8 1. yum저장소 설정 /etc/yum.repos.d/nginx.repo 생성 sudo yum install yum-utils [unit] name=unit repo baseurl=https://packages.nginx.org/unit/centos/$releasever/$basearch/ gpgcheck=0 enabled=1 2. 코어 패키지 및 필요한 기타 패키지를 설치하십시오. sudo yum-config-manager --enable nginx-mainline sudo yum install nginx 3. 서비스 시작 systemctl start nginx Ubuntu 20.04 1. 필수 구성요소 설치 sudo apt ins.. 2021. 1. 19.