전체 글
-
[Kafka] 프로듀서(Producer)Kafaka 2021. 7. 28. 08:54
전송 보장과 acks ack = 0 서버 응답을 기다리지 않음 전송 보장도 zero ack= 1 파티션의 리더에 저장되면 응답 받음 리더 장애시 메시지 유실 가능 ack = all (또는 -1) 모든 리플리카에 저장되면 응답 받음 브로커 min.insync.replicas 설정에 따라 달라짐 실패 대응 재시도 재시도 가능한 에러는 재시도 처리 예 : 브로커 응답 타임 아웃, 일시적인 리더 없음 등 재시도 위치 프로듀서는 자체적으로 브로커 전송 과정에서 에러가 발생하면 재시도 가능한 에러에 대해 재전송 시도 ⇒ retries 속성 send() 메서드에서 익셉션 발생시 엑셥션 타입에 따라 send()재호출 콜백 메서드에서 익셉션 받으면 타입에 따라 send() 재호출 아주 아주 특별한 이유가 없다면 무한 재..
-
[Kafka] 카프카란?카테고리 없음 2021. 7. 28. 08:44
카프카란? 분산 이벤트 스트리밍 플랫폼 이벤트 브로커 vs 메시지 브로커 메시지 브로커 레빗엠큐, 레디스 이벤트 브로커로 역할 할 수 X 메시지 브로커에 있는 큐에 데이터를 보내고 받는, 프로듀서와 컨슈머를 통해 메시지를 통신하고 네트워크를 맺는 용도로 사용해옴 특징 메시지를 받아서 적절히 처리하고 나면 즉시 또는 짧은 시간 내에 삭제된다. 이벤트 브로커 카프카, AWS의 키네시스 메시지 브로커로써 역할 할 수 O 특징 이벤트 또는 메시지라고 불리는 레코드=장부를 딱 하나만 보관하고, 인덱스를 통해 개별 액세스를 관리한다. 업무상 필요한 기간동안 이벤트를 보존할 수 있습니다. 이벤트 브로커는 서비스에서 나오는 이벤트를 큐에 저장한다. 저장함으로써 얻는 명확한 이점이 있음 딱 한번 일어난 이벤트 데이터를 ..
-
[Java] 날짜 다루기 (Date, Calendar, SimpleDateFormat)Java 2021. 7. 25. 10:36
Calendar → Date Calendar cal = Calendar.getInstance(); cal.set(2021, 07, 24); Date startDate = cal.getTime(); cal.set(2021, 07, 25); Date endDate = cal.getTime(); DateFormat df = new SimpleDateFormat("yyyy/MM/dd"); Date d = df.parse("2021/08/14"); 오늘 날짜 원하는 데이터 형식으로 변환 SimpleDateFormat sdf = new SimpleDateFormat("YYYY-MM-DD HH:mm:ss"); String dateStr = sdf.format(new Date());
-
[Linux] centOS Tomcat service 생성(init.d)서버/Linux 2021. 6. 25. 10:40
$ sudo vim /etc/init.d/tomcat # 하나의 서버에 여러개의 인스턴스가 올라가 있을 때, # 아래처럼 구분하면 하나의 파일로 여러개 컨트롤 가능 # home # ㄴ apache-tomcat-서비스1 # ㄴ apache-tomcat-서비스2 # 호출 예제 : service tomcat 서비스1 restart tomcat = /home/apache-tomcat- startup = $tomcat$1/bin/startup.sh shutdown = $tomcat$1/bin/shutdown.sh start(){ echo -n $"Starting Tomcat Service : "$1 #print내용 sh $startup #startup 실행 echo $? } stop(){ echo -n $"Sto..
-
[Spring Batch] Job카테고리 없음 2021. 6. 13. 10:24
Job 애플리케이션이 사용자에게 비즈니스 가치를 제공할 때 어떠한 논리 흐름이 필요하다. 예를 들어, 어떤 웹 애플리케이션은 사용자가 장바구니에 품목을 추가하고, 배송 주소를 입력하며, 지불 정보를 선택한 후에, 최종적으로 주문 내역을 확인 하는 것과 같은 장바구니 흐름을 가지고 있다. 잡은 이러한 흐름과 유사하다. 이 책(스프링 배치 완벽 가이드)에서는 잡을 처음부터 끝까지 독립적으로 실행할 수 있는 고유하며 순서가 지정된 여러 스텝의 목록이라고 정의한다. 유일하다 스프링 배치의 잡은 코어 스프링 프레임워크를 사용한 빈 구성 방식과 동일하게 자바나 XML을 사용해 구성하며, 구성한 내용을 재사용 할 수 있다. 동일한 구성으로 필요한 만큼 잡을 실행할 수 있다. 잡을 여러 번 실행하려고 동일한 잡을 여러..
-
[Spring Batch] ItemReader(4) - 기존서비스Java/Spring Batch 2021. 6. 13. 09:54
기존서비스 대부분의 회사에는 현재 서비스 중인 웹 또는 다른 형태의 자바 애플리케이션이 존재한다. 이들 애플리케이션은 수많은 분석, 설계, 테스트, 버그 수정 과정을 거쳤다. 이런 애플리케이션을 구성하는 코드는 실전에서 테스트됐으며 이상이 없음이 검증됐다. 그럼 배치 처리에서 기존 애플리케이션의 코드를 사용할 수는 없을까? 고객 객체를 읽어들이는 배치 처리 예제를 생각해보자. 다만 지금까지의 예제처럼 Customer 객체의 매핑 대상이 단일 테이블이나 파일이 아니라 여러 데이터베이스의 여러 테이블에 산재돼 있다고 가정한다. 또한 물리적으로 고객 데이터를 지우지 않는다. 그 대신 삭제됐다는 플래그를 기록한다. 웹 기반 애플리케이션에는 이미 고객 데이터를 조회하는 서비스가 존재한다. 배치 처리에서 해당 서비..
-
JavaScript와 jQuery의 차이Web/Java Script 2021. 6. 7. 23:02
JavaScript 자바스크립트 이전 웹 페이지는 정적이었다. 그래서 미리 어떻게 표시될지 정해진 텍스트를 그대로 표시만했다. 웹 브라우저가 표시 중인 내용을 변경하는 유일한 방법은 새로운 URL을 웹 서버에 요청해서 새 문서를 받아오는 방법뿐이었다. 이 과정은 아주 느릴 뿐만 아니라, 자원도 낭비한다. 전화번호를 폼에 입력하면 데이터를 서버에 보내서 전화번호에 입력한 모든 문자가 숫자인지를 확인한 다음, 그렇지 않은 경우 서버가 오류 메시지가 들어 있는 페이지를 돌려보낼 것이다. 1993년 마크 앤드리슨은 GUI를 제공하는 모자익 웹브라우저를 만들었고, 이 브라우저는 일반 소비자를 대상으로 하는 인터넷의 증가에 기름을 부었다. 그는 넷스케이프라는 회사를 창립하고 1994년 넷스케이프 내비게이터 브라우저..
-
[Spring Batch] ItemReader(3) - 저장프로시저(SP, Stored Procedure)Java/Spring Batch 2021. 5. 31. 08:44
저장 프로시저란 무엇일까? 특정 유형의 클라이언트가 향후 수행할 수 있도록 데이터베이스에 저장한 해당 데이터베이스 전용 코드의 집합을 말한다. 모든 데이터베이스가 저장프로시저를 지원하진 않지만 대부분의 상용 등급 관계형 데이터베이스에서 사용이 가능하다. 대다수의 엔터프라이즈 환경에서 관계형 데이터베이스는 데이터가 저장된 테이블이 있는 단순한 공간만이 아니다. 관계형 데이터베이스는 온갖 비즈니스 목적에 맞춰 사용되는 복잡한 저장 프로시저가 포함된 코드의 생태계다. 저장 프로시저는 일반적인 자바 개발자에게는 데이터베이스로 작업을 할때 접하기에 가장 먼 메커니즘이지만, 전 세계의 다양한 데이터베이스에서 찾을 수 있는 잘 정립된 도구다. 스프링 배치가 저장 프로시저에서 데이터를 조회하는 용도로 제공하는 Stor..