Infra (총 28개) 썸네일형 리스트형 Kafka - Kafka란? (Kafka의 구조와, 주요개념) Apache Kafka Apache Kafka의 각 구성요소와 구성요소들의 주요 개념을 알아보도록 하겠습니다. 어떤 기술의 특성을 이해하고, 구성요소를 이해하는것은, 해당 기술을 이용해 특정 기능을 구현할때 매우 중요한 요소입니다. 불필요한 처리를 줄일 수 있고, 꼭 필요한 처리를 할지를 판단할 수 있는 밑거름이 되기 때문입니다. https://kafka.apache.org/documentation이 글은 Kafka 공식 홈페이지의 문서를 보며 정리한 글입니다. 1. Kafka란?Kafka는 Pub-Sub 모델의 메시지 큐입니다. 분산환경에 특화되어있는 특징을 가지고 있습니다. 이 글의 3.Kafka의 주요개념 에서 Kafka의 개념들과 이들의 특징을 더 자세히 알아보도록 하겠습니다. 2. 구성요소2.1.. 서버 운영 - 다중 인스턴스 환경에서의 session (고가용성 환경 session, 세션 클러스터링, 스티키 세션) 고가용성 session 다중 인스턴스 환경에서의 SessionWeb Server가 고가용성을 유지하기 위해서는, 같은 역할을 수행하는 서버가 한대이상이 동시에 동작하고 있어야 합니다.보통 Load Balancer를 이용해 이들 서버에 적절히 부하를 분산하며, 한쪽 서버가 연결이 안된다면, 다른 정상 서버로 사용자의 요청을 보냅니다. 문제점 Session을 이용해 사용자의 로그인을 다루는 경우, 하나의 instance에서 어플리케이션이 동작한다면, 아무런 문제가 없습니다. 하지만 instance가 두개 이상이라면 문제가 있습니다. 사용자가 로그인 요청을 보내었으며, Load Balancer의해 1 instance에 요청이 전달되었고, 해당 인스턴스에서 session을 생성했습니다. 이 후 사용자.. Docker - Spring Boot Application Docker로 배포하기 및 Mysql 연동 spring boot 배포 및 mysql 연결 이번 포스팅에서는 docker를 이용해, Database를 이용하는 Spring Boot 어플리케이션을 배포하는 방법을 알아보도록 하겠습니다. (docker가 설치된 환경으로 가정하고 진행하도록 하겠습니다.) 1. Spring Boot Application 생성우선 간단히 Member List를 조회할 수 있는 Spring Boot Application을 생성하겠습니다. 우선 Application의 전체 파일 구성입니다. 필요한 구성은 아래와 같습니다.Member : EntityMemberRepository : Member Entity 영속성을 관리TestController : Member Entity를 조회할 수 있도록하는 컨트롤러applic.. Docker - Docker Network란? (Docker Netowkr 사용예제) Docker custom network 사용하기 Docker Network에 대해1. Docker Network 란?docker container로써 실행된 spring boot에서 마찬가지로 contatiner로써 실행중인 mysql server에 접근하기 위해서는, container 실행시 --link 옵션을 이용해 컨테이너간의 연결이 필요했습니다. 간단히 말해, 같은 Docker Host내에서 실행중인 Container간 연결할 수 있도록 돕는 논리적 네트워크같은 개념입니다. 2. --link vs network docker 공식문서를 살펴보면 --link 는 곧 사라질 예정이며, 해당 기능 대신 network 를 사용하도록 권장하고 있습니다. 따라서, 이번 포스팅에서는 network를 생.. Docker - container volume 사용 Volume 생성 및 삭제docker volume create [OPTIONS] [VOLUME] 명령으로 volume를 생성한다xxxxxxxxxx[root@master ~]# docker volume create test-voltest-voldocker volume ls [OPTIONS] 명령으로 volume 목록을 확인할 수 있다.xxxxxxxxxx[root@master ~]# docker volume lsDRIVER VOLUME NAMElocal 12873e60d19f234b4e10cfe8d9a00013718c82b1a8c31fa0f33ac7ca1e0a47bflocal 1a95ac0b9df1c857dcf75420a11ad538467b26f1d0a81e08872b623bdf876a57 ...local .. Docker - Docker의 데이터 저장방법 Docker Mount 유형 docker container의 writable layer에는 데이터를 저장할 수 있다 하지만 container가 사라질 때에는 데이터도 함께 사라진다. (Container 종료시에는 다시 실행한다면 데이터는 살아있다!)Docker Mount 유형출처 : Docer docsVolumeHost File System 일부에 Data를 저장하는 방법 (Filesystem에 제한 됨) bind mountsHost System의 어느곳에든지 저장 가능한 방법 tmpfsHost System의 Memory에만 Data가 저장됨 (Host File System에는 저장되지 않음)Mount 상세 Volume docker가 생성하고 관리하는 방식이다 volume이 생성되면 Data는 Dock.. 서버운영 - Spring Boot 부하 테스트(Jmeter, 동시접속확인) 시나리오Server : Spring Boot , JPA DB : AWS RDS(t2.micro : 1CPU, 1Memory) - 4000명의 사용자(스레드)가 동시에 3계층 웹어플리케이션에 요청을 한다 점차 스레드 수와 최대 세션수를 늘려가며 동시 4000명의 사용자에 대한 응답처리를 할 수 있는 환경을 구축하는 것을 목표로 한다. 참고close, time_wait - https://brunch.co.kr/@springboot/98 1차Spring Boot 설정spring dbcp 설정 : https://www.baeldung.com/spring-boot-tomcat-connection-pool Port : 8082Max Connection : 10000 (최대 연결 수로 세션이 해제되는 시간을 가지는 .. 서버운영 - CentOS7 세션 동시 접속 제한 해제 현재 동시 접속 설정 확인ulimit -Ha (전체설정) ulimit -Sa (지역 설정) 제한 설정ulimit "옵션" "값" 이전 1 2 3 4 다음