일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- play framework
- kafka streams
- Logstash
- gradle
- Kafka
- spring-batch
- RabbitMQ
- Elasticsearch
- confluent
- 카프카
- avo
- enablekafkastreams
- Spring
- scala
- statestore
- reactive
- kafkastream
- scala 2.10
- springboot
- coursera
- 플레이 프레임워크
- spring-kafka
- Slick
- schema registry
- aws
- kafkastreams
- spring-cloud-stream
- 한빛미디어
- kafka interactive query
- Elk
- Today
- Total
목록분류 전체보기 (167)
b
Spring Security OAuth2 인증 순서. 1. https://localhost:8443/login 으로 로그인을 하려고 하면 security의 `anyRequest().authenticated()` 코드에 의해 인증이 필요한것으로 파악하여 302응답이 돌아온다. Status Code : 302 Location: https://www.facebook.com/dialog/oauth?client_id=394182450695217&redirect_uri=https://localhost:8443/login&response_type=code&state=X6kWlA 해당 Server Log ...더보기 2019-04-11 15:17:37.327 DEBUG 52044 --- [nio-8443-exec-6]..
Netty를 학습하기 위해서 Debug 레벨로 로그를 보고 싶음.모든 튜토리얼에서 처음에 나오는 클래스인 ServerBootstrap ( https://git.io/fjeuN ) 를 살펴보면 InternalLoggerFactory 클래스를 이용해서 인스턴스를 획득하는 것을 볼 수 있다. 해당 클래스는 abstract class 이고 다양한 로그 라이브러를 지원하고 있음을 알 수 있다. 그 중에서 slf4j - logback 콤보를 이용하기 위해 아래 디펜던시를 추가한다. ch.qos.logback logback-classic 1.2.3 그리고 classpath에 아래와 같은 기본적인 logback.xml 을 설정한다 %d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} -..
logstash 에는 이미 kafka input 모듈이 있기 때문에 쉽게 카프카 메시지를 엘라스틱에 저장할 수 있다. ( https://www.elastic.co/guide/en/logstash/current/plugins-inputs-kafka.html )몇가지 주의할 점 1) 주문번호등을 Partition Key로 이용할 경우에, 데이터가 어느 파티션에 들어가 있는지, Offset은 얼마인지도 중요한 디버깅 요소가 된다. 이러한 데이터도 함께 elasticsearch 에 넣으려면 add_field를 이용한다. 우선 input 쪽에 아래의 설정을 추가하여 메타 정보를 사용할 수 있게 한다input {kafka {decoreate_events => true}} 그리고 filter 영역에 아래처럼 추가하여..
모던 랭귀지 중에서 현업에서 써봤거나, 대충은 해봤던 언어는 Java Scala Groovy Kotlin Swift python go... 이중에서 Go는 원래 태생이 그래서 제외한다면 제일 구닥다리는 Java.그 중에 Optional에 대한 사용은 항상 고민이 된다. http://blog.joda.org/2015/08/java-se-8-optional-pragmatic-approach.htmlhttps://stackoverflow.com/questions/31922866/why-should-java-8s-optional-not-be-used-in-arguments 1. Optional로 인스턴스 변수를 사용하지 말 것2. null로 내부 private scope 클래스의 데이터 유무를 나타낸다. (첨언..
현재 업무에서 메지시의 상태는 하나의 필드로 정의하고 있다. 예를 들어 결제 요청이 들어오면 APPROVAL_REQUESTED:type 을 정의하여 payment topic에 적재하고 이 후 저 메시지를 컨슘하여 결제가 완료된다면 '동일한 토픽에' APPROVAL_COMPLETED:type 으로 하나의 메시지를 추가한다.즉, APPROVAL_REQUESTED 상태는 APPROVAL_COMPLETED or APPROVAL_FAILED 상태로 변경 가능하다.각각은 Kafka에 의해 Header에 event time이 기록되어 있지만, 별개로 actBy라는 timestamp 필드도 추가하였다. REQUESTED 상태에서 COMPLETED 상태로 변경되기까지의 시간을 어떻게 측정할 것인가? 무난한 방법으로 하나..
사내 시스템은 특정 계정으로만 관리된다. 이 계정의 home directory 에 npm package를 설치 하는 방법이다. 1. .bashrc 설정NPM_PACKAGES="$HOME/.npm-packages" PATH="$NPM_PACKAGES/bin:$PATH" unset MANPATH MANPATH="$NPM_PACKAGES/share/man:$(manpath)" NODE_PATH="$NPM_PACKAGES/lib/node_modules:$NODE_PATH"2. 커맨드라인에서 다음의 명령을 수행$) mkdir -p "$NPM_PACKAGES" $) echo "prefix = $NPM_PACKAGES" >> ~/.npmrc참고1. https://stackoverflow.com/questions/10..
6월 gradle 4.8이 릴리즈 되었다. (현재 4.8.1) 가장 눈에 들어오는 점은 nebula의 gradle-dependency-lock-plugin 으로 사용하고 있던 `Dependency locking` 이거다. > ./gradlew build --write-locks 사용하기 위해서는 build.gradle 에서 해당 내용을 활성화 시켜야 한다. (참고 : https://docs.gradle.org/4.8.1/release-notes.html#locking-of-dynamic-dependencies )dependencyLocking { lockAllConfigurations() } 처럼 실행하면 ./gradle/dependency-locks 에 현재 실행된 task 들의 각 단계에서 필요한 d..
마이크로 미터는 2017년 4월 중순 Jon Schneider (슈나이더?) 에 의해 시작되었다. 원래 넷플릭스 직원이었고, 우리도 애용하고 있는 nebula의 몇몇 플러그인 개발자 였다. 하여튼 (동일한 시기에 Pivotal로 이직을 해서인지?, 어떤 이유에서인지) 슈나이더는 micrometer를 시작하였고 "Experimental ground for Spring metrics work" 라는 최초의 커밋을 남겼다.https://github.com/micrometer-metrics/micrometer/commit/4df27760 그가 micrometer에 대해서 소개한 글이다. 대충 필요하다고 생각되는 내용만 옮겨 적음https://spring.io/blog/2018/03/16/micrometer-sp..