전체 글 썸네일형 리스트형 ELK, Mysql, Kafka 구축 및 연동 0. 개요 ELK란 Elsaticsearch + Logstash + Kibana를 통합해서 부르는 말입니다. 이 글에서는 ELK, Mysql, Kafka를 구축해서 연동할 것입니다. 프로젝트 구조도는 아래와 같습니다. 아래는 ELK를 구축하기 위한 프로젝트 구조입니다. ES-springBoot:. └─es ├─docker-compose.yml │ ├─elasticsearch │ │ Dockerfile │ │ │ ├─config │ │ elasticsearch.yml │ │ │ └─settings │ ├─stop │ │ english.txt │ │ │ └─synonym │ english.txt │ ├─kibana │ │ Dockerfile │ │ │ └─config │ kibana.yml │ └─logst.. 더보기 스프링부트 테스트와 엘라스틱서치 테스트 컨테이너 0. 개요 Spring Boot Test에서 엘라스틱서치 테스트 컨테이너를 띄워 테스트 해 보겠습니다. nori도 사용할 것입니다. 1. 테스트 우선 테스트 엘라스틱 컨테이너를 띄워야 합니다. 이를 위해 의존성을 주입 받겠습니다. // build.gradle testImplementation("org.testcontainers:junit-jupiter:1.16.3") 테스트 파일 위치에 아래와 같이 만들겠습니다. 자세한 설명은 주석으로 달겠습니다. @TestConfiguration @EnableElasticsearchRepositories(basePackageClasses = UserSearchRepository.class) public class ElasticTest extends AbstractEla.. 더보기 카프카 토픽 삭제기 카프카 토픽을 삭제하기 위한 삽질 내용을 공유하는 글입니다. 우선, 현재 제가 사용하는 confluentinc/cp-kafka:7.3.0의 기준으로 가장 간단한 방법을 알려드리겠습니다. https://ksb-dev.tistory.com/261에 제가 사용하는 카프카 클러스터가 있으니 참고해주시면 감사하겠습니다. 1. 카프카 쉘에 접근한다. docker exec -it '컨테이너ID' sh 2. 토픽을 삭제한다. kafka-topics --delete --topic '토픽 이름' --bootstrap-server localhost:29092 끝.... 저는 위 방법을 모르고 삽질했습니다... 이 밑의 글은 제가 삽질한 내용을 기록했으니, 가볍게 읽어주시면 감사하겠습니다. 처음에 제가 구글링 해서 얻은 방법.. 더보기 엘라스틱서치 검색 Query DSL 0. 개요 엘라스틱서치는 검색을 위한 다양한 방법을 제공합니다. 그 중에서, 검색을 위한 쿼리 방법를 제공하는데 이를 Query DSL이라 합니다. 엘라스틱서치의 Query DSL은 모두 JSON 방식을 사용합니다. 이 글에서 사용하는 데이터는 아래와 같습니다. POST ksb/_bulk {"index":{"_id":1}} {"message":"ksb kkk", "age":20} {"index":{"_id":2}} {"message":"ksb sss kkk", "age":40} {"index":{"_id":3}} {"message":"ksb bbb sss kkk", "age":10} {"index":{"_id":4}} {"message":"test sss", "age":100} {"index":{"_id.. 더보기 [Spring Boot] nested exception is ElasticsearchException[Elasticsearch exception [type=no_such_file_exception, reason=/usr/share/elasticsearch/config/settings/stop/english.txt]] 이 글은 이전 글과 연관되어 있습니다. 저는 불용어(stopword)와 동의어(synonym)를 별도의 파일로 관리하고 있습니다. 아래의 코드로 nori 분석기를 설치할 수 있었으나, 불용어와 동의어 파일을 불러오는 부분이 없다는 것을 알 수 있습니다. @TestConfiguration @EnableElasticsearchRepositories(basePackageClasses = UserSearchRepository.class) public class ElasticTest extends AbstractElasticsearchConfiguration { private static final GenericContainer container; static{ container = new GenericConta.. 더보기 [Spring Boot] Caused by: RestStatusException{status=400} org.springframework.data.elasticsearch.RestStatusException: Elasticsearch exception [type=illegal_argument_exception, reason=Unknown tokenizer type [nori_tokenizer] for [ksb_custom_korean_tokenize.. Spring Boot에서 Elasticsearch 테스트 컨테이너를 띄우는 도중 위와 같은 문제를 만났습니다. 코드는 아래와 같습니다. @TestConfiguration @EnableElasticsearchRepositories(basePackageClasses = {UserSearchRepository.class,UserSearchQueryRepository.class}) public class ElasticTestContainer extends AbstractElasticsearchConfiguration{ private static final String ELASTICSEARCH_VERSION = "7.10.2"; private static final DockerImageName ELASTICSEA.. 더보기 [Spring Boot] A bean with that name has already been defined ~ in defined in @EnableElasticsearchRepositories declared on ElasticsearchRepositoriesRegistrar.EnableElasticsearchRepositoriesConfiguration and overriding is disabled. 이 글을 읽기 전에 https://ksb-dev.tistory.com/313를 읽고 오시는 것을 추천드립니다. 💡 해당 글과 이 글의 내용은 매우 밀접하게 연관되어 있습니다. 1. 문제 Spring Boot와 Elasticsearch 연동을 테스트 하던 중 제목과 같은 에러를 만날 수 있었습니다. 패키지 구조는 아래와 같습니다. es_springboot -config -AbstractElasticsearchConfiguration.java -ElasticSearchConfig.java -domain -UserDocument.java -repository -UserSearchRepository.java 위 오류와 직접적으로 연관이 있는 클래스는 세 개 입니다. @Configuration @EnableEla.. 더보기 [Spring Boot] JPA 빈 등록 1. @Repository를 사용하지 않아도 된다. 흔히 JPA를 사용하면 아래와 같이 사용합니다. public interface User extends JpaRepository { } 위 그림과 같이 @Reposotory를 사용하지 않아도 됩니다. 왜 일까요? 상속받은 JpaReposotory에 @Component가 있는 것일까요? 확인해 보면 @NoRepositoryBean이 설정되어 있어 빈으로 등록하지 않는다는 것을 알 수 있습니다. 💡 https://docs.spring.io/spring-data/commons/docs/current/api/org/springframework/data/repository/NoRepositoryBean.html 2. @EnableJpaRepositories JPA.. 더보기 이전 1 ··· 6 7 8 9 10 11 12 ··· 48 다음