Scaling down an Elasticsearch cluster Elasticsearch is a NoSQL database optimized for searching. cluster는 node들이 동일한 cluster.name을 공유하면서 만들어진다. 데이터는 자동으로 분산처리된다. cluster에서 node를 제거하는 것은 더욱더 도전적이다. 첫째, cluster status를 green인것을 확인해라. cluster에서 node를 제거하는 것은, cluster가 rebalance와 분산처리 (status yellow) 할때까지 기다려야 한다. 그리고, 이작업을 3개의 node가 남을 때까지 반복해야 한다. curl -XPUT 'localhost:9200/_cluster/settings&#..
Contents Of Tables Stateless Transformation Stateful Transformation Windowing Window Final Results Confluent Streams API 가이드: https://docs.confluent.io/current/streams/developer-guide/dsl-api.html Stateless Transformation 아래 Java코드를 보자. 아래 코드는 String을 consuming해서, 각 단어가 몇번 나왔는지 counting하는 코드이다. final Serde stringSerde = Serdes.String(); final Serde longSerde = Serdes.Long(); KStream textLines = ..
System.out.print 우리는 System.out.print로 우리는 로그를 출력하곤 합니다. 그래서, 로그를 많이 출력하게 되면 로그용 함수를 만들어서 보기 쉽게 만들어 주거나, 파일로 출력해서 나중에 확인할수 있게 하기도 합니다. 참 아마추어 적인 코드입니다. public void log(String tag, String message) { System.out.println("[" + tag + "]" + message); filelog("logfile.txt", "[" + tag + "]" + message); } 추가 개발 요구사항 로그가 너무많이 쌓이니, 오래된 로그는 삭제해 주세요. 하지만, 이렇게 하면 로그가 용량이 많은 서비스에선 로그때문에 서비스가 죽는 사고가 발생합니다.Kafka..
참고 사이트 filebeat kafka cluster 3개 node중에 1개를 stop시켰는데, filebeat가 produce를 못한다. leaderless란다. 2019-01-04T20:31:18.060+0900 INFO kafka/log.go:53 Connected to broker at KAFKA-01:9092 (unregistered) 2019-01-04T20:31:18.067+0900 INFO kafka/log.go:53 client/brokers registered new broker #1 at KAFKA-01:9092 2019-01-04T20:31:18.067+0900 INFO kafka/log.go:53 kafka message: client/metadata found some parti..
Topic 삭제 (Kafka) Topic Delete kafka-topics 명령어를 이용하는 방법 Kafka에서 Topic을 삭제가 필요할때가 있다. 어떻게 하는 것일까? 카프카에서 공식적으로 추천하는 방법은 커맨드를 사용하는 방법이다. 먼저 kafka server.properties파일에 설정이 필요하다. 이 설정을 안하면 삭제가 no impact란다. # etc/kafka/server.properties파일 delete.topic.enable = true 그리고, kafka-topics으로 삭제를 해주면 된다. 그리고, 다시 topic create를 해서 성공적으로 만들어 지면, 정상이다. 그러나, 세상일이 정상적으로 되는것만은 아니다 ㅠㅜ $ kafka-topics --delete --zoo..
정규식 (Regular Expression) Table Of Contents 반복 메타 문자 Match (문자열 매치하기) Search (부분적으로 매치하기) substitute (대치) 최소 매칭 정규식 객체 사용하기 SAMPLE (HTTP URL 매칭) 반복 메타 문자 반복 메타 문자 의미 예 * 0회이상 반복 ca*는 ct,cat, caaaat등과 매치 + 1회이상 반복 ca+는 cat, caaaat등과 매치된다 ? 0회 혹은 1회 ca?t는 ct, cat와 매치된다 {m} m회 반복 ca{2}는 caa와 매치된다. {m,n} m회부터 n회까지 반복 ca{2,4}는 caat, caaat, caaaat와 매치 매칭 메타 문자 메타문자 의미 . 줄바꿈 문자를 제외한 모든 문자와 매치된다. re.DOTA..
kotlin-annotation 애노테이션 (Annotation) 아래 예는 JUnit Framework를 사용하려면, 테스트 메소드 앞에 @Test를 붙여야 한다. import org.junit.* class MyTest { @Test fun testTrue() { Assert.assertTrue(true) } } 애노테이션을 활용한 JSON직렬화 제어 # serialization data class Person(val name: String, val age: Int) >>> val person = Person("Alice", 29) >>> println(serialize(person)) {"age": 29, "name": "Alice"} # deserialization >>> val json = ""..
Table Of Contents 람다 소개 람다 - Collection 람다 문법 람다 안에서 외부 변수 접 멤버 참조 컬렉션 함수형 API (FILTER, MAP) 컬렉션 함수형 API (ALL, ANY, COUNT, FIND) 컬렉션 함수형 API (groupby, flatmap) LAZY 컬렉션 연산 (Sequence) 람다 소개 무명 내부 클래스 (JAVA) 코딩양이 너무 많다. 중복코드가 발생 코드가 번잡스럽다 button.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { } }) 람다 (Lambda) 클래스가 아닌 함수를 사용 불필요한 코드 제거 -> 가독성 향상 button.setOnC..