분류 전체보기158 Zipkin Twitter에서 사용하는 분산 환경의 Timing 데이터 수집, 추적 시스템 (오픈 소스) Google Drapper 에서 발전하였으며, 분산 환경에서의 시스템 병목 현상 파악 Collector, Query Service, Databasem WebUI로 구성 Spring Cloud Sleuth 스프링 부트 애플리케이션을 Zipkin과 연동 요청 값에 따른 Trace ID, Span ID 부여 Trace와 Span Ids를 로그에 추가 가능 2022. 6. 17. Resilience4j Resilience4j는 경량화돼있고, Netflix Hystrix를 대신해서 fault tolerance library 역할을 한다. fault tolerance란 에러가 발생하더라도 정상적인 서비스처럼가용할 수 있는 능력을 말한다. org.springframework.clound spring-cloud-starter-circuitbreaker-resilience4j @Bean public Customizer globalCustomConfiguration(){ CircuitBreakerConfig circuitBreakerConfig = CircuitBreakerConfig.custom() //CircuitBreaker를 열지 결정하는 Failure Rate .failureRateThreshold(4.. 2022. 6. 17. Apache Kafka vs Amazon SQS https://stackshare.io/stackups/amazon-sqs-vs-kafka https://blog.iron.io/amazon-sqs-vs-apache-kafka/ 카프카 처리 속도가 빠름 분산 처리에 좋음 -> 대용량 트래픽에 대응 결함이 적음 오픈소스이기에 레퍼런스 많음 분산, 내결함성, 높은 처리량을 지원하는 pus-sub 메시징 시스템 distributed, partitioned, replicated된 커밋 로그 서비스 구독 방식의 비동기식 구성 확장 가능한 솔루션 - Kafka는 분할된 로그 모델을 사용하여 많은 양의 데이터를 여러 서버에 분산할 수 있습니다. 따라서 단일 서버의 용량 이상으로 시스템을 확장할 수 있습니다. 빠른 스트림 - Kafka의 도움으로 데이터 스트림을 분리.. 2022. 5. 27. MicroService란? Antifragile Auto scaling (자동 확장성) Microservices - 모듈을 독립적 개발, 통합 Chaos engineering - 불확실성에도 안정적으로 대처 Continuous deployments - 지속적 통합, 배포 Cloud Native Architecture 확장 가능한 아키텍처 탄력적 아키텍처 장애 격리 Cloud Native Application MicroServices CI / CD DevOps Containers 지속적인 통합, CI - 통합 서버, 소스 관리, 빌드 도구, 테스트 도구 - Jenkins, Team CI, Travis CI 지속적 배포 - Continuous Delivery - Continuous Deployment = 자동 반영 = Continuo.. 2022. 5. 26. MongoDB 기본 개념에 대해 알아보기 (정리) https://www.youtube.com/watch?v=81JnYGT2HVQ MongoDB 소개 key-value와 다르게 여러 용도로 사용이 가능 (범용적) 스키마를 고정하지 않는 형태 - 스키마 변경으로 오는 문제 없음 - 데이터를 구조화해서 json 형태로 저장 (데이터를 key-value화 저장) Join이 불가능하기ㄷ 때문에 join이 필요없도록 데이터 설계 필요 MongoDB 특징 메모리맵 형태의 파일엔진 DB이기 때문에 메모리에 의존적 - 메모리 크기가 성능을 좌우 - 메모리를 넘어서는 경우 성능이 급격히 저하됨 쌓아놓고 삭제가 없는 경우가 적합 - 로그 데이터 - 이벤트 참여 내역 - 세션 트랜잭션이 필요한 금융, 결제, 빌링, 회원 정보 등에는 부적합 (이런 것들은 RDBMS 사용) 도.. 2022. 5. 13. Spring - @Component와 @Service, @Controller의 차이 @Component Spring에서 관리되는 객체임을 표시하기 위해 사용하는 가장 기본적인 어노테이션이다. 주로 DI를 위해 사용된다. @Controller WebMVC 코드에 사용되는 어노테이션이다. @RequestMapping 어노테이션을 해당 어노테이션 밑에서만 사용할 수 있다. @Service 비즈니스 로직이나 repository layer를 호출하는 함수에 사용된다. 하지만 @Component에 추가된 기능은 없다. @Repository Annotation based Configuration, @Repository의 작업은 플랫폼 별 예외를 잡아서 Spring의 통합 검사되지 않은 예외 중 하나로 다시 던지는 것입니다. @Service와 @Component의 기능상 차이는 없지만 관점에 더 연관.. 2022. 5. 12. 이전 1 2 3 4 5 6 7 8 ··· 27 다음