본문 바로가기

프로그래밍

(173)
Kafka 설치 MSA 를 하는데 kafka를 같이 도입해서 많이 사용한다. 그렇기에 MSA 가 늘어나면서 Kafka도 많이 사용 중 kafka는 대용량 데이터를 처리할 수 있는 메시지 큐임 동기적 처리 -> 순차적으로 처리함 (a 작업이 끝타면 b 작업을 시작함)비동기적 처리 -> 병렬적으로 처리함 rest api vs 메시지 큐rest api는 동기적 메시지 큐는 비동기적임 프로듀서 서버에서 rest api 요청을 전달 받아서 메시지로 만듬. -> 이걸 메시큐에 저장함. 프로듀서는 메시지를 만들자마자 유저에게 응답 메시지를 보냄.(전송이 완료 안 되어도 일단 응답을 보냄)ex) 이메일 전송 요청이 완료됨 200 이런 식으로 알려줌-> 이게 비동기적 방식임 모든 이메일 발송 처리를 다 하고 응답을 주는게 아니라내가..
Cloudflare CDN 설정하기(비디오 캐싱) cdn을 키기 위해 workers를 이용하자 worker.js export default { async fetch(request, env, ctx) { const url = new URL(request.url); const videoPath = url.pathname.slice(1); const cacheKey = new Request(url.toString(), request); const cache = caches.default; // 캐시에서 먼저 확인 let response = await cache.match(cacheKey); if (response) { return response; } // R2에서 직접 가져오기 const o..
typescript - 초기에 타입스크립트 프로젝트 실행하기 1. npm init -y 2. npm i @types/node 3. tsconfig.json 파일을 직접 생성하기 4. tsc로 컴파일하면 js 파일이 생성이 됨 5. 생성된 js를 이제 node dist/index.js로 실행하면 실패한다.모듈 정의가 안 되어 있어서 6. type 은 module을 설정하기
typescript - 정리, 컴파일러 옵션 설정하기 js 컴파일 과정은 아래와 같음 반면에 타입스크립트는 js를 만들어냄 npm i @types/node 로 하자 이걸 설치해야 typescript를 node.js가 알아들을 수 있다 그리고 typescript 컴파일러를 설치해야한다 npm install typescript -g로 설치하자 tsc -v로 버전을 확인할 수 있음 tsc src/index.ts로 컴파일하면 index.ts에서 index.js 파일이 생긴다 tsx를 깔면 js 없이 바로 실행 가능함 컴파일러 옵션을 직접 설정해보자 tsc를 쓰면 자동으로 다 있음tsc --init이걸로 초기화 해보자 그럼 tsconfig.json이란 타입스크립프트 컴파일러가 생긴다 다 지우고 {} 만 두고 수정하자 strict를 하면 매개변..
쿠버네티스 - 서비스 쿠버네티스는 서비스가 있다. 서비스를 이용해서 접속, 로드밸런싱을 함 실제 서비스에서 파드(Pod)에 요청을 보낼 때, 포트 포워딩(port-forward)이나 파드 내로 직접 접근(kubectl exec …)해서 요청을 보내진 않는다. 서비스(Service)를 통해 요청을 보내는 게 일반적이다. servicespring-service.yaml 파일을 작성 apiVersion: v1kind: Service# Service 기본 정보metadata: name: spring-service # Service 이름 # Service 세부 정보spec: type: NodePort # Service의 종류 selector: app: backend-app # 실행되고 있는 파드 중 'app: backe..
쿠버네티스 - 디플로이먼트 디플로이먼트란- 파드를 묶음으로 쉽게 관리할 수 있는 기능 현업에서는 일반적으로 서버를 작동시킬 때 파드(Pod)를 수동으로 배포하진 않는다. 디플로이먼트(Deployment)라는 걸 활용해서 파드(Pod)를 자동으로 배포한다. 장점으로는 개수를 여러개 사용 가능ex) 파드를 100개를 생성하라고 시키면 디플로이먼트가 알아서 파드를 100개 생성해준다. 파드가 비정상적으로 종료된 경우, 알아서 새로 파드를 생성해 파드 수를 유지한다. 디플로이먼트(Deployment)가 레플리카셋(ReplicaSet)을 관리하고, 레플리카셋(ReplicaSet)이 여러 파드(Pod)를 관리하는 구조다. spring-deployment.yaml dlfksms 새로운 메니페스트 파일을 활용 apiVersion: apps..
쿠버네티스 - 디버깅 하는 법 파드의 세부정보 확# kubectl describe pods [파드명] $ kubectl describe pods nginx-pod # nginx-pod 파드의 세부 정보 조회 파드의 로그 확인하기# kubectl logs [파드명] $ kubectl logs nginx-pod # 파드 로그 확인하기 파드에 직접 접속하기# kubectl exec -it [파드명] -- bash $ kubectl exec -it nginx-pod -- bash # kubectl exec -it [파드명] -- sh $ kubectl exec -it nginx-pod -- sh
쿠버네티스-스프링 서버 3개 띄우기 스프링 서버를 3개를 띄우자 apiVersion: v1kind: Podmetadata: name: spring-pod-1spec: containers: - name: spring-container image: spring-server imagePullPolicy: IfNotPresent ports: - containerPort: 8080---apiVersion: v1kind: Podmetadata: name: spring-pod-2spec: containers: - name: spring-container image: spring-server imagePullPolicy: IfNotPresent ports: ..