본문 바로가기
관리자

분류 전체보기

(959)
쿠버네티스 인 액션: ch3. 파드: 쿠버네티스에서 컨테이너 실행 쿠버네티스 인 액션: 그림과 상세한 설명으로 명확하게 이해하는마르코 룩샤 저 / 강인호,황주필,이원기,임찬식 역 | 에이콘출판사 | 2020년 03월 31일    파드: 쿠버네티스에서 컨테이너 실행 파드소개파드함께 배치된 컨테이너 그룹쿠버네티스의 기본 빌딩 블록일반적으로 파드는 하나의 컨테이너를 포함 (그룹이니까 여러개가 될 수 있음)파드 안에 있는 모든 컨테이너는 같은 노드에서 실행  파드가 필요한 이유여러 프로세스를 실행하는 단일 컨테이너보다 다중 컨테이너가 나은 이유* 모든 프로세스 실행과 로그 관리를 사용자가 직접 처리해야함* 각 프로세스의 실패 시 자동 재시작 같은 메커니즘이 필요* 여러 프로세스가 동일한 표준 출력으로 로그를 기록하므로 어떤 로그가 어떤 프로세스에서 발생했는지 구분하기 어려움 ..
[TIL] spring WebFlux, WebClient - 비동기 polling 배경서버에 요청이 들어오면 다른 서버에 비동기적으로 polling 요청을 보내야하는 상황. 처음에는 생각나는대로 while문과 try-catch 문을 사용해 구현했으나, 리팩토링 하다보니 Spring WebFlux를 사용하면 간결한 문법과 함께 polling 시에 벌어지는 여러 상황들을 대처할 수 있는 메서드들이 주어져서 편하게 코딩할 수 있다는 것을 알게되었다. 코드 @Asyncprotected CompletableFuture> pollingAuthResult(String authReqId, String realmId, String clientId, String expiresIn, String interval) { HttpHeaders headers = new HttpHeaders(); hea..
쿠버네티스 인 액션: ch2. 도커와 쿠버네티스 소개 쿠버네티스 인 액션: 그림과 상세한 설명으로 명확하게 이해하는마르코 룩샤 저 / 강인호,황주필,이원기,임찬식 역 | 에이콘출판사 | 2020년 03월 31일      2.1 도커를 사용한 컨테이너 이미지 생성, 실행, 공유하기2.1.1 도커 설치와 Hello World 컨테이너 실행하기리눅스 머신도커는 리눅스 머신에 설치되고 실행된다. 맥이나 윈도우를 사용하는 환경이라면 도커를 안내에 따라 설치하는 것은 가상 머신을 생성하고 그 가상 머신 안에 도커 데몬을 구동하게 되는 것이다. 호스트 OS에서 도커 클라이언트 파일을 실행하면 가상 머신에 구동된 도커 데몬과 통신하는 방식이다. busyboxbusybox 이미지는 echo, ls, gzip 등과 같은 표준 UNIX 명령줄 도구들을 합쳐놓은 단일 실행 파일..
[비공개] Weekly Report - 24/11/11~24/11/17, 1604일차 보호되어 있는 글입니다.
[카프카 핵심가이드] 9. 모니터링 카프카 핵심 가이드 2E: 대규모 실시간 데이터와 스트림 처리그웬 샤피라 , 토드 팔리노 , 라지니 시바람 , 크리트 페티 저자(글) · 이동진 번역제이펍 · 2023년 04월 14일13. 카프카 모니터링하기 13.1 지표 기초13.1.1 지표는 어디에 있는가?카프카의 모든 지표는 JMX(Java Management Extensions) 인터페이스를 통해서 사용할 수 있다.check_jmx, jmxtrans와 같은 JMX 인터페이스에 접속하는 프로그램이 있음Jolokia, MX4J 등은 카프카 프로세스에서 직접 실행되는 JMX 에이전트이다JMX 포트 찾기*주키퍼에 저장되는 브로커에 대한 정보는 /brokers/ids/{브로커 id}에 JSON 형식으로 저장된다. 여기에 hostname, jmx_port가..
[카프카 핵심가이드] 8. 클러스터간 데이터 미러링하기 카프카 핵심 가이드 2E: 대규모 실시간 데이터와 스트림 처리그웬 샤피라 , 토드 팔리노 , 라지니 시바람 , 크리트 페티 저자(글) · 이동진 번역제이펍 · 2023년 04월 14일 10. 클러스터간 데이터 미러링하기카프카에서는 같은 클러스터 내의 노드간 데이터 교환을 `복제(replication)`라 부르기로 하고, 다른 클러스터간 데이터 복제는 `미러링(mirroring)`이라고 부르기로 한다. 10.1 클러스터간 미러링 활용 사례지역 및 중앙 클러스터: 각 도시의 데이터센터에 클러스터를 갖고, 각 데이터들을 중앙 클러스터에 미러링하여 비즈니스적인 분석을 해야하는 경우 활용고가용성(high availability)와 재해 복구(disaster discovery): 여분 준비규제: 국가별, 법적 문제..
[카프카 핵심가이드] 7. 멱등적 프로듀서와 트랜잭션 카프카 핵심 가이드 2E: 대규모 실시간 데이터와 스트림 처리그웬 샤피라 , 토드 팔리노 , 라지니 시바람 , 크리트 페티 저자(글) · 이동진 번역제이펍 · 2023년 04월 14일  1. 멱등적 프로듀서  m1, m2, m1, m2, m3 -> 중복 발생enable.idempotence=trueproducer ID 요청 후, 해당 pid와 레코드 별 seq 넘버를 추가해서 중복 메시지를 없애고 순서 보장 트랜잭션 필요 상황 가정  '이체' 애플리케이션Alice -> Bob 에게 이체하는 상황전송 토픽 이벤트를 가져와서 출력 토픽 2개에 레코드를 쌓는다. (Alice -10$ 인출, Bob +10$ 입금)위의 트랜잭션이 완료되어야 오프셋 커밋이 찍힌다. 트랜잭션 없이 시스템 장애 발생 Alice -> ..
비동기 작업: @Async 어노테이션, 스레드 관리 배경서버에서 polling을 해야하는 상황이 생겼다. 아키텍처상 여러 서버들이 통신을 주고 받는데, 일렬로 구성된 3가지 서버에서 중간 서버의 코드를 작성해야하는 상황이였다. 구체적으로는 keycloak과 중간서버가 사용자의 인증을 기다려야하는 상태였다(아래 그림에서 External Auth Server).  External Auth Server는 Keycloak으로부터 인증 요청이 오면, 일단 201로 응답을 한 뒤 AD에 요청을 보내고 polling을 통해 AD의 승인 여부를 기다린다. polling하는 코드는 대략 아래와 같다.@Async protected CompletableFuture> pollingAuthResult(String authReqId, String realmId, String c..