학습 내용 (8/9)

may_yun·2023년 8월 9일
0
  • PeerDiscovery
    : Ehcache 클러스터의 노드가 서로를 찾는 방법
    분산 서버 등록을 자동으로 하는 automatic과 수동으로 설정하는 manual이 있다.
    • automatic: 자동으로 노드가 서로를 찾는 것으로 네트워크가 차단된 환경에서는 사용할 수 없다
    • manual: 노드의 IP주소와 PORT 번호를 직접 지정하여 노드가 서로를 찾는다. 네트워크가 차단된 환경에서 사용할 수 있다.
  • Replication RMI
    : 분산 시스템을 개발할 때 사용하는것으로 하나의 RMI 서버에 있는 데이터를 여러대의 RMI 서버에 복제하여 장애 발생시에도 데이터의 가용성을 보장
    • 장점: 장내 내구성 향상, 데이터의 가용성 보장, 개발과 유지보수 단순화
    • 단점: 분산 시스템의 장애 내구성을 향상시킬 수 있는 유용한 기술이지만 성능 저하와 복제된 데이터의 일관성, 보안을 고려해야 합니다.
  • ScheduledExecutorService (interface)
    : 일정 시간 후 혹은 주기적으로 command 작업을 실행시켜 주는 것
    스프링을 사용한다면 @Scheduled를 사용할 수 있다
    • command: 실행하는 테스크
    • initalDelay: 최초의 지연 실행까지의 시간
    • period: 연속하는 실행의 간격
    • unit: initalDelay 및 period 파라미터의 시간 단위
// 0초의 초기 지연 후 5초마다 EvictExpiredElementJob 실행

job = scheduler.scheduleAtFixedRate( new EvictExpiredElementJob( cacheManager ), 0, 500, TimeUnit.MILLISECONDS );
ScheduledExecutorService.scheduleAtFixedRate(Runnable command, long initialDelay, long period, TimeUnit unit)
  • CacheConfiguration (interface)
    : 캐시를 구성하는 데 사용되는 인터페이스로 캐시의 이름, 키와 값의 타입, 캐시의 크기, 캐시의 동작 방식 등을 지정할 수 있다.

    • maxElementsInMemory: 캐시가 메모리에 저장할 수 있는 요소의 최대 개수
    • eternal: 캐시의 요소가 영원히 유지되는지 여부
    • overflowToDisk: 캐시의 요소가 메모리에서 가득 찼을 때 디스크에 저장되는지 여부
    • maxEntriesLocalHeap() : 메서드는 캐시가 메모리에 저장할 수 있는 요소의 최대 개수를 지정합니다. 이 메서드의 값은 long 타입입니다.
      maxEntriesLocalHeap() 메서드의 기본값은 -1입니다. 기본값은 캐시가 제한 없이 메모리에 요소를 저장할 수 있음을 의미
  • getCacheEventNotificationService()
    : Ehcache의 캐시 클래스에서 캐시 이벤트 알림 서비스에 대한 참조를 반환
    캐시 이벤트에 대한 알림을 구독하고 수신할 수 있는 인터페이스이다.

    • registerListener(CacheEventListener listener): 캐시 이벤트에 대한 알림을 수신할 CacheEventListener를 등록합니다.
    • unregisterListener(CacheEventListener listener): 캐시 이벤트에 대한 알림을 수신하는 CacheEventListener를 등록 해제합니다.
    • notifyElementEvicted(Element element): 캐시 요소가 제거되었음을 알립니다.
    • notifyElementExpired(Element element): 캐시 요소가 만료되었음을 알립니다.
  • 다중 클래스에서 @PostConstruct 실행 순서
    : @PostConstruct 애노테이션이 지정된 메서드는 클래스가 생성된 순서대로 실행됩니다. 즉, 가장 먼저 생성된 클래스의 @PostConstruct 애노테이션이 지정된 메서드가 가장 먼저 실행되고, 그 다음에 생성된 클래스의 @PostConstruct 애노테이션이 지정된 메서드가 차례로 실행

  • ConcurrentMap
    : hashTable 클래스의 단점을 보완하면서 멀티 스테드 환경에서 사용할 수 있도록 나온 클래스
    (동시성 성능을 높이기 위해서 나온 클래스이다)
    Map의 기능적인 부분만 보면 큰 차이는 없지만

    • 읽기 작업에는 여러 쓰레드가 동시에 읽을 수 있지만 쓰기 작업에는 특정 세그먼트 혹은 버킷에 대한 lock을 사용한다.
      : 여러 쓰레드에서 concurrenthashmap 객체에 동시에 데이터를 삽입, 참조하더라도 그 데이터가 다른 세그먼트 위치하면 서로 락을 위해 서로 경쟁하지 않는다
      https://devlog-wjdrbs96.tistory.com/269
  • new StopWatch( "Worker" )
    : java StopWatch 클래스를 생성하고 이름을 지정하는것 이름은 해당 객체를 식별하는데 사용되며 측정하고자 하는 작업의 시작 시간과 종료 시간을 기록하고 두 시간의 차이를 계산하여 측정 결과를 제공하는 클래스

    • start(): 측정 시작
    • stop(): 측정 종료
profile
개발 일지

0개의 댓글