일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
- 배포 파이프라인
- 윈도우키보드
- go
- goland
- 티스토리챌린지
- golang
- UnBuffered channel
- 컴포지트패턴
- 사설 ip
- Intellij
- 배포 프로세스
- 디자인패턴
- Logrus
- Kubernetes
- 대규모 시스템 설계
- apollo router
- AWS
- notification system
- System Design
- kube-prometheus-stack
- Buffered channel
- elasticsearch
- http 413
- GoF
- intellij ide
- gitops
- 오블완
- Infra
- m4 pro
- body size
- Today
- Total
목록티스토리챌린지 (6)
Fall in IT.
Q. CPU와 GPU는 뭐고 무슨 차이가 있을까?CPU (Central Processing Unit)CPU는 컴퓨터의 두뇌로 범용적이고 복잡한 작업을 처리하는데 특화된 프로세서이다.기능 및 역할일반적인 컴퓨팅 작업 (운영체제 실행, 프로그램 구동 등)을 수행순차적이고 논리적인 작업 처리에 최적화단일 혹은 적은 수의 작업을 높은 정밀도로 처리구조적 특징코어수: 일반적으로 몇 개의 고성능 코어로 구성. 고급 CPU는 더 많은 코어를 포함한다.클럭 속도: 높은 클럭 속도를 통해 작업을 빠르게 처리캐시 메모리: 데이터 접근 속도를 높이기 위해 고속 메모리를 탑재사용 사례웹 브라우징, 문서 작업, 소프트웨어 실행 등복잡한 연산이나 조건문 처리가 많이 포함된 작업GPU (Graphics Processing Unit..
Go 언어로 Pub/Sub(Publish-Subscribe) 라이브러리를 개발해보자. (심심하니까…)목차Pub/Sub의 핵심 개념 이해설계 구조 정의단계별 개발테스트 작성고급 기능 추가1. Pub/Sub의 핵심 개념 이해Pub/Sub 시스템의 기본 원리는 다음과 같다.Publisher: 메시지를 특정 Topic에 발행Subscriber: Topic을 구독하고 해당 토픽의 메시지를 수신Broker: 발행된 메시지를 관리하고 적절한 구독자에게 전달2. 설계 구조 정의Go의 구조체와 채널을 활용해 Pub/Sub 시스템을 설계할 수 있다. 아래는 기본 구성요소이다.Topic: 메시지를 그룹화하는 주체Publisher: 메시지를 발행하는 인터페이스Subscriber: 메시지를 구독하는 인터페이스Broker: 토픽..
안녕하세요. 오늘은 DDNS에 대해서 간단하게 설명해보려고 합니다.집에 들어오는 Public IP 주소는 유동 IP를 보통 사용하는데요, 이 IP를 DDNS를 사용하면 특정 주소로 접속이 가능합니다. ISP에서 들어오는 유동 IP가 변경되더라도요. 그 원리에 대해서 설명해보겠습니다. DDNS란?Dynamic Domain Name System으로 인터넷 서비스 제공자(ISP)가 동적으로 변경하는 IP 주소와 도메인 이름을 자동으로 매핑해주는 시스템입니다.이는 IP 주소가 고정되지 않고 계속 변경되는 환경에서 특정 도메인을 통해 항상 동일한 디바이스나 서비스를 접속할 수 있도록 만들어줍니다. DDNS가 필요한 이유1. 동적 IP 환경일반 가정용 인터넷 사용자나 일부 기업은 ISP로부터 동적 IP를 할당받습니..
현재 필자의 시스템은 MSA로 구성되어있다. 그리고 각 마이크로서비스의 로그 기록은 Elasticsearch에 기록되고 있는데 그 방식이 조금 특이(?)하다.전통적인 EFK 시스템을 통해서 기록되는 것이 아니라 로그라이브러리를 통해 기록되고 있기 때문이다. 왜 로그라이브러리를 통해서 로그 데이터를 기록하게 됐는지, 각각의 장단점은 무엇인지 간략하게 설명하고자한다. 로깅 라이브러리를 통해서 Elasticsearch로 전송하는 방식장점구조 단순성Fluentd, Logstash와 같은 추가적인 로그 수집 레이어를 생략할 수 있다.애플리케이션과 Elasticsearch 사이의 연동만 설정하면 되므로 관리할 구성요소가 줄어든다.로그 장애 포인트는 Elasticsearch 하나로 줄어듬.유연성데이터 포맷을 애플리케..
로그 라이브러리 개선현재 나의 프로젝트에서 다양한 서버에서 로그를 기록하기 위해 로그 라이브러리를 사용하여 엘라스틱서치에 직접 데이터를 전송하고 있다.이 과정에서 동기적으로 동작하는 훅(Hook)을 통해 Elasticsearch에 로그를 기록하고 있었는데, 이로 인해 문제가 발생했다. Elasticsearch에 장애가 발생하거나 응답이 지연되는 상황에서, 로그 전송 작업이 API의 주요 처리 흐름을 가로막는 문제가 나타난 것이다. 결과적으로, 로그 라이브러리를 사용하는 모든 API에서 문제가 발생했고, 로그 전송이 API 응답 시간 초과를 유발하면서 시스템 전반에 장애가 발생했다.문제 요약로그 전송이 동기적으로 처리됨.엘라스틱서치 장애 시 로그 훅이 블로킹되어 API의 정상적인 동작을 방해.모든 API..
최근 연차를 보내던 중 QA 팀으로부터 서비스의 로그인 오류 문의를 받았다.문제의 원인을 조사하고 해결한 과정을 기록한다. 문제 상황QA 팀에서는 서비스 로그인이 되지 않는다고 보고했다.로그를 확인해 보니 API 타임아웃이 발생하고 있었다.원인 분석로그 기록 방식API 에러가 발생한 서비스는 로그를 로그 라이브러리를 통해 Elasticsearch에 기록하고 있었는데 동기적으로 기록하고 있었다.이 방식은 Elasticsearch에 문제가 생기면 API 요청이 지연되거나 실패할 수 있는 구조적 문제를 내포하고 있었다.Elasticsearch 상태 점검Elasticsearch는 실행 중이었으나 에러 로그가 기록되고 있었다.스토리지 상태를 확인한 결과, /usr/share/elasticsearch/data 디렉..