• 카프카란?

- 분산형 스트리밍 플랫폼(A distributed streaming platform)

- LinkedIn에서 여러 구직 및 채용 정보들을 한곳에서 처리(발행-구독) 할 수 있는 플랫폼으로 개발이 시작

 (발행/구독: publish-subscribe 은 메시지를 특정 수신자에게 직접적으로 보내주는 시스템이 아니고, 메시지를 받기를 원하는 사람이 해당 토픽(topic)을 구독함으로써 메시지를 읽어 올 수 있다.)

• 특징

- 대용량 실시간 로그처리에 특화되어 설계된 메시징 시스템으로 TPS가 매우 우수

- 메시지를 메모리에 저장하는 기존 메시징 시스템과는 달리 파일에 저장을 하는데 그로 인해 카프카를 재 시작해도 메시지 유실 우려가 감소

- 대용량처리에 특화 : 컨슈머(Consumer)가 브로커(Broker)로부터 메시지를 직접 가져가는 PULL방식으로 동작 > 컨슈머는 자신의 처리능력만큼의 메시지만 가져와 최적의 성능

- 확장성(scale-out)고가용성(high availability)을 위하여 broker들이 클러스터로 구성되어 동작하도록 설계되어있다. 심지어 broker1개 밖에 없을 때에도 클러스터로써 동작한다. 클러스터 내의 broker에 대한 분산 처리는 Apache ZooKeeper가 담당

 

참고 : http://kafka.apache.org/documentation/

출처 : https://team-platform.tistory.com/m/11

 

• 주키퍼?

- 주키퍼는(Zookeeper)는 분산 코디네이션 서비스를 제공하는 오픈소스 프로젝트입니다. 이러한 어플리케이션의 목적은 개발자가 코디네이션 로직보다는 비즈니스 핵심 로직에 집중하게끔 지원하는 역할


• 주키퍼 사용용도

 - 주키퍼는 클러스터에서 구성 서버들끼리 공유되는 데이터를 유지하거나 어떤 연산을 조율하기 위해 주로 사용

 

  • 설정 관리(Configuration management) : 클러스터의 설정 정보를 최신으로 유지하기 위한 조율 시스템으로 사용됩니다.

  • 클러스터 관리(Cluster management) : 클러스터의 서버가 추가되거나 제외될 때 그 정보를 클러스터 안 서버들이 공유하는 데 사용됩니다.

  • 리더 채택(Leader selection) : 다중 어플리케이션 중에서 어떤 노드를 리더로 선출할 지를 정하는 로직을 만드는 데 사용됩니다. 주로 복제된 여러 노드 중 연산이 이루어지는 하나의 노드를 택하는 데 사용됩니다.

  • 락, 동기화 서비스(Locking and synchronization service) : 클러스터에 쓰기 연산이 빈번할 경우 경쟁상태에 들어갈 가능성이 커집니다. 이는 데이터 불일치를 발생시킵니다. 이 때, 클러스터 전체를 대상을 동기화해( 락을 검 ) 경쟁상태에 들어갈 경우를 사전에 방지합니다.


출처: https://engkimbs.tistory.com/660

'* KAFKA > KAFKA 설치' 카테고리의 다른 글

KAFKA Manager 설치  (0) 2019.07.22
KAFKA 테스트  (0) 2019.07.22
KAFKA 설치  (0) 2019.07.22

* LPAD 함수

사용법 : LPAD(변수,길이,변형자)

좌측에 자릿수(길이)만큼 변형자를 채워준다.


예> 기본키 생성시

SELECT LPAD(TO_NUMBER(SELECT ID FROM TB_MST)

+1),3,'0') AS ID 

FROM DUAL;


- (SELECT ID FROM TB_MST) : 결과값이 없는 경우        :>"0" 출력

: 결과값이 "002"로 있는 경우      :>"002" 출력

- TO_NUMBER(0) +1 : 숫자로 변환 후 +1                  :>"1" 출력

:>"3" 출력

- LPAD(1, 3, '0') : 숫자 1을 3자리로 왼쪽부터 '0'을 채워 "001"로 결과값 출력

:>"001" 출력

:>"003" 출력


* RPAD 함수

오른쪽으로 채워준다.



'* DB > Oracle' 카테고리의 다른 글

LIKE 절  (0) 2019.12.16
테이블 이름이 존재하는지 확인하기  (0) 2016.08.24
nul(), decode(), case then  (0) 2016.08.18
Table 조작  (0) 2016.08.18
오라클(함수)  (0) 2016.08.11

//숫자를 제외한 문자열 삭제(공통)

function commonStrReplace(event, id, flag){


var tmpVal = $('#'+id).val();


if (!(event.keyCode >=37 && event.keyCode<=40)){

tmpVal = tmpVal.replace(/[^0-9]/g,'');

var tmp = "[ㄱ-ㅎ가-힣]"

tmpVal = tmpVal.replace(tmp,'');

$('#'+id).val(tmpVal);

if(flag == 'NUM'){

tmpVal = Number(tmpVal);

if(tmpVal == 0) $('#'+id).val('');

}

}

}



사용

$('input[id$=seriesDesc]').on({

'keyup paste change':function(e){

var id = $(this).attr('id');

commonStrReplace(event, id, 'NUM');

}

});

'* Programming > JQuery' 카테고리의 다른 글

Select Box 제어  (0) 2019.11.11
input 체크박스  (0) 2019.10.16
날짜(datepicker) 시작일 종료일  (0) 2018.06.15
세션 SET, GET, REMOVE  (0) 2018.05.24
replace로 태그 제거하기  (0) 2018.05.23

var today = new Date();

var tomorrow = new Date(Date.parse(today) + (1000 * 60 * 60 * 24));


        $startDate.datepicker({

        minDate: today,

        onClose: function( selectedDate ) {

                // 시작일 datepicker가 닫힐때

                // 종료일의 선택할수있는 최소 날짜(minDate)를 선택한 시작일로 지정

                $endDate.datepicker( "option", "minDate", selectedDate );

            }  

        });


        $endDate.datepicker({

        minDate: tomorrow,

        onClose: function( selectedDate ) {

                // 종료일 datepicker가 닫힐때

                // 시작일의 선택할수있는 최대 날짜(maxDate)를 선택한 종료일로 지정 

                $startDate.datepicker( "option", "maxDate", selectedDate );

            }   

        });

'* Programming > JQuery' 카테고리의 다른 글

input 체크박스  (0) 2019.10.16
문자열 제거 이벤트  (0) 2018.08.09
세션 SET, GET, REMOVE  (0) 2018.05.24
replace로 태그 제거하기  (0) 2018.05.23
pdf파일 및 사진파일 팝업창으로 띄우기  (0) 2018.03.08

<script type="text/javaScript">

//생성

sessionStorage.setItem('key','123');

//값get

sessionStorage.getItem('key')

//제거

sessionStorage.removeItem('key');

</script >

+ Recent posts