Page History
...
- 조건에 따른 상태저장 : 특정 사용자가 Hello를 하면 사용자별 카운트 1증가 , 기분이 나쁜 상태일때는 Hello를 거부 카운트 증가없음
- 상태읽기 : 특정 사용자 Click 카운트를 확인 하기 위해 1000번 조회후 성능측정
- 추가 미션 : 마지막 상태값 저장뿐만 아니라 상태 로그를 저장해 시계열분석이 가능하도록 데이터 처리
성능표
- Total time for 100 Hello commands for Write: 73 ms
- Average time per Hello command for Write: 0.73 ms
- Total time for 1000 HelloCount for Read commands: 75 ms
- Average time per HelloCount command: 0.075 ms
성능표를 먼저 공유하면~ 저장시 마지막 상태는 Redis에 저장을 하고, 로그성은 Kafka에 저장합니다.
해당 객체가 상태를 가지고 있기때문에 읽기시 Redis로부터 값을 읽을 필요없이 로컬에서의 상태값값을 반환합니다.
- Redis 를 1000번 호출한다는것은 인메모리에서 1000번 호출할것같지만 사실 네트워크 호출 1000회가 포함되어 있습니다.
- 상태없는 프로그래밍에서 최적화 지점은 Redis가 고성능이라고 믿고 있지만 네트워크 호출 횟수조차 줄여~ 단일지점 저장소의 부하를 어플리케이션에 분산하는것에 있습니다.