Home

0

Spring Batch - Chunk 기반 Step

출처 해당 포스트는 정수원 강사님의 스프링 배치 - Spring Boot 기반으로 개발하는 Spring Batch 강의를 바탕으로 작성 됐습니다. 목차 Spring Batch - ItemWriter Spring Batch - ItemProcessor Spring Batch - ItemReader Spring Batch - ChunkProvider 와 ChunkProcessor Spring Batch - ChunkOrientedTasklet Spring Batch - Chunk 기반 Step Spring Batch - 24. FlowJob Post not found: spring/spring-batch/tasklet/spring-batch-23-JobStep Spring Batch - 22. Tasklet 기반 Step Spring Batch - 21. TaskletStep Spring Batch - 20. StepBuilderFactory 와 StepBuilder Spring Batch - 19. JobParameters 증가 JobParametersIncrementer Spring Batch - 18. Job 의 재시작 방지 preventRestart Spring Batch - 17. JobParameters 검증 JobParametersValidator Spring Batch - 16. SimpleJob 와 SimpleJobLauncher Spring Batch - 15. JobBuilderFactory & JobBuilder Chunk Chunk 란 여러개의 아이템을 묶은 하나의 덩어리, 블록을 의미합니다. 한번에 하나씩 아이템 입력을 받아 Chunk 단위의 덩어리로 만든 후 Chunk 단위로 트랜잭션을 처리합니다. 즉, Chunk 단위의 Commit 과 Rollback 이 이루어지게 됩니다. 일반적으로 대용량의 데이터를 한번에 처리하는 것이 아닌 Chunk 단위로 쪼개어서 더 이상 처리할 데이터가 없을 때까지 반복해서 입출력하는데 사용됩니다. Chunk는 대용량 데이터를 처리하는 데 사용되는 방법 중 하나입니다. Chunk 지향 처리는 일괄 처리 작업을 조각 단위로 분할하여 처리하며, 각 조각은 스텝 내에서 개별적으로 처리됩니다. 예를 들어, 1000개의 항목이있는 데이터 세트가 있다면, Chunk 처리를 사용하여 이 데이터를 100개씩 10 조각으로 분할 할 수 있습니다. Chunk는 큰 데이터 세트를 처리 할 때 매우 유용합니다. 데이터를 조각으로 나누어 처리하므로 메모리 부족 문제가 발생하지 않습니다. 대신 Chunk는 데이터를 작은 묶음으로 나누어 처리하고 일부 묶음이 완료되면 다음 묶음으로 이동합니다.

0

Circuit Breaker

Circuit Breaker분산 시스템에서 Circuit Breaker 는 일종의 예외 처리 메커니즘으로, 서비스 호출의 실패, 지연 등을 모니터링하고, 이를 감지하면 해당 서비스의 호출을 일시 중단시키는 역할을 합니다. 분산 시스템에서는 여러 대의 서버로 구성되어 있기 때문에, 서비스 간의 호출은 시스템의 다른 부분과 독립적으로 처리됩니다. 따라서, 서비스 호출 시에 실패가 발생하면 이를 처리하는 데 시간이 걸리고, 이를 무한정 대기하게 된다면 전체 시스템의 성능에 악영향을 미칠 수 있습니다. 이 때, Circuit Breaker는 이러한 지연을 방지하기 위해 호출을 일시 중단시킵니다. 이후, 일정 시간 동안 호출을 차단한 뒤, 정상적으로 작동하면 다시 호출을 허용합니다. Circuit Breaker 는 분산 시스템에서 안정성을 보장하기 위한 매우 중요한 요소 중 하나입니다. Circuit Breaker 가 없다면, 서비스 호출 실패와 지연에 대한 처리가 지연되어 시스템 전체의 성능에 영향을 미칠 가능성이 높습니다. Circuit Breaker 는 분산 시스템에서 발생할 수 있는 여러 가지 문제를 빠르게 감지하고, 시스템 전체의 안정성을 유지할 수 있도록 도와줍니다.

0

Istio - DestinationRule

목차 Istio - Locality Load Balancing (지역 로드 밸런싱) Istio - Sidecar Injection Post not found: k8s/istio/istio-install Istio 란? 참고 https://istio.io/latest/docs/ops/deployment/architecture/ https://kubernetes.io/docs/reference/access-authn-authz/admission-controllers/ https://happycloud-lee.tistory.com/104 DestinationRule DestinationRule은 서비스 요청이 특정 서비스 버전 또는 인스턴스로 라우팅되도록 지정하는 규칙을 정의하는 리소스 DestinationRule은 Istio 서비스 메시에서 트래픽을 관리하는 중요한 요소 중 하나입니다. 이를 사용하여 서비스를 라우팅할 때 사용할 서비스 버전, 인스턴스 및 연결 방식을 지정할 수 있습니다. DestinationRule은 Istio의 다른 기능과 통합됩니다. 예를 들어, VirtualService와 함께 사용하여 특정 경로 및 트래픽 유형에 대한 규칙을 지정할 수 있습니다. 또한, 서비스 인스턴스의 로드 밸런싱 및 서킷 브레이커와 같은 기능도 DestinationRule을 사용하여 정의할 수 있습니다. 서비스 이름: 규칙을 적용할 대상 서비스의 이름을 지정합니다. 서비스 버전: 규칙을 적용할 대상 서비스의 버전을 지정합니다. 서비스 서브셋: 대상 서비스의 서브셋을 지정하여 트래픽을 특정 서브셋으로 라우팅할 수 있습니다. 연결 풀: 서비스 요청에 사용될 연결 풀을 정의합니다. 예를 들어, 서비스 인스턴스의 최대 연결 수 및 연결 유지 시간 등을 지정할 수 있습니다. 트래픽 정책: 대상 서비스의 트래픽을 제어하는 정책을 정의합니다. 예를 들어, 연결 시간 초과 및 연결 오류를 처리하는 방법 등을 정의할 수 있습니다.

0

Istio - Locality Load Balancing (지역 로드 밸런싱)

목차 Istio - Locality Load Balancing (지역 로드 밸런싱) Istio - Sidecar Injection Post not found: k8s/istio/istio-install Istio 란? 참고 https://istio.io/latest/docs/ops/deployment/architecture/ https://kubernetes.io/docs/reference/access-authn-authz/admission-controllers/ https://happycloud-lee.tistory.com/104 http://itnp.kr/post/istio-circuit-break https://istiobyexample.dev/locality-load-balancing/ Istio - Locality Load Balancing Istio 의 Locality Load Balance 는 서비스 요청을 지역적으로 분산시키는 기능을 제공합니다. Locality Load Balance는 서비스 요청이 클러스터 내에서 발생할 때 해당 요청이 가장 가까운 지역의 서비스 인스턴스에 배정되도록 보장합니다. 이를 통해 클라이언트와 서비스 인스턴스 사이의 대기 시간을 줄이고, 네트워크 대역폭을 절약하며, 네트워크 병목 현상을 방지할 수 있습니다. Locality Load Balance는 Istio의 Envoy 프록시에서 구현됩니다. Envoy는 클러스터 내의 모든 서비스 인스턴스에 대한 위치 정보를 유지 관리하며, 클러스터의 지리적 분포를 파악하여 요청을 지역적으로 분산시킵니다. Locality Load Balance는 또한 Istio의 트래픽 관리 기능과 통합됩니다. Istio는 트래픽 관리 규칙을 정의하여 특정 서비스 인스턴스가 특정 지역에서만 처리되도록 할 수 있습니다. 이를 통해 서비스의 가용성을 높이고, 서비스 인스턴스 간의 부하를 균형있게 분산시킬 수 있습니다.

0

Istio - Sidecar Injection

목차 Istio - Locality Load Balancing (지역 로드 밸런싱) Istio - Sidecar Injection Post not found: k8s/istio/istio-install Istio 란? 참고 https://istio.io/latest/docs/ops/deployment/architecture/ https://kubernetes.io/docs/reference/access-authn-authz/admission-controllers/ https://happycloud-lee.tistory.com/104 Istio Sidecar injectionIstio는 Pod 안에 Envoy proxy container 를 Sidecar 패턴으로 생성하여 Service Mesh (discovery, connect, monitor) 를 합니다. Pod안에 Proxy container를 삽입하는것을 Sidecar Injection 이라고 부릅니다. Istio 에서 Sidecar Injection 은 Kubernetes 의 MutatingAdmissionWebhook 을 사용하여 구현됩니다. 이것은 Kubernetes의 API Server에 대한 요청 처리 중에 사용되며, 새로운 Pod가 생성될 때 Istio가 Sidecar Proxy 컨테이너를 자동으로 추가하는 것을 가능하게 합니다. Istio가 Sidecar를 주입하는 방식은 크게 두 가지 방법이 있습니다. 첫 번째는 자동 주입 방식으로, 이는 기존의 Kubernetes 오브젝트에 Istio의 Sidecar Proxy를 자동으로 추가합니다. 이를 위해서는 Istio의 설치 시 Kubernetes 리소스를 수정해야 합니다. 두 번째 방식은 수동 주입 방식으로, 이는 기존의 Kubernetes 오브젝트에 Istio의 Sidecar Proxy를 수동으로 추가해야 합니다. Sidecar 자동 주입 방식

0

Istio - istioctl

목차 Istio - Locality Load Balancing (지역 로드 밸런싱) Istio - Sidecar Injection Istio - istioctl Istio 란? 공식 홈페이지 https://istio.io/latest/docs/setup/getting-started/ Istioctl 설치brew install istioctl Istio Profile 확인istioctl profile list 특정 Profile 설치

0

Spring Batch - 24. FlowJob

출처 해당 포스트는 정수원 강사님의 스프링 배치 - Spring Boot 기반으로 개발하는 Spring Batch 강의를 바탕으로 작성 됐습니다. 목차 Spring Batch - 24. FlowJob Post not found: spring/spring-batch/step/spring-batch-23-JobStep Post not found: spring/spring-batch/step/spring-batch-22-Tasklet Post not found: spring/spring-batch/step/spring-batch-21-TaskletStep Spring Batch - 20. StepBuilderFactory 와 StepBuilder Spring Batch - 19. JobParameters 증가 JobParametersIncrementer Spring Batch - 18. Job 의 재시작 방지 preventRestart Spring Batch - 17. JobParameters 검증 JobParametersValidator Spring Batch - 16. SimpleJob 와 SimpleJobLauncher Spring Batch - 15. JobBuilderFactory & JobBuilder Spring Batch - 14. 배치 초기화 설정 (application.properties) Spring Batch - 13. JobLauncher Spring Batch - 12. JobRepository Spring Batch - 11. ExecutionContext Spring Batch - 10. StepContribution Spring Batch - 09. StepExecution 와 STEP_EXECUTION 테이블 Spring Batch - 08. Step Spring Batch - 07. JobExecution 와 JOB_EXECUTION 테이블 Spring Batch - 06. JobParameter 와 JOB_EXECUTION_PARAM 테이블 Spring Batch - 05. JobInstance 와 JOB_INSTANCE 테이블 Spring Batch - 04. JobLauncher Spring Batch - 03. Job Spring Batch - 02. Batch 에서 사용하는 Table Spring Batch - 01. @EnableBatchProcessing FlowJobFlowJob은 일련의 스텝으로 구성됩니다. 각 스텝은 Tasklet 또는 Chunk 지향 스텝으로 구성될 수 있습니다. Tasklet은 일련의 작업을 수행하는 데 사용되며, Chunk 지향 스텝은 대량의 데이터를 처리할 때 사용됩니다. FlowJob은 각 스텝이 성공적으로 완료되면 다음 스텝으로 이동하도록 작동합니다. 각 스텝은 성공, 실패 또는 종료와 같은 결과를 반환합니다. 이 결과를 기반으로 FlowJob은 다음 스텝으로 이동하거나 작업을 중지할 수 있습니다. FlowJob은 각 스텝의 결과에 따라 다른 스텝으로 이동하거나 작업을 중지하도록 구성할 수 있습니다. 이를 통해 Spring Batch 사용자는 FlowJob을 사용하여 유연하고 복잡한 Batch 작업을 쉽게 구현할 수 있습니다. 또한, FlowJob은 분기와 조건 분기를 지원하여 작업 흐름을 더욱 세밀하게 제어할 수 있습니다. 예를 들어, 분기를 사용하여 성공 또는 실패에 따라 다른 작업을 실행하거나, 조건 분기를 사용하여 입력 데이터의 특성에 따라 다른 작업을 실행할 수 있습니다.

0

CNCF (Cloud Native Computing Foundation)

공식 홈페이지 https://www.cncf.io/ CNCF 란CNCF(Cloud Native Computing Foundation)는 Linux 재단( Linux Foundation)의 하위 조직으로, 클라우드 네이티브 컴퓨팅을 지원하고 발전시키는 오픈소스 프로젝트의 생태계를 관리하고 유지보수하는 비영리 단체입니다. CNCF는 클라우드 네이티브 애플리케이션을 위한 오픈소스 기술의 개발, 유지보수, 보급을 촉진하고 있으며, 이를 위해 Kubernetes, Prometheus, Envoy, CoreDNS, containerd 등 다양한 프로젝트를 관리하고 있습니다. 이러한 기술들은 모두 클라우드 네이티브 애플리케이션의 구축, 배포, 운영을 위해 필요한 기반 기술을 제공하고 있습니다. CNCF는 이러한 오픈소스 프로젝트의 개발, 운영, 확장을 지원하며, 이를 통해 클라우드 네이티브 컴퓨팅 생태계를 확장하고 발전시키고 있습니다. 또한 CNCF는 이러한 프로젝트를 사용하는 사용자 및 개발자 커뮤니티를 지원하고, 교육 및 인증 등 다양한 활동을 통해 클라우드 네이티브 기술의 활용과 보급을 촉진하고 있습니다.

0

Helm

목차 쿠버네티스 - Namespace 쿠버네티스 - Ingress Post not found: k8s/deployment/deployment Post not found: k8s/replicaset/replicaset 쿠버네티스 - Node 쿠버네티스 - Pod Post not found: k8s/k8s 공식 홈페이지 https://istio.io/latest/docs/setup/getting-started/ Helm 이란Helm은 Kubernetes 애플리케이션 배포 관리 도구입니다. Helm은 패키지화된 Kubernetes 리소스를 쉽게 배포하고 관리할 수 있도록 해주는 툴입니다. Helm은 chart 라는 것을 사용하여 Kubernetes 리소스를 패키지화합니다. Chart는 애플리케이션의 구성과 릴리즈 정보를 포함하고 있습니다. Chart를 사용하면 애플리케이션을 배포하고 업데이트하는 프로세스를 쉽게 자동화할 수 있습니다. Helm은 또한 Helm Repositories 라는 것을 제공합니다. 이는 Helm Charts를 저장하고 공유할 수 있는 저장소입니다. 공개 또는 비공개 저장소를 사용하여 애플리케이션을 더 쉽게 배포하고 공유할 수 있습니다. Helm은 Kubernetes의 많은 기능을 지원합니다. 예를 들어, Helm은 릴리즈를 롤백하는 기능을 제공하며, 릴리즈 히스토리를 추적할 수 있습니다. 또한 Helm은 템플릿을 사용하여 리소스를 더 쉽게 생성할 수 있습니다.

0

Istio 란?

목차 Istio - Locality Load Balancing (지역 로드 밸런싱) Istio - Sidecar Injection Post not found: k8s/istio/istio-install Istio 란? 공식 홈페이지 https://istio.io/latest/docs/setup/getting-started/ https://gruuuuu.github.io/cloud/service-mesh-istio/ Istio 란? Istio는 서비스 매쉬 (Service Mesh) 를 구현하기 위한 오픈소스 플랫폼 서비스 매쉬는 마이크로서비스 아키텍처에서 많은 서비스 인스턴스들이 동작하는 환경에서, 서비스들 간의 통신을 관리하고 모니터링할 수 있도록 해주는 기술 입니다. Istio는 Kubernetes 환경에서 동작하며, 다양한 기능을 제공합니다. 예를 들어, 서비스 간의 통신 보안, 트래픽 라우팅, 부하 분산, 서비스 간의 장애 처리 등을 제공합니다. 이러한 기능을 통해 서비스 매쉬를 쉽게 구현할 수 있고, 서비스들 간의 통신 관리를 간편하게 할 수 있습니다. Istio Architecture