Q. 어떻게 Kafka 가 높은 처리량, 빠른 응답 속도, 안정성을 갖는지? 1) 분산시스템카프카는 분산시스템이다.최초로 구성하는 클러스터에 브로커를 추가하는 방식이여서 확장이 가능하고 카프카 브로커 추가는 온라인 상태에서 매우 쉽다. 이런 확장이 용이한 구조가 카프카의 장점, 그리고 분산 시스템이므로 성능이 좋고, 장애 대응이 좋다는 점.초기에 카프카 클러스터가 3대 브로커 운영중이더라도, 서비스가 증가하여 브로커를 증가하는게 용이다하. 수십개, 그 이상으로도 브로커로도 확장할 수도 있다. 2) 페이지 캐시 "페이지 캐시"의 이용으로 높은 처리량을 얻을 수 있었다!운영체제에서 페이지 캐시를 통해 성능을 높이는데 카프카도 Os의 페이지 캐시를 활용하는 방식으로 설계된다. 디스크 IO를 줄여..
그냥 String 으로 @이름 박으면 알아서 해주는줄 알았더니 형식이 다름. POST 로 webhook URL로 아래 형식으로 보내야됨 url 참조 Text formatting in cards - Teams | Microsoft Learn { "type": "message", "attachments": [ { "contentType": "application/vnd.microsoft.card.adaptive", "content": { "type": "AdaptiveCard", "body": [ { "type": "TextBlock", "size": "Medium", "weight": "Bolder", "text": "Sample Adaptive Card with User Mention" }, { "typ..
서버가 비정상 상태일 경우 팀즈로 알람을 받아서 조치 하도록 운영을 하고 있는데, 매시간 서버 재기동 하는게 불편해서 비정상 상태일 경우 서버를 재시작 하도록 자동화 하려고 함. jsch 를 라이브러리 사용 - ssh 연결해줌 최신버전 0.1.55 버전이 이상하지만 고고 implementation 'com.jcraft:jsch:0.1.55' ssh 설정 - 프로퍼티는 알아서 지정 연결할 host port username pw 넣어주면됨 @Configuration public class SshCommandConfig { @Value("${ssh.tunnel.host}") private String sshHost; @Value("${ssh.tunnel.port}") private int sshPort; @V..
클러스터 : 물리적인 노드 인스턴스들의 모임이다. 클러스터는 모든 노드의 검색과 색인 작업을 관장하는 논리적인 개념이다. RDB에서는 모든 요청을 서버 하나에서 처리하지만, ES의 경우 다수의 서버로 분산해서 처리하는 것이 가능해서 대용량 데이터를 처리할 수 있다. 이렇게 대용량을 분산 처리 하기 위해 다양한 형태의 노드들을 조합해서 클러스터를 구성해야 하는데, 기본적으로 "마스터 노드" 가 전체적인 클러스터를 관리하고, "데이터 노드"가 실제 데이터를 관리한다. ES는 설정 에 따라 4가지 유형의 노드를 제공한다. 마스터 노드(Master Node) - 클러스터를 상태 관리 - 노드 추가와 제거 같은 클러스터의 전반적인 관리를 한다. - 메타 데이터 관리 Index 생성, 삭제 등 클러스터 관련된 전반..
ClusterBlockException[blocked by: [FORBIDDEN/12/index read-only / allow delete (api)];] 인덱스 setting 확인 > GET my_index/_settings { "my_index": { "settings": { "index": { "refresh_interval": "5s", "number_of_shards": "1", "blocks": { "read_only_allow_delete": "true" }, "provided_name": "my_index", "creation_date": "1586831203626", "number_of_replicas": "0", "uuid": "", "version": { "created": "603..
Spring Batch 로 하루 30만건 정도의 쿠폰 데이터 ES 적재 이후 타겟팅 된 고객 RDB 적재 연계 로직 일 배치로 ES에 적재 만료예정일시 타겟팅시에 쿠폰 API 호출하여, 실제 만료 예정될 쿠폰이 있는지 확인 쿠폰 지급 타겟된 mall 갯수 : 105개 쿠폰갯수 : 1720개 쿠폰 가장 많은 몰 : 175개 ( * 조금 더줄이는 방법 찾기 ) 가장많은 issued copoun 가진 몰 : 49319개 쿠폰 리스트 총갯수 : 241,210개 (14번 X-Api-Call-Limit 발생) Thread 별 실행시간 이슈 : 스케줄 조정 새벽 2시 10 분 : 3시간30분 소요 → 실행시간 1시간 초과로 오류 발생 오전 8시 20분 : 2분 56초 828 오전 11시 15분 : 4분 20초 소요 ..