728x90
JPA의 영속성 컨텍스트영속성 컨텍스트는 JPA가 Entity 객체를 상태관리하는 공간 및 매커니즘이다.자세히는 엔티티의 상태를 메모리 상에 올려 놓고, Datsbase와의 동기화를 관리하는 공간으로 볼 수 있다. 이 공간에 올라간 객체는 변경 사항을 추적할 수 있게 되고 트랜잭션이 끝나는 시점에 Database에 반영된다. 1. 영속성 상태JPA의 영속성 컨텍스트 내에서 관리되는 Entity는 네 가지의 상태를 갖는다비영속(Transient)Database와 전혀 관련이 없는, 단순 메모리 상에만 존재하는 상태영속(Persistent)영속성 컨테스트에 의해 관리되고 있는 상태준영속(Detached)영속 상태에서 벗어나 분리된 상태삭제(Removed)Database에서 삭제 예정인 상태(트랜잭션이 커밋..
낑AWS의 로드밸런서 서비스를 이용중이었다. 그리고 그 앞단에서 로드밸런서에 요청정보를 전달하는 Apache가 있었다. 😶: 인쟈 트래픽에 따라서 로드밸런서가 알아다가 분산하겠징 라고 생각했는데, 근 며칠동안 새벽마다 통신장애가 일어나 어느 시점부터 503 코드로 반환되었다. 귀신같이 퇴근만 하면 고장나는 서버에 뭐라도 씌인 것인 건가 싶었다. 연결된 네트워크에 안면인식기능이 탑지된 것 마냥 자정에 건물 문이 잠길 때까지 기다려도 눈앞에서 재연되지 않는 상황에 모두가 넋이 나갔다.현지 시간대를 노린 누군가의 침입에 의한 것인가 싶어 access_log, error_log 를 다 뒤져보면 그 언저리 반갑지 않은 손님들의 소스 긁기를 위한 GET: 시도가 보이긴 하지만 그게 원인은 아니었다. 우선은 Ap..
Scheduler 설정 구조@DependsOn({"..."})@Configurationpublic class ConfigScheduling { @Bean public JobDetail ...JobDetail(){ return JobBuilder.nowJob(잡.class) .withIdentity(잡.class.getSimpleName()) .storeDurable(true) .build(); } @Bean public Trigger ...JobTrigger(){ ... return trigger.newTrigger() .withIdentity(잡.c..
이전 포스팅 보기 이전에 채팅 시스템에 대해서 위와 같이 WebSocket 방식의 채팅 이면서 메시지는 NoSQL에 저장하는 형태를 고려해봤다.이제, 중간에 Server를 구체화할 예정이다. 무상태 서비스와 상태유지 서비스 구분짓기여러 서비스를 제공하는 서버에 대해서 상태에 따른 서비스를 분류할 필요가 있다.무상태서비스: 로그인, 회원가입, 배치, 공통유틸 등 전통적인 요청/응답 서비스 (클라이언트 상태 관리 X)상태유지서비스: 채팅서비스, 즉 클라이언트와 서버가 네트워크 연결을 유지해야 하는 서비스아래는 이러한 상태에 다른 서비스를 시각화했다.사용자의 요청에 따라 로드밸런서가 각 서버로 요청을 분산시키는 형태다. 이와 반대로, 상태 유지를 하는 채팅 서비스는 별도로 분리되어 로드밸런서의 영향을 받지 ..
> 관련 포스팅(서버 이중화) 요구사항 분석최초에 원한 구조는 위와 같다.클라이언트가 요청을 보내면 L4가 분산(Active-Active)시켜서 서버에 전달하는데, 이때 각 서버는 마찬가지로 이중화된 DB를 선택해서 접근할 것이다.이때, 해당 DB는 최대한 실시간으로 연동되어 데이터 정합성을 유지할 수 있길 원한다그렇다면 나는 mariaDB의 Replication을 어떻게 할지를 고민하면 된다. MariaDB의 Replication 방식 고려하기MriaDB에서 Replication 구성은 다양하다. 그 중 몇 가지만 대표적으로 보면 아래와 같다. AP 서버가 Active-Active 이중화 구성 상태라는 것은이러한 서버의 구성 상태를 더욱 정확히 파악해보자- 부하 균등 분산: 트래픽이 두 서버에 균등하..
이전 작업 바로가기 VirutalBox 조작하기클립보드 공유시키기VirtualBox 이용 시 Ctrl+C,V 를 원활하게 연동하기 위함, 이후 해당 서버 재기동 OpenJDK 설치virutalBox내 우분투에서 jdk 설치를 진행한다sudo apt-get install openjdk-11-jdkjava -version //확인 그다음, virtualBox에서 confluent.io 사이트에 접근해 원하는 Kafka 버전의 Tarball 파일을 다운한 뒤 압축 해제해준다tar -xvf [카프카.tar.gz 경로] Kafka 파일 구경bin 구경하기우선 putty로 접근해서 kafka 경로 내의 파일을 확인해본다bin 경로 내로 들어가면 카프카 기동 명령어 역할을 하는 .sh 파일들을 볼 수 있다이제 곧 [..