일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- Spring Boot
- Spring
- hibernate
- Spring XD
- hadoop
- spark
- Spring Batch
- 도메인주도설계
- Angular2
- 스프링 배치
- elastic search
- design pattern
- 엘라스틱서치
- apache storm
- Storm
- Gradle
- docker
- elasticsearch
- Clean Code
- DDD
- nginx
- Hbase
- Linux
- scala
- 인텔리J
- Java
- 제주
- hdfs
- intellij
- SBT
- Today
- Total
목록Programming (142)
욱'S 노트

마이크로미터 오픈텔레메트리 기본 세팅은 지난 시간에 해봤었다. 그럼 Tracing API에 대해서 조금 더 알아보자. 예제 코드 먼저 기본 세팅은 그대로 유지한다.import io.micrometer.tracing.otel.bridge.OtelCurrentTraceContextimport io.micrometer.tracing.otel.bridge.OtelTracerimport io.micrometer.tracing.otel.bridge.Slf4JEventListenerimport io.opentelemetry.sdk.OpenTelemetrySdkfun main() { // [OTel component] The SDK implementation of OpenTelemetry val openTe..

마이크로미터에서 트레이싱을 위해서 지원하는 구현체는 크게 두가지가 있다. 하나는 Zipkin이고 다른 하나는 OpenTelemetry다. 둘의 차이점을 챗지피티로 알아보면 다음과 같다.Zinkin vs OpenTelemetry개요 Zipkin: Twitter에서 개발한 오픈소스 분산 트레이싱 시스템. 서비스 간의 요청 흐름을 추적하여 성능 문제를 분석할 수 있음.OpenTelemetry: 클라우드 네이티브 컴퓨팅 재단(CNCF)에서 관리하는 오픈소스 관찰성(observability) 프레임워크로, 트레이싱뿐만 아니라 메트릭(metrics)과 로깅(logging)도 지원함.차이점비교 항목ZipkinOpenTelemetry개발 주체Twitter (CNCF 소속)CNCF (Cloud Native Computi..

마이크로미터 트레이싱은 유명 트레이서 라이브러리를 지원하기 위한 단순한 퍼사드이다. 처음엔 스프링 클라우드팀에서 Spring Clould Sleuth라는 프로젝트로 시작했다가, Micrometer Tracing Project로 분리 통합되었다. 용어마이크로미터 트레이싱에서 용어는 Dapper의 용어를 차용한다. Span : 작업단위. 예를 들어 RPC 요청과 응답은 같은 스팬 일수도 있고, 다른 스팬 일수도 있다. 스팬은 각각의 ID, 데이터, 타임 스탬프, 키-밸류 어노테이션(태그)를 가진다. RPC 요청과 응답은 데이터가 다르므로 다른 스팬으로 분리할 수도 있고, 스팬을 유지하면서 여러개의 이벤트로 기록하기도 한다. Trace: 트리처럼 구조를 가진 스팬의 잡합이다. 예를 들어 분산 시스템에서 일련의..
개요애로우의 목적은 관용적인(idiomatic) 함수형 프로그래밍을 코틀린에 적용하는 것을 목표로 한다. 애로우는 다른 함수형 프로그래밍 커뮤니티에서 만들어진 라이브러리들의 영향을 받았다.설정설정은 gralde기반으로 일단 정리해보았다. 디펜던시 추가dependencies { implementation("io.arrow-kt:arrow-core:1.2.1") implementation("io.arrow-kt:arrow-fx-coroutines:1.2.1")} 플러그인 설정옵틱을 위한 플러그인 설정이다. 이 플러그인은 KSP(Kotlin Symbol Processing는 경량 컴파일러 플러그인.) 기반으로 만들어 졌다.plugins { id("com.google.devtools.ksp") ver..

개요Tomcat 내부 동작을 디버깅 하기 위해서 Embedded Tomcat을 이용한 내용을 정리해보록 하겠다. 기존 톰캣 서버를 설치하고, Servlet등의 테스트를 한다면 Servlet에서 디버깅 브레이크 포인트를 잡고, 스택 트레이스를 확인 할 수는 있지만 실제 톰캣이 사용하는 라이브러리등은 직접 접근하기는 어렵다. 더욱 세밀한 디버깅을 위해 Embbeded Tomcat을 활용하는 방법을 알아보자. 기존 외부 톰캣을 활용하는 방식은 아래 글을 참고하자. https://opennote46.tistory.com/257 IntelliJ Tomcat 기반 서블릿 테스트개요Servlet 3.1을 구동원리를 파악해보기 위한 사전 작업 설정에 대한 포스팅이다. 항상 스프링 스타터 혹은 고수준의 프레임워크를 경험..

개요어제는 일단 인텔리J기반에서 서블릿을 실행해보았다. 애초에 목적이 Servlet 3.1이 어떻게 동작하는지 알아보기 위함이므로 아주 간단한 Servlet 3.1 예제를 작성해보자. https://opennote46.tistory.com/257 IntelliJ Tomcat 기반 서블릿 테스트개요Servlet 3.1을 구동원리를 파악해보기 위한 사전 작업 설정에 대한 포스팅이다. 항상 스프링 스타터 혹은 고수준의 프레임워크를 경험하다보니 의외로 세팅에 삽질을 하게 되어서 간단하게 서opennote46.tistory.com Servlet 3.1 예제 작성생각보다 Servlet 3.1 예제가 많지 않다. 오라클 공식 사이트에 있는 예제를 기반으로 작성해보았다.먼저 데이터를 읽을때 사용하는 ReadListen..

개요Servlet 3.1을 구동원리를 파악해보기 위한 사전 작업 설정에 대한 포스팅이다. 항상 스프링 스타터 혹은 고수준의 프레임워크를 경험하다보니 의외로 세팅에 삽질을 하게 되어서 간단하게 서블릿테스트를 하는 방법에 대해서 포스팅을 해보겠다.테스트 환경 Idea : 2024.3Tomcat : 10.1.34Servlet : 6.0 순서톰캣 설치서블릿은 스펙이지 구현체가 아니다. 그러므로 우리는 서블릿을 실행할 서블릿 컨테이너가 필요하다. 최신 버전 톰캣을 설치하자. 나는 core에 tar볼 형태를 설치하였고, 적절한 위치에 tar 압축을 해제하였다. https://tomcat.apache.org/download-10.cgi Apache Tomcat® - Apache Tomcat 10 Software Do..
각 컴포넌트 설치elasticsearch & logstash & filebeat 설치설치는 간단하다. 자세한 설명은 하지 않겠다. elastic 공식 사이트로 접속하여 스테이블한 tar파일을 받아서 로컬의 적절한 경로에 압축 해제 하면 된다. 각 컴포넌트 구동 및 설정elasticsearch 구동결과적으로 elasticsearch에 데이터를 저장하므로 먼저 elasticsearch를 구동한다. 가장 심플하게 설치디렉토리로 가서 아래의 커맨드로 구동한다../elasticsearchingestion with filebeatfilebeat는 파일의 변경을 수집하여 logstash로 전달하는 역할을 담당한다. 가장 filebeat를 압축해제한 디렉토리를 보면 filebeat.yml 설정파일이 존재하는데 다음과 ..
어플리케이션 서브밋 스파크 서브밋 스크립트는 스파크 bin 디렉토리 하위에 위치하며 클러스터 상에 어플리케이션을 구동하기 위해서 사용된다. 해당 스크립트는 스파크가 지원하는 모든 클러스터 매니저에서 사용되며 모든 클러스터에 대한 단일한 인터페이스를 제공한다. 어플리케이션 번들 일반적으로 어플리케이션은 다른 프로젝트에 디펜던시를 가진다. 그리고 우리는 스파크 클러스터에 어플리케이션을 구동하기위해 코드 뿐만 아니라 그 디펜던시도 필요하다. 이를 위해 어플리케이션 코드와 디펜던시는 함께 assembly jar(혹은 uber jar)로 함께 패키징되어야 하며, 그 방법은 sbt, maven 등 다양한 빌드툴에서 제공한다. 해당 내용은 여기서 다루지 않겠다. 어플리케이션 구동하기 어플리케이션 번들이 준비되면 bi..
플러그인이란 무엇인가? 플러그인은 공통적으로 사용할 수 있는 확장된 빌드 정의이다. 새로운 세팅은 새로운 타스크를 만들수 있다. 예를 들어 플러그인을 추가함으로써 codeCoverage 타스크를 추가할 수 있다. 이를 통해 테스트 커버리지 리포트를 생성할 수 있다. 플러그인 정의하기 hello라는 프로젝트가 있다고 가정하고 플러그인을 추가하고 싶다면 먼저 hello/project/assembly.sbt라는 파일을 생성하고 해당 파일에 아래와 같이 기입한다. 또 한가지 방법으로는 hello/project/plugins.sbt에 아래와 같이 기입해도 된다. addSbtPlugin("com.eed3si9n" % "sbt-assembly" % "0.14.4") 또 주의할 점은 모든 플러그인이 기본 리파지토리에 ..