본문 바로가기

Programming/Frameworks

MacOS 에서 kafka docker 설치와 실행 kafka 를 mac 에서 실행하는 방법을 정리 docker 를 사용하여 하는 것이 가장 간단하고 쉽다. 일단 docker 를 다운받아서 설치하자. 1. 아래 공식 사이트에서 맥용 설치 버전을 받을 수 있다.https://www.docker.com/products/docker#/mac 설치를 하게 되면 아래 그림과 같이 작업 표시줄 상단에서 고래 모양 아이콘을 볼 수 있다. 다음으로 kafka docker 이미지를 받기 위해서 docker hub 에 가서 해당 이미지가 있는 지 검색하여 사용하도록 한다.여기서 star 를 제일 많이 받은 아래 것을 사용하였다.https://hub.docker.com/r/wurstmeister/kafka/ 2. 아래의 명령어로 해당 kafka docker 이미지를 다운받는.. 더보기
Elasticsearch 에 JSON 데이터 저장할 때 유의사항 ES (Elasticsearch) 에 JSON 데이터를 저장할 때 알아 두어야 할 사항이 있는데,기본적으로 ES 는 JSON 타입의 데이터를 저장하면, 모든 field 들에 대해서 index 를 생성하려고 시도한다. 보통 JSON 데이터는 key: value 형식의 데이터들의 나열인데, 여기서 key 의 이름이 변하게 되면, ES 에서 과도하게 index 를 만드는 현상이 발생하여, 성능에 아주 좋지 않은 영향을 미치게 된다. 예를 들면 아래와 같이, key 의 이름이 star, foo 등등으로 계속 바뀌게 되면, 과도한 index 생성을 하게 된다.data1{ star: "abc"} data2{ foo: "def"} 그래서 ES 에 JSON 데이터를 저장할 때, key 의 이름이 바뀌지 않도록 데이터 .. 더보기
kafka topic 삭제시 유의사항 apache kafka 를 사용하면서 topic 을 삭제해야 할 경우가 있다. topic 삭제는 0.8.x 부터 지원이 되는 기능인데, topic 삭제를 정상적으로 진행 하기 위해서는 $KAFKA_HOME/config/server.properties 파일에 아래와 같은 내용을 추가 해야 한다.delete.topic.enable = true 이 설정을 추가하지 않은 상태에서 topic 을 삭제하게 되면, 해당 topic 은 삭제 상태로 남게 되고, 해당 topic 으로 들어온 어떠한 메시지도 처리가 되지 않는 현상이 발생한다. ./kafka-topics.sh --list --zookeeper "localhost:2181"topic1topic2 - marked for deletion 해당 설정 값을 바꾼 후.. 더보기
slick 3.x 의 connection 개수 조정하기 Scala 관련 프로젝트를 진행하다가 RDB (Relational Database) 작업을 하기 위해서 Slick 을 많이 사용하는데,Slick 의 connection pooling 기능을 설정하는 방법에 대해서 간단하게 소개하고자 한다. DBCP 와 같은 third-party library 를 사용하는 것도 가능하지만, Slick 3.x 부터는 기본으로 HikariCP 를 사용하도록 변경 되었다. 아래 URL 에서 관련 문서를 살펴보면Slick 의 Database 관련설정 load 아래의 항목을 볼 수 있다.maxConnections (Int, optional, default: numThreads * 5): The maximum number of connections in the pool. 이 변수로 .. 더보기