일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 간단
- Docker
- Zeppelin
- 레디스
- Cluster
- java
- login
- config
- ec2
- Jenkins
- vue
- 로그인
- fastcampus
- spring
- redash
- aws
- SpringBoot
- EMR
- 예제
- 젠킨스
- 자바
- gradle
- 클러스터
- 설정
- Kafka
- Redis
- 머신러닝
- hive
- Mac
- 자동
- Today
- Total
목록JAVA (34)
코알못
Redis-Cluster 특징? master를 여러개 두어 분산 저장이 가능하며(Sharding), scale out 이 가능하다. 서버를 늘릴수록 저장할수 있는 공간이 무한대로 커진다. master에 하나 이상의 slave 를 둘 수 있다. master 1,2,3 이 있다면 데이터는 3개중에 하나에 저장되며, client 가 데이터 읽기 요청시 저장된 곳이 아닌 다른 마스터에 요청 했다면 저장된 마스터 정보를 알려주며, 클라이언트는 전달받은 마스터 정보에 다시 요청해서 데이터를 받아와야 한다. But, 해당 부분은 redis-cluster 를 지원하는 라이브러리에서 다 해준다. * 참고 - scale up : 단일 서버의 스펙을 올려 서버 성능을 높힌다. - scale out : 서버를 추가하여 서버 ..
HAProxy 란? 로드 밸런서 가상 IP 를 두어 여러 서버의 부하를 분산하는 기능 오픈소스, 무료 Redis 에 HAProxy 를 두는 이유는 무엇일까? 마스터 장애시 슬레이브가 마스터가 됐을때 Client가 마스터 관련 IP, PORT 를 수정 해주어야 하는 단점 보완 검색 해보면 대부분 해당 이유로 많이 나오지만 이전 포스팅인 [5분안에 구축하는 Redis-Sentinel] 를 참고하여 구성하면 해결 된다. (해당 구성이 어려운 경우를 말하는 것으로 보인다.) slave에서 읽기가 가능하도록 하기 위해 & 로드밸런싱 기능 이전 포스팅 방식으로 구현시 slave 는 데이터 백업용으로만 사용된다. HAProxy 를 사용하면 slave 에서도 읽기가 가능하여, Master의 부하가 분산된다. But, ..
간단한 프로젝트를 만들어 보겠다! - 모듈 3개 core-util : 공통으로 사용하는 메소드 모듈 run-a , run-b: base64로 암호화된 값을 보내면 디코딩 한 후 해당 메세지에 모듈명을 붙인뒤, Base64로 암호화해서 리턴하는 모듈 예) ran-A 모듈에 "코린이" base64 인코딩 하여 요청 > "코린이:run-A" base64 인코딩 한 값 리턴 - 각각 실행 가능한 2개의 Jar 파일 만들기 run-a.jar run-b.jar - 실제 실행해보기 만들어보자! :: github.com/works-code/multi-module works-code/multi-module multi-module. Contribute to works-code/multi-module development ..
이전 글에서 [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' } 위와 같이 라이브러리 의존성 추가..
# Quartz 란? - Job Scheduling 라이브러리 - 스프링에서 지원하고 있어 쉽게 구축 가능 - 전체 예제 코드 :: github.com/works-code/dynamic-schedule works-code/dynamic-schedule dynamic-schedule. Contribute to works-code/dynamic-schedule development by creating an account on GitHub. github.com # 개발 환경 - mac os catalina - java 15 - spring boot 2.4.0 - gradle 6.6.1 # 프로젝트 구조 모듈명 설명 module-01 스케쥴을 동작하는 1번 모듈 - module-01 이라는 문구를 출력하는 스..
# oepnjdk 최신 버전 설치 $brew install --cask adoptopenjdk # 특정 버전 설치 1. 아래 페이지에서 버전 확인 - github.com/AdoptOpenJDK/homebrew-openjdk AdoptOpenJDK/homebrew-openjdk AdoptOpenJDK HomeBrew Tap. Contribute to AdoptOpenJDK/homebrew-openjdk development by creating an account on GitHub. github.com - 위 페이지 접속 대신 아래 표 봐도 됩니다 ㅎ (귀찮 귀찮) 2. 저장소 연결 $brew tap AdoptOpenJDK/openjdk 3. 특정 버전 설치 $brew install --cask adopt..