분류 전체보기

KafkaTransactionManager ( 카프카 트랜잭션 처리 )스프링 부트에서 트랜잭션을 사용하기 위해서는 단순히 spring.kafka.producer.transaction-id-prefix값을 설정하기만 하면 된다. (application.yml 혹은 KafkaProducerConfig에 설정)스프링 부트에서는 자동적으로 KafkaTransactionManager bean을 구성하고 listener 컨테이너를 연결한다.@Beanpublic ProducerFactory producerFactory() { ... DefaultKafkaProducerFactory factory = new DefaultKafkaProducerFactory(props); factory.setTransa..
이벤트 발행을 보장하는 방법Event Driven Architecture 에서의 이벤트 발행을 보장하는 방법은 여러가지 있다.MSA로 설계된 분산시스템 에서는 데이터의 일관성을 유지 하는것은 매우 중요하다.아웃박스 패턴은 서비스 간의 데이터를 최소 한번 이상 전달하여두 서비스 간의 데이터의 정합성을 목표로 한다.멱등성최소 한번 이상 전달 하더라도 데이터가 동일 해야 한다. 위 말을 들으면 멱등성 이라는 것이 떠오를 것이다.그러므로 데이터가 중복 처리 되더라도 같은 결과를 얻을 수 있게멱등성을 고려하는 것이 중요하다.  목표 - 데이터의 일관성 메시지 손실 방지: 아웃박스 패턴은 로컬 트랜잭션을 통해 작업의 원자성을 보장하고                이벤트를 데이터 베이스에 저장하여, 전송 과정에서 발생..
모놀로식 아키텍처 (Monolithic Architecture)하나의 WAS에서 모든 기능을 처리하도록 구성한다.장점구조가 간단하다시스템 운영과 개발이 편리하다네트워크로 인한 지연 및 데이터 유실 안전하다디버깅이 쉽다 ( 로그 추적에 용이하다 )트랜잭션 관리가 편하다장애에 견고하다단점기능이 많아지면 복잡해질 수 있다 (스파게티 코드)코드베이스가 어지럽다 ( HTML, JS, CSS 파일을 포함해야 하므로 )클라이언트 코드에 버그를 수정하더라도 서버를 다시 실해야하 하는 불편함이 있다Git 브랜치도 많아지고 관리가 어렵다애플리케이션에 대한 확장이 비효율적이다점차 늘어나는 사용자의 요청을 감당하기 위해 시스템을 확장하여 고가용성을 확보해야 한다.소스코드가 증가함에 따라 서버의 빌드시간은 점차 늘어나게 되고,..
problemec2에 올릴 수 있었지만 ec2 메모리가 부족해서 이렇게 된거 ElastiCache 를 사용해보려고 한다.solutionElastiCache 란Amazon ElastiCache는 인 메모리 데이터베이스 캐싱 시스템을 제공하여 애플리케이션이 데이터를 검색 할 수있는 성능, 속도 및 중복성을 향상시키는 클라우드 캐싱 서비스이다.https://ap-northeast-2.console.aws.amazon.com/elasticache/home https://ap-northeast-2.console.aws.amazon.com/elasticache/home?region=ap-northeast-2#/ ap-northeast-2.console.aws.amazon.com1. Start위 링크에 접속해서 오른..
problem ec2에서는 db의 접속이 가능 했지만 외부( intellij , db접속 툴 )에서 접속이 안됐다확인한것1. Inbound(인바운드) 규칙 확인2. 퍼블릭 엑세스 설정 확인두 설정 모두 마친 상태인데 연결 불가가 떳다. solution이유는 RDS에 설정되어 있는 서브넷이 private으로 되어 있어서,내부에서의 접근은 가능 했지만 외부에서 접근할 수 없었던 것이다. 이제 이걸 해결하려면 public으로 변경해 주면 된다.1. AWS 검색창 왼쪽 위에 있는 검색창에 VPC를 검색 후 들어간다.2. 대시보드 아래에 라우팅 테이블에 들어간다. 3.RDS로 시작하는 라우팅 테이블에 들어간다.4. 하단에 라우팅 탭에 라우팅 편집에 들어가서 라우팅 추가 버튼을 눌러준다.대상주소 : 0.0.0.0/..
problem프로필 , 로고 업로드 기능을 위해 서버에서 이미지 처리 기능으로 S3를 사용 했다.S3 의 버켓에 특정 확장자 업로드를 방지하는 정책을 적용 해보기로 했다.solution적용 할 버킷에 접속한다.권한 탭으로 이동 후 아래에 내려오면 버킷 정책이 있다{ "Version": "2012-10-17", "Id": "Policy1717078661759", "Statement": [ { "Sid": "Stmt1717078657627", "Effect": "Deny", "Principal": "*", "Action": [ "s3:GetObject", ..
problem"action_request_validation_exception""Validation Failed: 1: type is missing;"두 예외에 대한 설명도 아래에 담는다폐쇄망(내부망)에서 엘라스틱서치 인덱스의 데이터를 옮기려고 한다해당 인덱스의 데이터를 json 파일로 받아 다시 새로운 인덱스로 옮기는 작업을 했다.solution1. 데이터 -> JSON 파일 추출# 1. 첫 번째 요청으로 스크롤 ID 얻기curl -X GET "http://localhost:9200/index/_search?scroll=1m&size=1000" -H 'Content-Type: application/json' -d'{ "query": { "match_all": {} }}' > my_index.j..
· 개-발/Git
Issue Labelsproblem기본 이슈 레이블은 상당히 제한적이다.그래서 커스텀 해보기로 했다.Github Label 설치 github label을 동기화할 수 있는 라이브러리가 있다. GitHub Label Sync# node.js npm 설치sudo apt install nodejs npm# github-label-sync 설치npm install -g github-label-sync AccessToken 준비레파지토리에 label을 적용하려면 깃헙 access-token이 있어야 한다.이전에 git credential 정책이 바뀌면서 만들어둔 토큰이 있어서 사용했다.access Token 만드는 방법labels.json 만들기새롭게 적용할 label 들을 labels.json 파일로 만들어 주..
imSoo
'분류 전체보기' 카테고리의 글 목록 (3 Page)