분류 전체보기
-
일반적으로 kafka message queue를 활용하면 아래와 같이 하나의 topic을 두고 message를 produce 하고 consume 한다. 위와 같은 경우 이외에 filtering이나 추가 로직을 중간에 두어 여러 topic을 사용하며 체이닝 하는 형식으로 kafka를 활용하기도 한다. 이러한 경우에 여러 producer, consumer를 생성해서 사용하는 것보다는 kafka stream을 활용할 수 있을것 같다 Kafka Stream Kafka Streams는 카프카에 저장된 데이터를 처리하고 분석하기 위해 개발된 자바 라이브러리 장점 카프카와 완벽한 호환 Kafka에서 공식적으로 제공되는 라이브러리 Exactly-once 처리 보장 스케쥴링 도구가 별도로 필요 없음 자체 로컬 상태 저장..
[Kafka] Kafka Stream란 ( Consumer와 비교 )일반적으로 kafka message queue를 활용하면 아래와 같이 하나의 topic을 두고 message를 produce 하고 consume 한다. 위와 같은 경우 이외에 filtering이나 추가 로직을 중간에 두어 여러 topic을 사용하며 체이닝 하는 형식으로 kafka를 활용하기도 한다. 이러한 경우에 여러 producer, consumer를 생성해서 사용하는 것보다는 kafka stream을 활용할 수 있을것 같다 Kafka Stream Kafka Streams는 카프카에 저장된 데이터를 처리하고 분석하기 위해 개발된 자바 라이브러리 장점 카프카와 완벽한 호환 Kafka에서 공식적으로 제공되는 라이브러리 Exactly-once 처리 보장 스케쥴링 도구가 별도로 필요 없음 자체 로컬 상태 저장..
2024.02.14 -
Envoy 주요 용어 Host 논리적인 네트워크 애플리케이션 하나의 물리적인 장비에 여러 개의 호스트가 있을 수 있다 Downstream envoy에 요청을 보내고 응답을 받는 host 보통 요청을 보내는 클라이언트를 뜻함 Upstream envoy로부터 요청을 받아서 응답을 보내는 host 보통 요청을 받아주는 서버를 뜻함 envoy는 listner와 cluster라는 2개의 main part로 이루어져 있다 Listner downstream request를 핸들링하고 lifecycle을 관리 downstream에서 연결할 수 있는 네트워크 위치(포트, 유닉스 도메인 소켓)를 의미 envoy는 downstream에서 연결할 수 있는 listner를 하나 이상 제공 Cluster endpoint에 대..
[MSA] Envoy 구조 및 주요 용어 정리Envoy 주요 용어 Host 논리적인 네트워크 애플리케이션 하나의 물리적인 장비에 여러 개의 호스트가 있을 수 있다 Downstream envoy에 요청을 보내고 응답을 받는 host 보통 요청을 보내는 클라이언트를 뜻함 Upstream envoy로부터 요청을 받아서 응답을 보내는 host 보통 요청을 받아주는 서버를 뜻함 envoy는 listner와 cluster라는 2개의 main part로 이루어져 있다 Listner downstream request를 핸들링하고 lifecycle을 관리 downstream에서 연결할 수 있는 네트워크 위치(포트, 유닉스 도메인 소켓)를 의미 envoy는 downstream에서 연결할 수 있는 listner를 하나 이상 제공 Cluster endpoint에 대..
2024.02.10 -
linux 서버에 docker를 설치하고 실행하면 docker daemon을 stop 하거나 종료할 일이 거의 없지만 만약, local PC에서 docker desktop을 사용한다면 pc를 재부팅할 때마다 docker daemon을 종료할 경우도 생긴다. 이러한 경우 다시 docker daemon을 재시작하는 경우 내부에 docker container의 start 관련 동작을 설정할 수 있다. restart option docker run -d --restart {option} redis no Don't automatically restart the container (default) on-failure[:max-retries] container가 정상적으로 종료되지 않은 경우(exit code가 0이..
[DOCKER] Docker restart 옵션linux 서버에 docker를 설치하고 실행하면 docker daemon을 stop 하거나 종료할 일이 거의 없지만 만약, local PC에서 docker desktop을 사용한다면 pc를 재부팅할 때마다 docker daemon을 종료할 경우도 생긴다. 이러한 경우 다시 docker daemon을 재시작하는 경우 내부에 docker container의 start 관련 동작을 설정할 수 있다. restart option docker run -d --restart {option} redis no Don't automatically restart the container (default) on-failure[:max-retries] container가 정상적으로 종료되지 않은 경우(exit code가 0이..
2024.02.09 -
service mesh를 사용한다면, service에 sidecar proxy가 필요하다. 보통은 해당 요소를 envoy를 사용한다. sidecar proxy의 동작을 알기 위해서는 envoy에 대해서 알아야 할 거 같다. 개념 및 특징부터 차근차근 알아가 보자. envoy란? MSA 환경에서 Service를 위해 설계된 고성능 분산 c++프록시 큰 규모의 현대 MSA을 위한 L7(application layer) proxy이자 communication bus Service Mesh 환경에 초점을 맞추고 있다 여러 Service Mesh tool에서 envoy를 dataplane을 위한 sidecar로 채택하고 있다 주요 특징 HTTP, TCP, gRPC 프로토콜 지원 TLS client certific..
[MSA] Envoy란(proxy)(개념,특징)service mesh를 사용한다면, service에 sidecar proxy가 필요하다. 보통은 해당 요소를 envoy를 사용한다. sidecar proxy의 동작을 알기 위해서는 envoy에 대해서 알아야 할 거 같다. 개념 및 특징부터 차근차근 알아가 보자. envoy란? MSA 환경에서 Service를 위해 설계된 고성능 분산 c++프록시 큰 규모의 현대 MSA을 위한 L7(application layer) proxy이자 communication bus Service Mesh 환경에 초점을 맞추고 있다 여러 Service Mesh tool에서 envoy를 dataplane을 위한 sidecar로 채택하고 있다 주요 특징 HTTP, TCP, gRPC 프로토콜 지원 TLS client certific..
2024.02.03 -
dependency 추가 implementation 'org.springframework.kafka:spring-kafka' application.yml 설정 spring: kafka: bootstrap-servers: - "127.0.0.1:9092" producer: value-serializer: org.springframework.kafka.support.serializer.JsonSerializer properties: interceptor.classes: com.test.api.config.kafka.KafkaProducerInterceptor consumer: value-deserializer: org.springframework.kafka.support.serializer.ErrorHand..
[Kafka] SpringBoot+Kafka 연동dependency 추가 implementation 'org.springframework.kafka:spring-kafka' application.yml 설정 spring: kafka: bootstrap-servers: - "127.0.0.1:9092" producer: value-serializer: org.springframework.kafka.support.serializer.JsonSerializer properties: interceptor.classes: com.test.api.config.kafka.KafkaProducerInterceptor consumer: value-deserializer: org.springframework.kafka.support.serializer.ErrorHand..
2024.01.31 -
SonarQube Docker Image https://hub.docker.com/_/sonarqube SonarQube Docker Compose 기본 이미지를 이용하면 sonarqube의 구성요소중에 DB에 해당하는 요소가 memory DB로 구성된다 image 정보에 sonarqube는 이미지의 이름이고 ":" 뒤에는 버전 정보이다 보통은 "10.3.0-community"와 같이 버전정보와 함께 사용된다 만약, 버전 정보를 적지 않은 경우에는 가장 최근에 버전 정보로 실행하게된다. 포트 정보로는 9000번은 UI에 접속하기 위한 포트 9092는 내부의 memoryDB인 H2 접속 포트 version: '3.8' services: sonarqube: image: sonarqube:community p..
[DevOps] SonarQube docker 설치SonarQube Docker Image https://hub.docker.com/_/sonarqube SonarQube Docker Compose 기본 이미지를 이용하면 sonarqube의 구성요소중에 DB에 해당하는 요소가 memory DB로 구성된다 image 정보에 sonarqube는 이미지의 이름이고 ":" 뒤에는 버전 정보이다 보통은 "10.3.0-community"와 같이 버전정보와 함께 사용된다 만약, 버전 정보를 적지 않은 경우에는 가장 최근에 버전 정보로 실행하게된다. 포트 정보로는 9000번은 UI에 접속하기 위한 포트 9092는 내부의 memoryDB인 H2 접속 포트 version: '3.8' services: sonarqube: image: sonarqube:community p..
2024.01.22 -
알림 시스템 설계 시 고려 사항 어떤 종류의 알림을 지원하는지 - 푸시 알림, SMS 메시지, 이메일 실시간 시스템이어야 하는지? - 연성 실시간 시스템이라고 가정. 가능한 한 빨리 전달되어야 하지만 높은 부하가 걸렸을 때 약간의 지연 무방 어떤 종류의 단말을 지원하는지? - iOS, 안드로이드, 랩톱/데스크톱 지원 사용자에게 보낼 알림은 누가 만들 수 있는지? - 클라이언트 어플리케이션 프로그램이 만들 수 도 있고 서버 측에서 스케쥴링할 수도 있음 사용자가 알림을 받지 않도록 설정할 수 있어야 하는지? - 설정할 수 있어야 함 하루에 몇 건의 알림을 보낼 수 있는지? - 천만 건 모바일 푸시 알림, 백만건 SMS 메시지, 5백만 건의 이메일을 보낼 수 있어야 함 개략적인 설계안 각각의 서비스 : 마이크..
알림 시스템 설계알림 시스템 설계 시 고려 사항 어떤 종류의 알림을 지원하는지 - 푸시 알림, SMS 메시지, 이메일 실시간 시스템이어야 하는지? - 연성 실시간 시스템이라고 가정. 가능한 한 빨리 전달되어야 하지만 높은 부하가 걸렸을 때 약간의 지연 무방 어떤 종류의 단말을 지원하는지? - iOS, 안드로이드, 랩톱/데스크톱 지원 사용자에게 보낼 알림은 누가 만들 수 있는지? - 클라이언트 어플리케이션 프로그램이 만들 수 도 있고 서버 측에서 스케쥴링할 수도 있음 사용자가 알림을 받지 않도록 설정할 수 있어야 하는지? - 설정할 수 있어야 함 하루에 몇 건의 알림을 보낼 수 있는지? - 천만 건 모바일 푸시 알림, 백만건 SMS 메시지, 5백만 건의 이메일을 보낼 수 있어야 함 개략적인 설계안 각각의 서비스 : 마이크..
2024.01.16 -
sonarqube는 프로그램 코드 정적 분석 도구이다 프로그램 코드 정적 분석 도구란 프로그램을 실행하지 않은 상태에서 소스 코드나 컴파일된 코드를 이용해 프로그램을 분석하는 방법 메모리 누수 또는 버퍼 오버플로우 등 일반적으로 알려진 오류 및 취약점 파악 및 표준 코딩 적용에 관한 내용 분석 변경된 코드에 관한 피드백 sonarqube 특징 github, jenkins와 같은 플랫폼과 연동하여 코드 관련 액션을 수행할 때 지속적인 코드 정적 분석을 위한 환경 제공 코드 정적 분석 내용 중앙화 관리 및 visuality 제공 사용자가 원하는 품질 요구사항 설정 가능 다양한 plugin을 제공하여 확장성 제공 sonarqube 구성 요소 sonarqube server database scanner Scan..
[DevOps] SonarQube란(코드 정적 분석 도구)sonarqube는 프로그램 코드 정적 분석 도구이다 프로그램 코드 정적 분석 도구란 프로그램을 실행하지 않은 상태에서 소스 코드나 컴파일된 코드를 이용해 프로그램을 분석하는 방법 메모리 누수 또는 버퍼 오버플로우 등 일반적으로 알려진 오류 및 취약점 파악 및 표준 코딩 적용에 관한 내용 분석 변경된 코드에 관한 피드백 sonarqube 특징 github, jenkins와 같은 플랫폼과 연동하여 코드 관련 액션을 수행할 때 지속적인 코드 정적 분석을 위한 환경 제공 코드 정적 분석 내용 중앙화 관리 및 visuality 제공 사용자가 원하는 품질 요구사항 설정 가능 다양한 plugin을 제공하여 확장성 제공 sonarqube 구성 요소 sonarqube server database scanner Scan..
2024.01.10