본문 바로가기
728x90
반응형

분류 전체보기59

Spring cloud의 이해 & Spring cloud config 기본 사용 MSA 작동 클라이언트에서 나눠진 각각의 서비스 요청하는 것 - 문제점 모든 마이크로서비스에서 같은 인가/ 인증 필요 API gateway - 다수의 클라이언트가 service에 요청했을 때 중간에서 요청을 받고 마이크로서비스로 요청을 넘김. - A, B, C - e.g) zuul, spring cloud gateway 마이크로서비스 장단점 해결 단점 해결책 Spring cloud 다수의 필요한 서비스 어떻게 찾나 서비스 디스커버리 Eureka 다수 서비스의 인스턴스 어떻게 결정 클라이언트- 사이드 로드밸런싱 Ribbon 개별적 서비스가 응답하지 않을 때 어떤일이 발생하는가 결함 허용 Circute-Breaker/Hystrix 보안, 속도 제한과 같은 서비스 접근 서비스 보안 OAuth2 다수의 서비스느.. 2021. 12. 1.
java 직렬화 직렬화란? - 객체를 다른 환경에 저장했다가 나중에 재구성 할 수 있게 만드는 방식 - object는 주소를 통해 reference 되기 때문에, 이미 가비지 컬렉터로 지워졌다면 그게 무슨 값인지 알수 없다. 따라서 byte로 직렬화하여 값을 유지하여 그대로 저장하고, 그것을 역직렬화하는 방식이다. (object를 byte로, byte를 object로) 자바 직렬화 - 쉬운 분산 객체생성 - byte stream을 만듦 언제 쓸까? - 객체의 상태를 저장해야 할필요가 있을 때 - 파일, dB, 캐시 - 다른 vm에 정보를 전달할 필요가 있을 때 - RMI, 소켓 사용방법 - Serializable - 객체 직렬화: java.io.ObjectOutputStream의 writeObject를 이용 - Byte.. 2021. 11. 12.
blocking vs non-blocking, sync vs async 1. blocking/ non-blocking : - 기준 : 제어권 blocking: 다른 주체가 작업할 때 자신의 작업을 할 수 없다. non blocking :다른 주체가 작업을 할 때, 자신의 작업을 할 수 있다. 2. sync vs async - 기준 : 순서/ 결과의 처리 synchronous : 동시에 수행하거나, 동시에 끝나거나, 끝나는 동시에 시작함 asynchrounous : 비동기 - 시작, 종료가 일치하지 않으며, 끝나는 동시에 시작하지 않음. 3. 조합 종류 blocking non-blocking sync blocking/ sync non-blocking /sync async blocking/async non-blocking/async 1) blocking / sync - bloc.. 2021. 11. 11.
트랜잭션 문제 & 해결 + 용어 경쟁 상태(RACE condition)를 해결하는 것이 트랜잭션 해결의 기본 1. 동시성 관련 문제 1. 커밋 되지 않은 데이터 읽기 (dirty read) 2. 커밋 되지 않은 데이터 덮어 쓰기 (dirty write) 3. 읽는 동안 데이터 변경 (read skew) - 읽는 시점에 따라 데이터가 바뀜 예) select count를 두번 할때 그 사이 다른 곳에서 insert한것이 commit 되어 count가 바뀜 - 이때 중간에 update, delete, insert등으로 바뀐 data를 read한 것을 phantom read라 함 4. 변경 유실 (load update) - 같은 데이터를 업데이트 하려 할때 발생: 예) 컬럼의 값 1증가 시키기: 1에서 1증가 시키려고 컬럼 업데이트를 하려고 .. 2021. 11. 11.
728x90