오픈소스
-
[RabbitMQ] RabbitMQ란?오픈소스/rabbitmq 2021. 7. 15. 19:20
Message System 애플리케이션간에 메세지를 주고 받는 Communication Machanism을 의미 Message System 장점 빠른 응답을 줄 수 있고, 메세지를 많은 사람들에게 전달 가능 애플리케이션 간의 결합도를 낮출 수 있음 대규모 시스템에서 데이터 교환 엔드포인트를 하나로 통합해 관리 가능 RabbitMQ 장점 Cluster 구성이 쉽고 ManageUI가 제공 MQTT, Convert, STOMP 등의 플러그인도 제공되어 확장성이 뛰어남 AMQP(Advanced Message Queuing Protocol)를 구현한 메세지 지향 미들웨어 메세지 제공자와 클라이언트의 동작에 대해 각기 다른 벤더들의 구현체가 상호 운용 가능 스프링에서도 AMQP 연동 라이브러리가 제공되어 편리하게 ..
-
[Kafka] Kafka란?오픈소스/kafka 2021. 7. 5. 22:37
Kafka 여러 대의 분산 서버에서 대용량의 메세지를 처리하는 분산 메세징 시스템 특징 스트리밍 데이터를 다루는 미들웨어 가용성과 확장성 데이터 영속성 Pub/Sub 모델 지원 Kafka 구성 요소와 특징 Topic과 Partition 메세지는 Topic으로 분류되고, Topic은 여러 개의 Partition으로 나눠질 수 있다. Partition 내의 한 칸을 로그라고 하고, 데이터는 한 칸의 로그에 append 된다. 메세지의 상대적 위치를 나타내는 것이 offset이다. 여러 개의 Partition을 나누는 이유? 여러 개의 Partition을 두면 쓰기가 병렬로 처리됨 한 번 늘린 파티션은 절대로 줄일 수 없기 때문에 파티션을 늘릴 때 충분히 고려되어야 한다. Producer와 Consumer P..
-
[Redis] centos redis-cli 설치오픈소스/redis 2021. 6. 25. 12:28
Redis를 설치 후 정상적으로 설치되어 있는지 확인해보기 위해서 Redis CLI를 설치해서 접속해보는 방법에 대해서 알아보겠습니다. Step01. make를 하기 위해 gcc를 설치 $ sudo yum install -y gcc Step02. redis-cli 설치 및 make $ sudo wget http://download.redis.io/redis-stable.tar.gz && tar xvzf redis-stable.tar.gz && cd redis-stable && make Step03. redis-cli를 /usr/bin에 추가해서 어느 위치에서든 사용 가능하도록 등록 $ sudo cp src/redis-cli /usr/bin Step04. 설치가 끝나면 Redis가 정상적으로 설치되어 구동..
-
[nginx] Permission denied while reading upstream 이슈 해결오픈소스/nginx 2021. 6. 1. 20:38
nginx가 API 서버의 앞단에서 리버스 프록시로 역할을 하고 있을 때 API 서버를 통해서 파일을 다운로드 받을 때 아래와 같은 에러가 발생되었습니다. 2021/06/01 20:15:54 [crit] 29936#0: *50173015 open() "/nginx/proxy_temp/4/01/0000005014" failed (13: Permission denied) while reading upstream 발생원인은 API 서버를 통해서 nginx가 파일을 다운로드 받을 때 /nginx/proxy_temp 디렉토리에 임시적으로 데이터를 저장하는데 해당 디렉토리에 대한 권한이 없어서 발생하였다. 수정 방법은 /nginx/proxy_temp 디렉토리의 권한을 아래와 같이 수정하였다. $ chmod -R 7..
-
[nginx] upstream timed out while reading 이슈 해결오픈소스/nginx 2021. 6. 1. 20:33
nginx가 API 서버의 앞단에서 리버스 프록시로 역할을 하고 있을 때 API 서버를 통해서 파일을 다운로드 받을 때 아래와 같은 에러가 발생되었습니다. 2021/05/31 14:26:36 [error] 8196#0: *48719686 upstream timed out (110: Connection timed out) while reading upstream 발생원인은 프록시를 통해서 파일을 다운로드 받으려고 할 때 read 타임아웃이 발생되어 연결이 종료되면서 발생되었습니다. 해당 이슈를 수정하려면 nginx.conf 파일에서 proxy_read_timeout의 값을 수정합니다. http { # Set proxy timeout proxy_send_timeout 15s; # proxy를 통해서 데이터를..
-
[nginx] CentOS 7 설치오픈소스/nginx 2021. 5. 18. 13:32
1. add yum nginx repository yum 저장소에는 nginx가 없기 때문에 외부 저장소를 추가 $ cd /etc/yum.repos.d $ vi nginx.repo /etc/yum.repos.d/ 경로에 nginx.repo 파일을 추가하고 아래와 같이 작성 [nginx] name=nginx_repo baseurl=http://nginx.org/packages/centos/7/$basearch/ gpgcheck=0 enabled=1 2. yum install yum install 명령어를 이용해서 설치 $ yum install -y nginx 3. open firewall $ firewall-cmd --permanent --zone=public --add-port=8080/tcp succe..
-
[Redis] Docker를 이용한 Redis 클러스터링 구성오픈소스/redis 2020. 10. 20. 17:01
이번 시간에는 docker 기반의 redis 클러스터링을 구성하는 방법에 대해서 알아보도록 하겠습니다. 최종적으로 구성하려고 하는 구조는 아래와 같습니다. 3대의 서버에 각각 Master, Slave Redis를 설치 후 클러스터링 설정을 진행하도록 하겠습니다. 172.21.115.16 서버에 접속하여 Master, Slave Redis를 Docker로 구동 # Master Redis 구동 $ docker run -d --name redis-6379-16 --network host -v /redis/redis-6379-16:/data redis:5.0.5-buster redis-server --port 6379 --cluster-enabled yes --cluster-config-file node.con..
-
[RabbitMQ] Docker를 이용한 RabbitMQ 클러스터링 구성오픈소스/rabbitmq 2020. 10. 16. 21:27
서버 A(172.21.114.89), 서버 B(172.21.106.118) 두 대의 서버에 Docker로 RabbitMQ를 구동하고 클러스터링을 적용하는 방법에 대해서 알아보도록 하겠습니다. 사용하는 docker 이미지는 itzg/rabbitmq-stomp를 사용하였습니다. 서버 A에 접속해서 RabbitMQ 이미지를 다운받고 실행합니다. $ docker run --hostname rabbit1 --add-host rabbit1:172.21.114.89 --add-host rabbit2:172.21.106.118 --name rabbit -p 15672:15672 -p 4369:4369 -p 5672:5672 -p 5671:5671 -p 25672:25672 -p 61613:61613 -e RABBITM..