전체 글
-
Spring Boot 2-메서드가 컨트롤러 또는 비동기 서비스를 통해 트리거되는지 식별카테고리 없음 2021. 2. 22. 22:52
Spring Boot 2-메서드가 컨트롤러 또는 비동기 서비스를 통해 트리거되는지 식별 1. 질문(문제점): 스프링 부트 마이크로 서비스 애플리케이션이 있습니다. 나는 다음과 같은 요구 사항이 있습니다. 컨트롤러를 통해 메서드를 호출하면 (예 : 일부 사용자 히트 API) 응답은 로그인 한 사용자의 사용자 이름이어야합니다. 예약 된 작업과 같은 비 컨트롤러에서 메소드를 호출하면 Async 메소드 등의 응답이 기본 사용자 즉 시스템이어야합니다. 따라서이 논리를 작성하려는 UserDetailService 메서드가 있습니다. @Service public class UserDetailsService { @Autowired WebClient.Builder webClientBuilder; @Autowired Htt..
-
9. 쿠버네티스 환경 구축하자 - 데이터 볼륨 설정infra 2020. 8. 20. 01:45
데이터 볼륨 도커 컨테이너가 실행중에 작성 혹은 수정된 파일은 호스트 쪽 파일 시스템에 마운트되지 않는 한 컨테이너가 파기될 때 호스트에서 함께 삭제된다. 컨테이너 안에서 실행될 애플리케이션이 파일이나 디렉터리를 수정하고 이용하는, 다시 말해 상태를 갖는 유형이라면 파기된 컨테이너를 완전히 동일하게 재현하기가 쉽지 않다. 컨테이너를 사용해서 상태를 갖는 애플리케이션을 운영하려면 새로운버전의 컨테이가 배포돼도 이전 버전의 컨테이너에서 사용하던 파일 및 디렉터리를 그대로 이어받아 사용할 수 있어야한다. 이런 경우에 사용되는것이 데이터 볼륨이다. 데이터 볼륨은 도커 컨테이너안에 디렉터를 디스크에 퍼시스턴스 데이터로 남기기 위한 메커니즘으로, 호스트와 컨테이너 사이의 디렉터리 공유 및 재사용 가능을 제공한다. ..
-
8. 쿠버네티스 환경 구축하자 - 컨테이너 실전 구축 및 배포infra 2020. 8. 15. 00:32
8.컨테이너 실전 구축 및 배포 시스템에서 단일컨테이너의 비중, 이식성을 고려해 도커 친화적인 애플리케이션을 개발하는 방법, 퍼시스턴스 데이터를 다루는 방법, 도커 스윔이나 스택을 이용한 컨테이너 배포에 대해 알아보자. 애플리케이션과 시스템 내 단일 컨테이너 적정 비중 앞에서 생성한 컨테이너를 보면 애플리케이션과 인프라를 도커 컨테이너라는 단위로 분리할것이라 볼 수 있다. 하지만 꼭 한개의 프로세스를 한개의 컨테이너로만 띄울필요는 없다. 정기적으로 실행하는 어플리케이션 정기적으로 어떤 작업을 실행하는 컨테이너가 있다고 생각해보자. 이럴경우 아래와같이 배치를 트리거하는 cron이 필요할것이다. CRON -> JOB 이럴경우 CRON, JOB두개의 프로세스가 필요하다. 하지만 이것을 꼭 2개의 컨테이너에 띄..
-
7. 쿠버네티스 환경 구축하자 - 도커 컴포즈로 여러 컨테이너 실행하기infra 2020. 8. 13. 12:42
7. 도커 컴포즈로 여러 컨테이너 실행하기 docker-compose 란? 지금까지는 도커 이미지, 컨테이너에대한 기본적인 사용방법을 알아봤다. 하지만 일반적인 시스템은 단일컨테이너로 구성되지는 않는다. 웹어플리케이션은 리벅스 프록시 역할을 하는 웹서버를 프론트엔드에 배치하기 그뒤로 비즈니스 로직이 담긴 애플리케이션 서버가 위치해 데이터 스토어등과 통신하는 구조로 구성된다. 애플리케이션간의 연동없이는 실용적 수준의 시스템을 구축할수 없다. 도커 컨테이너로 시스템을 구축하면서 하나 이상의 컨테이너가 통신하며 그사이에 의존관계가 생긴다. 이런방식으로 여러개의 컨테이너를 구성하령우에는 여러개의 설정파일과 환경변수가 필요하다. 이런것을 관리해주는것이 docker-compose이다. docker-compose 명..
-
6. 쿠버네티스 환경 구축하자 - 도커컨테이너 명령어 종류infra 2020. 8. 9. 17:49
6. 도커컨테이너 명령어 종류 컨테이너는 가상환경이다. 파일시스템과 애플리케이션이 함께 담겨있는 박스라고 보면 된다. 도커 컨테이너는 크게 아래와 같은 생명주기를 가지게된다. 도커 컨테이너 생애주기 도커 컨테이너는 실행중, 정지, 파기의 3가지 상태를 갖는다. 이것을 도커컨테이너 생애주기라 한다. docker container run 명령으로 컨테이너를 최초 실행한 시점의 상태는 실행중이다. 실행중 상태 Docker container run 명령의 인자로 지정된 도커 이미지를 기반으로 컨테이너가 생성되며 이 이미지를 생성했던 Dockerfile에 포함된 CMD 및 ENTRYPOINT 인스터럭션에 정의된 애플리케이션이 실행된다. 이애플리케이션이 실행중인 상태가 컨테이너의 실행중 상태가 된다. 정지상태 실행..
-
자바 성능 튜닝 이야기 정리 2편카테고리 없음 2020. 8. 6. 13:00
story06 : static 제대로 한번 써 보자. HTTP 상태 코드 종류 (TIP) 200번대 상태 코드 : 정상적인 경우 300번대 상태 코드 : 리다이렉션이 필요한 경우 400번대 상태 코드 클라이언트 오류가 있을 경우 500번대 상태 코드 : 서버에 오류가 있을 경우 static의 특징 단어는 '정적인, 움직이지 않는' 의미이다. static으로 선언한 변수는 클래스 변수라고 한다. 해당 클래스의 100개의 인스턴스를 생성하더라도 모든 객체가 static 변수에 대해서 동일한 주소값을 참조 멀티 스레드 환경에서 주의. GC가 되지 않아 Collection 객체를 static으로 선언해 사용하면 OutOfMemory 가 발생할 수 있다 자주 사용하고 절대 변하지 않는 변수는 final stati..
-
5. 쿠버네티스 환경 구축하자 - 도커 이미지 명령어 활용infra 2020. 8. 6. 12:42
5. 도커 이미지 활용및 명령어 확인하기 도커 이미지를 다루기에앞서 도커이미지를 정의한다면 도커이미지는 도커 컨테이너를 만들기위한 템플릿이라고 정의할 수 있다. 도커이미지는 컨테이너 위에서 실행하기위한 운영체제, 어플리케이션등을 정의하고 환경설정등을 설정할 수 있다. docker image ls 다음 명령어는 로컬에 저장된 이미지 목록을 조회하는 명령어이다 $ docker image ls docker image rmi - 도커이미지 삭제 로커에 다운로드된 이미지를 삭제하는 명령어는 다음과같다. $ docker rmi [이미지id] docker image ls로 조회시 로컬에 다운로드된 docker image id를 확인할 수 있다. 이 id를 제거하면 로커에 이미지가 제거된다. docker image b..
-
4. 쿠버네티스 환경 구축하자 - 도커 이미지 빌드하기infra 2020. 8. 6. 00:29
main.go 파일과 dockerfile 작성이 끝났으면 docker image build 명령으로 도커 이미지를 빌드한다. docker image build 명령의 기본 문법은 다음과 같다. -t 옵션으로 이미지명을 지정한다. 태그명도 지정할 수 있으며, 생략시에는 latest 태그가 붙는다. docker image build -t 이미지명 [:태그명] Dockfile의 경로 이예제에서는 example/echo 라는 이미지명을 사용했다. 앞에 example 은 네임스페이스다. 이미지명의 충돌을 피하기위해서는 네임스페이스를 넣는것이 좋다. $dokcer image build -t example/echo:latest . 빌드를 실행하면 베이스 이미지를 내려받고 RUN이나 COPY 인스크럭션에 지정된 명령이..