본문 바로가기

Programming/Redis, Kafka7

카프카 Kafka 콘솔에서 사용하기 Kafka - Scalar 언어로 된 오픈 소스 메시지 브로커 프로젝트 (브로커: 중간 서버, 메시지: 다양한 데이터 가능) - 실시간 데이터 피드를 관리하기 위해 통일된 높은 처리량, 낮은 지연 시간을 지닌 플랫폼 제공 카프카 이전의 방식 - end to end 연결 방식의 아키텍처 - 데이터 연동의 복잡성 증가 - 서로 다른 데이터 파이프라인 연결 구조 - 확장이 어려움 카프카 탄생의 배경 -> 모든 시스템으로 데이터를 실시간으로 전송하여 처리할 수 있는 시스템 -> 데이터가 많아지더라도 확장이 용이한 시스템 보내는 쪽과 받는 쪽이 누가 보내고 누가 받는지를 전혀 신경 쓰지 않게 된다. - Prdocuer / Consumer를 분리 Kafka Broker = Kafka Application Serv.. 2023. 6. 2.
ubuntu 환경에서 redis, master-slave, sentinel 설치 super user 전환을 위해 sudo su apt를 업데이트해주고 설치한다. apt-get update apt-get install redis-server service redis status 레디스 configuration 파일 열어보기 cd /etc/redis vi redis.conf 현재 포트에 떠 있는 redis 확인하기 ps -ef | grep redis redis cli에 접속하기 redis-cli info 레디스를 master-replica 구성 방식으로 사용하기 sentinel은 회복용으로 홀수개를 설치해야 한다. master가 정상상태가 아닐때 replica로 대치하게 해주는 작업에 있어서 장애 여부를 판단할 때 다수결로 판단하여 의사를 결정하기 위해. ec2에서 복사하기 인스턴스 클.. 2023. 5. 31.
Redis의 특징, 개념, 장점, 단점, 목적 Redis(Remote Dictionary Storage) - 디스크가 아닌 메모리 기반의 data 저장소 -> 휘발성 - single thread : 단일 cpu - 초당 5만 ~ 25만 reqeust 실행 가능 - key-value 형식으로 데이터 저장 장점: - hardware 차이에서 오는 기본적인 퍼포먼스 성능 Redis는 메모리 기반의 저장소로 데이터에 접근하는 속도가 빠르다. 하드웨어 성능의 차이로 인해 기본적인 성능 차이를 극복할 수 있는 장점 제공. - 다양한 type의 아키텍처 지원 문자열(String), 해시(Hash), 리스트(List), 집합(Set), 정렬된 집합(Sorted Set) 등의 데이터 구조를 활용할 수 있다. 다양한 용도에 맞게 데이터를 저장하고 활용할 수 있는 유연.. 2023. 5. 31.
이커머스에서 redis, kafka usecase 1. Redis - 장바구니: 로그인과 동시에 cashing 되거나 비로그인시 임시로 저장되는 정보 - temporary User 정보: 로그인과 동시에 cashing 되는 정보 - 할인: 특정기간 * 특정 상품의 할인 정보 - 쿠폰: user 별, 제품별 할인을 위한 정보 - 배송: 배송 현황 제공을 위한 정보 - 토큰, 세션: 로그인시 로그인 상태 유지 - 광고: user별, 상품별, 셀러별 - 채팅 정보: 채팅시 ~ 채팅 종료시까지 - 기타 =>특징 : 기간 한정, 빠른 반환 => 소멸이 정해져있다. 2. Kafka - page tracking: user가 페이지 어디에 접근하였는지 정보 - 광고 클릭 정보: user가 page에서 광고에 클릭한 정보 - 에러 정보: user가 페이지 탐색 중 에러.. 2023. 5. 31.
카프카 kafka 토픽 + producer + consumer 예제 코드 brew를 통해 설치했고 kafka를 실행했다면 .sh 확장자 없이 다음과 같은 명령어로도 카프카 토픽 실행이 가능하다. 카프카 토픽 kafka-topics 자바 코드에서 다음과 같은 코드로 토픽을 생성할 수 있다. private static void createTopics() { String bootstrapServers = "127.0.0.1:9092"; // Kafka 관리자 클라이언트 설정 Properties adminProps = new Properties(); adminProps.setProperty(AdminClientConfig.BOOTSTRAP_SERVERS_CONFIG, bootstrapServers); AdminClient adminClient = AdminClient.create(a.. 2023. 5. 30.