-
2024.04.23 Read-your-write consistency, redirect CORSTIL 2024. 4. 23. 22:25
Read-your-write consistency
우버 글을 보다가 첨부되어 있는 글입니다.
서비스를 운영하면 가용성을 높이기 위해 db 이중화를 하게 됩니다.
복제 과정에서 마스터와 리플리카는 잠시 데이터 차이가 나게 됩니다.
(MMM active-ativce 구조에서도 구현 방법에 따라 날 수 있다.)
해당 글에서는 그 찰나에 사용자가 데이터를 조회했을 때 발생하는 리플리카 렉을 어떻게 줄일 수 있는지 설명하고 있습니다.
문제 해결 방법은 여러 가지가 있는데 흥미롭게 본 것은 Master Fallback입니다.
사용자는 리플리카에 접근합니다. 만약 데이터가 없으면 마스터에게 질의합니다.
단순하게 봐도 리플리카 렉이 적은 경우에만 사용해야 할 듯합니다.
Fragmented Pinning 또한 시간을 기반으로 제어하는데 시간 제어가 오히려 더 복잡성을 주지 않나?라는 생각입니다.
동기화 복제를 하던가, 특별한 읽기만 master에 붙이던가, 특별한 액션 이후에만 master에 일시적으로 붙이던가..
지난 MMM문제에서 배웠던 것이 있습니다.
쓰기는 청크 단위로 하는 것이 복제 시간을 더 짧게 만듭니다.
Redirect CORS
퇴사자가 생겨서 타 시스템을 유지보수하다가 오랜만에 CORS문제를 만났다.
문제는 스택오버플로우에 있는 것처럼 redirect의 cors문제가 발생했다.
redirect 될 때 origin의 값이 null로 들어가 cors문제가 나오는데 음..
비슷한 flow로 oauth에서는 동작을 하는데 원인이 무엇인지 더 파봐야 한다..
++
2024.04.24
fetch는 js로 동작해서 cors를 검사? form동작 방식으로하면 통과..
https://stackoverflow.com/questions/75184430/how-to-redirect-the-user-to-another-page-after-login-using-javascript-fetch-api/75188418#75188418'TIL' 카테고리의 다른 글
2024.04.25 Use Nginx as a Reverse Proxy (0) 2024.04.25 2024.04.24 message broker comparison, duplication in kafka (0) 2024.04.24 2024.04.22 (0) 2024.04.22 2024.04.16 Multitenancy환경에서의 auth gateway (0) 2024.04.17 2024.04.06 spring kafka transaction isolation level, L4L7 (0) 2024.04.06