본문 바로가기

infra19

[MSA] Spring Cloud Sleuth와 Zipkin을 이용한 분산 시스템 Tracing_2 안녕하세요. 오늘은 저번 포스팅에 이어서 Zipkin과 Sleuth를 연동하여 구현해보겠습니다. sleuth로 id를 주입하여 zipkin에서 취합여 보기좋게 트레이싱 하는 것 까지 입니다. 오늘 이 테스트를 진행하기 위해서는 2개의 프로젝트가 필요합니다. 그리고 오늘 프로젝트의 소스는 github에 올려두겠습니다. Zipkin과 Sleuth 연동 zipkin에서 데이터를 모으기 위한 시퀀스 다이어그램은 아래와 같습니다. 보시면 sleuth에서 trace에 대한 ID를 헤더에 기입하며, 타 시스템어 전송 후 돌아온 응답에 대해서 zipkin으로 비동기로 전송합니다. 이렇게 zipkin에 보내진 데이터는 취합되어 유저에게 보여주게 되는것입니다. 그렇다면 이제 본격적으로 구현해보도록 하겠습니다. Zipkin.. 2019. 12. 7.
[MSA] Spring Cloud Sleuth와 Zipkin을 이용한 분산 시스템 Tracing_1 안녕하세요. 오늘은 Spring Cloud Sleuth와 Zipkin을 이용한 분산 시스템 Tracing을 하는 방법에 대해서 실습해보도록 하겠습니다. Zipkin Zipkin은 분산 트레이싱 시스템입니다. Zipkin은 시간 데이터를 모아 시간 지연 문제등을 해결할 수 있습니다. 로그 파일에 Tracing ID가 있다면 해당 ID를 통해 바로 이동할 수 있으며, 그렇지 않다면 서비스, Tag 등의 쿼리 기반으로 처리할 수 있습니다. 아래는 Zipkin의 UI화면입니다. Tracing을 해보기 위해서 Zipkin을 설치해보도록하겠습니다. 혹시 Zipkin에 대해 아키텍처적으로 궁금하신 분들은 https://zipkin.io/ 공식사이트를 방문하셔서 확인하시면 될 것같습니다. 설치 & 실행 https://.. 2019. 12. 5.
[MSA] MSA의 로깅과 트레이싱 안녕하세요. 오늘부터는 새로운 주제로 찾아뵙게 되었습니다. 바로 MSA입니다. 저희 회사에서 저는 요즘 프로젝트를 MSA의 기술들을 적용해가며 진행하고 있습니다. 오늘은 MSA의 기술 중 로그관리와 트레이싱에 대해서 한번 알아보도록 하겠습니다. MSA의 개념에 대한 설명은 추후에 따로 준비하도록 하겠습니다. ^^ 문제 제기 MSA(Micro Service Architecture)는 분산 환경에서 운영된다는 특징 때문에 각각의 서비스에 대한 로깅과 모니터링은 큰 고민거리로 남겨지게 됩니다. 서로 다른 개별 마이크로서비스(서버)에서 발생하는 로그를 연결지어 트랜잭션의 처음부터 끝까지 추적을 해내어야 하는데 이것은 쉽지않은 일입니다. 아래는 스프링 5.0 마이크로서비스 2/e에서 발췌한 내용입니다. 전통적인 .. 2019. 12. 4.
[REST API]REST를 사용할 때 주의해야할 점 REST를 만든사람 : 로이필딩, 박사학위 논문 (https://www.ics.uci.edu/~fielding/pubs/dissertation/top.htm)REST API : REST 아키텍처를 따르는 시스템구성요소Client-Serverstatelesscacheuniform interfacelayered systemcode-on-demand (optional)—> 대부분의 요소는 잘 지켜지고 있다. ( 브라우저 같은 곳에서 지원하기 때문 )—> Uniform interface가 잘 지켜지는지는 되돌아볼 필요가 있다.Uniform interface 제약조건identification of resourcesmanipulation of resources thorough representationsself-d.. 2019. 8. 4.
Jenkins를 Windows Docker에서 쓸 때 유의사항 ! 안녕하세요. 이번에 Jenkins를 Windows의 Docker에서 쓸 때 유의사항을 공유드립니다. 만약 당신이 현재 Windows에서, 그리고 Kitematic을 이용해서 Offitial Jenkins 이미지를 Container로 설치했다면 Plugin을 정상적으로 받을 수 없습니다. 왜냐하면 이미 그 Image는 deprecated(이제 사용하지않는) 되었기 때문입니다. 우 상단에 보이는 jenkins는 현재 정상사용이 불가능하다... ㅠㅠ 왜나하면 지금 해당하는 jenkins는 deprecated 되었기 때문입니다. 그러면 어떻게 받아야 하나? vm에 접속하여 직접 받아주서야 합니다. (Oracle vm virtualMachine 등) 아래의 명령어를 이용하여 받으면 정상동작합니다. docker p.. 2019. 6. 23.
Spring boot를 docker와 함께 쓸 때 발생하는 에러 대처법 Windows에서 Spring boot를 docker에 자동 image가 올라가도록 만들어보고 싶어서 구글링을 해가면서 도전해 보았다... 결과적으로 잘 되긴 했지만 예상외의 오류들이 많이 발생하였고, 해당 오류의 해결법을 공유하고자한다. 1. Windows에 Docker를 설치했는데 실행이 안되요 -> 처음에 Docker를 설치하자마자 오류가 발생했다. 왜 실행이 안되는지 봤더니 Windows의 버전에 따라 설치해야하는 파일이 다른것을 알았다. 원래 Docker가 Linux Container를 근본 원리로 하고 있어서 Windows는 지원이 조금 떨어진다고 한다. - Windows10 pro 이상부터는 Windows 자체에서 가상화서버를 지원한다. 그래서 (https://hub.docker.com/ed.. 2019. 6. 20.
리눅스 많이 사용하는 기본명령어 5가지 모음 1. cd(Change Directory) 디렉토리 이동 //cd [이동하고자 하는 상대경로 OR 절대경로] sabarada@bar:~$ cd /home/sabarda/test sabarada@bar:/home/sabarda/test$ 옵션 부가설명 상대경로 : 현 디렉토리를 기준으로 이동 ex) ./foo/bar -> 현재 디렉토리 아래의 /foo/bar 로 이동 2. ls(list) 현재 디렉토리의 list(들어있는 파일 등) 출력 // 현재 디렉토리의 목록을 시간의 역순으로 자세히 출력 // ls [옵션] sabarada@bar:~$ ls -lrt 옵션 부가설명 l : 자세히 보기 형식으로 출력 r : 거꾸로 출력한다. 기본 ls명령어는 이름 순서 t : 시간 준으로 출력한다. 3. alias 자주.. 2019. 6. 7.