본문 바로가기
728x90

전체 글110

[MySQL] Replication 동기화 시간 문제 문제 발생 프런트 클라이언트로부터 데이터 업데이트 요청을 받았고 DB에 업데이트를 정상적으로 처리했다. DB 업데이트 완료 이벤트를 다른 서버가 인지하고 업데이트 데이터를 조회했더니 간혈적으로 업데이트 이전 데이터가 조회는 현상이 있었다. 이 현상으로 인하여 데이터 무결성에 대한 문제를 인식하게 되었다. 클라이언트는 A서버에게 value를 20으로 업데이트 요청을 했고 A서버는 db에 데이터를 정상적으로 commit 했다. A서버는 B서버에게 데이터가 업데이트 완료된 상태를 알렸고 B서버는 value 값을 조회했는데 업데이트 이전 value값 10이 조회되었다. 원인 파악 DB 서버는 Master와 Slave로 되어 있고 Insert, Update, Delete는 Master(Write) 서버로 요청을 .. 2022. 11. 8.
[Java] Reflection으로 객체 비교 개발을 진행하다 보면 두 개의 객체가 같은지 비교를 해야 할 경우가 많다. PrimitiveType(기본 자료형) 또는 ReferenceType(참조 자료형) 객체를 비교할 경우 equals 또는 ==으로 비교를 한다. ex) PrimitiveType(기본 자료형) int a = 10; int b = 10; a == b // true ex) ReferenceType(참조 자료형) String s1 = "hello"; String s2 = "hello"; s1.equals(s2); // true 그렇다면 많은 자료형들을 가지고 있는 객체 간의 비교는 어떻게 하는게 좋을까? 예를 들어, 사람 정보가 담긴 사람 클래스가 있다고 가정해보자 사람 클래스에는 이름, 나이, 사는 곳, 성별이 있다. ex) Perso.. 2022. 11. 8.
[Elastic Search] maximum shards open 에러 문제 발생 정상적으로 Elastic Search에 적재되던 로그들이 언제부터인가 적재가 되지 않기 시작하는 걸 발견하였다. CloudWatch의 로그 그룹을 Lambda를 통해 Elastic Search에 스트리밍 하는 방식이었기 때문에 CloudWatch 로그 그룹부터 확인하기 시작했다. CloudWatch 로그가 정상적으로 쌓이고 있는 걸 확인하였고 Lambda를 확인하니 Lambda 함수가 에러가 발생하고 있었다. Lambda에서 아래와 같은 에러가 발생되고 있었다. { "index": { "_index": "[]", "_type": "_doc", "_id": "37156103091093385677066907927746061092930918434506932224", "status": 400, "er.. 2022. 11. 8.
[Elastic Search] Rejecting mapping update to... 여러 개의 CloudWatch 로그 그룹을 Lambda를 통해 Elasticsearch에 적재하고 있었는데 이번에 Elasticsearch 5.X 버전을 사용하다. Elasticsearch 7.X 버전으로 업그레이드를 진행했다. 서비스 로그 파일들을 Bulk 색인 시 Elasticsearch에서 아래와 같은 에러가 발생되었다. { "index": { "_index": "[]", "_type": "[]", "_id": "37179865679911174822595041378954569963025140112055009280", "status": 400, "error": { "type": "illegal_argument_exception", "reason": "Rejecting mapping update to .. 2022. 11. 7.
300x250