일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- EMR
- aws
- hive
- fastcampus
- redash
- 레디스
- Zeppelin
- gradle
- login
- Jenkins
- 로그인
- 자동
- spring
- 설정
- config
- Cluster
- 클러스터
- SpringBoot
- ec2
- Redis
- Docker
- 자바
- java
- 머신러닝
- vue
- 예제
- Mac
- 젠킨스
- Kafka
- 간단
- Today
- Total
목록java (11)
코알못
서버의 메모리와 CPU를 모니터링 할일이 생겨 모니터링 툴이 필요했다. 여러 모니터링툴중 오픈 소스인 visualVM 을 사용해보자! java 프로세스 띄울시 jvm 옵션에 설정을 주어 해당 자바 어플리케이션의 자원 사용량을 볼 수 있으며 어떤 클래스에서 얼마나 사용하는지도 볼수 있어서 자바 소스 코드의 메모리 누수를 찾는데도 용이하다. (저자는 이전에 푸시 서비스를 구현하였으나 메모리 누수가 있어 해당 서비스로 누수 원인을 찾았다. 궁금하다면 아래 TMI 부분을 보면 된다.) 자 그럼 설치부터 진행해보자! (저자는 ec2 인스턴스에 자바 프로세스를 띄우고 모니터링을 로컬에서 띄우는 실습을 진행한다.) - 설치 : https://visualvm.github.io/download.html VisualVM:..
로그인 실패, 성공 커스텀 구현 토큰 발행 커스텀 구현 토큰(jwt)에 사용자 정보 추가 로그인 실패/성공시 구현해야하는 비즈니스 코드는 회사 마다 각각 다르고 커스텀 하게 코드를 작성해야 하며, 지금부터 설정해본다! 일단 기존에 구현한 코드에서는 아래와 같이 로그인 화면이 나오고 로그인 실패시 아무 문구가 나오지 않는다. 실패 성공 커스텀 페이지는 기존 spring security 클래스를 상속하여 구현한다. // 실패 커스텀 페이지 @Slf4j public class CustomFailHandler extends SimpleUrlAuthenticationFailureHandler { @Override public void onAuthenticationFailure(HttpServletRequest r..
로그인 서비스는 2가지 방식으로 구현이 가능하다 1. 쿠키&세션 2. JWT 해당 글에서는 1번 쿠키&세션을 이용한 방법으로 구성해본다! 위 두가지 방법에 대한 플로우는 아래 게시글에서 확인 가능하다 - 쿠키&세션 관련 플로우 [로그인] 로그인 유지는 어떻게 처리 하는 걸까? 인증 정보를 주고 받는 방식은 두가지 방법이 있다. 쿠키 & 세션 JWT 하나씩 알아보자! # 쿠키 & 세션 1. 로그인 2. 사용자 정보 요청 따라서 쿠키의 만료시간에 따라 로그인 유지가 된다. 쿠키의 만 co-de.tistory.com 일단 컨트롤러를 보자 /*** * 로그인 페이지 * @param request * @param model * @return */ @RequestMapping(value = "/", method =..
Predixy 란? - 프록시 중 하나 - redis cluster에서 key 가 분산돼서 저장될 때, 클라이언트가 키가 어디 있는지 찾을 필요 없이 Predixy 가 전부 해줌. - master, slave 읽기 처리 비율 조정 가능 저자가 redis cluster 를 위한 기능이 탑재되어 있는 프록시를 찾아봤을 때(2021.06.01 기준) predixy 뿐이었으므로 해당 프록시와 연동해본다! 아래와 같은 구조가 베스트 이지만.. 테스트를 위한 구성으로 아래와 같이 하나의 서버에서 포트별로 다르게 프로세스를 띄워 구성한다. 1. 설치 $ git clone https://github.com/joyieldInc/predixy.git $ cd predixy $ make $ cp src/predixy /us..
HAProxy 란? 로드 밸런서 가상 IP 를 두어 여러 서버의 부하를 분산하는 기능 오픈소스, 무료 Redis 에 HAProxy 를 두는 이유는 무엇일까? 마스터 장애시 슬레이브가 마스터가 됐을때 Client가 마스터 관련 IP, PORT 를 수정 해주어야 하는 단점 보완 검색 해보면 대부분 해당 이유로 많이 나오지만 이전 포스팅인 [5분안에 구축하는 Redis-Sentinel] 를 참고하여 구성하면 해결 된다. (해당 구성이 어려운 경우를 말하는 것으로 보인다.) slave에서 읽기가 가능하도록 하기 위해 & 로드밸런싱 기능 이전 포스팅 방식으로 구현시 slave 는 데이터 백업용으로만 사용된다. HAProxy 를 사용하면 slave 에서도 읽기가 가능하여, Master의 부하가 분산된다. But, ..
이전 글에서 [5분 안에 구축하는 Redis(레디스)] 레디스에 대해 알아 보았습니다 이번 시간에는 Redis Sentinel 에 대해 알아 봅시다! Redis Sentinel 은 장애 발생시 운영 서비스에 영향 없도록(=고가용성) 레디스 마스터 모니터링 및 자동 장애 극복 조치 (=Fail-over) 해주는 서비스 입니다. 아래와 같은 아키텍쳐로 구성 합니다. 위와 같은 아키텍쳐로 구성시 한대 서버 장애가 나도 정상적인 운영이 가능합니다. 장애 감지시 sentinel 끼리 투표를 하는데 일정 투표수(=쿼럼::quorum) 이상이 장애 서버라고 동의하면 fail over 작업을(마스터 승격) 진행합니다 (쿼럼이 3일시, fail over 불가) 만약, 죽은 서버를 복구하여 서비스 투입시 아래와 같습니다...
레디스(Remote Dictionary Server)가 무엇인가! - 메모리 기반 저장 서비스 - 키-값 구조 - 문자열만 저장할 수 있는 Memcached와 달리 다양한 자료구조(Collection: 목록성 데이터 처리 구조) 지원 -> 다양한 형식으로 저장 가능 (String, Set, Sorted Set, Hash, List 등) - 오픈 소스 (무료) - 원격(Remote) 저장소로 여러 서버에서 같은 데이터를 공유할 수 있음 - 캐시로 사용 가능 - 메모리에만 저장하는 Memcached와 달리 디스크에도 저장하여 데이터 저장소로 사용 가능 (백업 방식으로 2가지가 존재함.) > 개념만 봤을때 아 ~ 그렇구나 정도지 실제 해보지 않으면 알기 어렵다.. (다음번에 테스트 해볼 예정) RDB AOF ..
아래와 같은 에러 발생시 dependency 추가하면 해결 완료! NoClassDefFoundError: com/fasterxml/jackson/databind/JsonSerializer bulid.gradle dependencies { compile 'com.fasterxml.jackson.core:jackson-databind' } 버전은 명시하는게 좋으니 위와 같이 입력후 라이브러리 받아 버전 확인 후 입력하셔도 되며, 원하시는 버전이 있다면 아래와 같이 뒤에 붙이시면 됩니다. (2021년 02월 15일 기준 2.11.4 최신) dependencies { compile 'com.fasterxml.jackson.core:jackson-databind:2.11.4' } 위와 같이 라이브러리 의존성 추가..