분류 전체보기(110)
-
ELK 모니터링 설정 (elasticsearch, logstash, filebeat, kibana)
ELK 란? ELK란 Elasticsearch, Logstah, Kibana 각각 앞자리를 따서 ELK라고 합니다. 요즘은 EFK로 많이 쓰는데 있는데 EFK는 Elasticsearch, Fluentd 또는 Filebeat, Kibana를 말합니다. ELK를 사용하게 된 이유 이전에는 서버가 1개 였는데 LB를 사용하게 되면서 서버를 총 6개로 늘림. 그렇게 되다보니 nginx로그랑 앱 로그를 확인하기가 어려워 지는경우가 발생 구축하는 방법 환경 : vm 서버(vCPU 2 core, memory 8GB, storage 80GB) OS : ubuntu 20.04 LTS 중요사항 : elasticsearch 7버전대를 설치하는 이유는 최신버전인것도 있지만 xpack이 7버전부터 일부 무료가 되었다. 로그서버..
2021.06.15 -
디비 커넥션 누수 개선 사항 (Hicari Pool,
현재 이메일 배치를 돌면서 문제가 발생하는 상황이 나타남. 이것에 대하여 hikariPC 옵션들을 찾아보고 알아봤음 참고 자료 1. 우리와 비슷한 상황에서 커넥션 누수를 스텝 바이 스텝으로 해결한 블로그 https://do-study.tistory.com/97 HikariCP와 커넥션 누수(Connection Leak) 관련 트러블슈팅 문제 발생 운영중인 서비스에서 사용하는 DB에서 특정 테이블들을 분리하여 별도 DB로 구축하는 일이 생겼습니다. 때문에 이를 위해 Multi Datasource를 적용하였습니다. 기존 서비스는 Tomcat connection do-study.tistory.com 2. hikariCP 옵션들을 정리한 블로그 https://jamong-icetea.tistory.com/212
2020.07.29 -
pt-online-schema-change 설치 및 사용 (DB 온라인 DDL 사용 툴)
1. pt-online-schema-change 설치 MAC brew install percona-toolkit Linux ubuntu / Debian apt-get install percona-toolkit Arch Linux pacman -S percona-toolkit perl-dbd-mysql 2. 작성법 pt-online-schema-change \ --alter "drop index index_5 or add index index_5(brand_id, display_status)" \ D=데이터베이스,t=테이블명,h=호스트IP,u=유저명,p=패스워드,P=포트명 \ --execute \ # alter 를 사용시 필요한 옵션 --chunk-size=500 \ # default가 1000 데이터를 ..
2020.07.29 -
Spring - JDNA (향상된 ConnectionPool, Servers에 DB등록하기)
-----------------------JDNA (ConnectionPool 상위버전)--------------------- JNDA(Java Naming and Directory Interface) - JAVA의 이름 서비스다. - 생성한 객체를 특정이름으로 바인딩(연결, 저장)하고, 지정된 이름으로 바인딩된 객체를 탐색하기 위한 API를 제공하는 것 - JNDI API 사양 - javax.naming.Context 인터페이스에 정의되어 있다. - 주요 메소드 void bind(String name, Object obj) - JDNI에 객체를 지정된 이름으로 등록한다. void rebind(String name, Object obj) - JNDI에 지정된 이름으로 등록된 객체를 새 객체로 교체한다. ..
2019.07.19 -
Spring-트랜잭션 (중요!!!) , @Transactional (exception 도중 처리 막는것)
---------------------------트랜잭션 중요!!------------------------- 트랜잭션 - 여러 번의 SQL 명령을 하나의 논리적인 작업그룹으로 정하는 것 - 대상 SQL 명령은 INSERT, UPDATE, DELETE가 해당된다. - 예 - 게시판 글쓰기 - SELECT - 사용자가 해당 서비스에 글쓰기 권한을 가졌는지 조회 - INSERT - 작성한 글을 테이블에 저장 - UPDATE - 사용자의 포인트를 10 증가시키기 - UPDATE - 사용자의 등급을 변경하기 * 위의 작업에서 SQL 명령이 실행될 때마다 즉시 데이터베이스에 반영하면
2019.07.19 -
Spring - AOP (공통기능, 관점지향 프로그램), 나름 중요, Aspect, 사용예시
------------------AOP(Aspect Oriented Programming) 공통기능-------------- AOP - 관점 지향 프로그래밍 - 같은 컨테이너 안에서만 사용이 가능하다 - 트랜잭션처리 공통기능은 이미 구현되어있다. * interface flatform TranjactionManager - 핵심 기능을 가지고있는 메소드를 JoinPoint라고 한다. - JoinPoint 를 가지고 있는것을 Target이라 한다. - 적용규칙을 PointCut, 공통기능을 Advice, 두 세트를 Aspect라고 한다. 관점지향 프로그램(Aspect Oriented Programming) - 핵심로직이 구현된 메소드에 포함된 공통기능 코드를 제거할 수 있다. - 공통기능을 별도의 클래스에 정..
2019.07.17