최근에 DL(Data Lake) 데이터 저장소를 Logpresso에서 ClickHouse(+Nifi)로 전환하는 작업을 진행했다. 이에 따라 API 서버(Spring Boot)에서도 Logpresso에서 가지고 오던 데이터를 ClickHouse에서 가져오도록 전환을 진행했다. 이를 위해 하나의 프로젝트에 다중 데이터소스(pg, ClickHouse)를 연결해야 했다. 이 글은 그 내용을 다룬다. 1. build.gradle 에 clickhouse jdbc 추가ClickHouse JDBC를 사용하기 위해 build.gradle에 의존성을 추가해준다. 2. yml 에 clickhouse 접속 정보 추가application.yml 파일에 ClickHouse 접속 정보를 추가해준다.datasource 위의 pos..
우리 프로젝트에서는 여러개의 쓰레드를 이용하여 작업을 실행하기 위해 ThreadPoolExecutor를 이용하고 있다 쓰레드 풀의 개수는 고정적으로 사용하고 있으며, 해당 쓰레드를 실행하는 부분에서 쓰레드의 개수를 관리하며 쓰레드 풀 이상의 요청은 하지 않기 때문에 이론적으로는 쓰레드 풀이 터지는 경우는 없어야 했다. 하지만 여러 프로젝트를 진행하며 종종 쓰레드 풀이 터지곤 했는데 이번에 조금 더 깊이 파봤다 발생한 오류 는 아래와 같다 RejectedExecutionException: Task cohttp://m.xxx.xx.TrainWorker rejected from java.util.concurrent.ThreadPoolExecutor[Running, pool size = 16, active th..
스프링 부트 프로젝트를 개발하며 2개의 데이터베이스를 연결해야하는 이슈가 생겼다. 기존 프로젝트는 mybatis와 jpa를 섞어서 사용하는 구조이고, multi datasource를 설정하기 위해서는 수동설정이 필요했다. 수동설정을 위해 mybatis는 mapper가 어디에 있는지, jpa는 entity와 repository가 어디에 있는지를 모두 설정해주어야 했는데 기존 프로젝트의 구조가 이곳저곳에 퍼져있어 어려움을 겪었다. 1. application.properties에 datasource 입력 application.properties에 두개의 데이터베이스에 접근하기 위한 정보를 입력해준다. 여기서 중요한 점은 url이 아닌 jdbc-url을 사용해야한다는 것이다. 그 이유는 spring boot 2..
- Total
- Today
- Yesterday
- 제우스 로그
- cleanup policies
- 오블완
- kafka with raft
- kafka without zookeeper
- 넥서스 보관주기
- db 두개
- AWS
- cleanup policy
- 넥서스 파일 보관주기
- 주키퍼 없는 카프카
- 카프카
- multiple datasource
- volatile
- php
- 스레드 동기화
- SynchronousQueue
- 보관주기
- docker
- jeus8
- jeus8.5
- 다중 데이터소스
- 제우스8.5
- s3
- 티스토리챌린지
- API Gateway
- 도커
- 네트워크
- 제우스8
- 쓰레드 변수
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |