728x90 분류 전체보기502 [MacOS] 하나 이상의 항목을 사용 중이기 때문에 변경할 수 없습니다 하나 이상의 항목을 사용 중이기 때문에 변경할 수 없습니다 NTFS로 된 USB나 외장 하드의 파일 복사 못할 때 나오는 에러이다 Finder에서 파일이름이 회색으로 표시되는 파일들을 복사하거나 사용하려고 할때 에러가 팝업된다 맥OS에서 해결 방법 터미널 창을 열고 문제의 파일이 있는 외장 경로로 이동한뒤 해당 경로에서 우클릭 - 서비스 - New iterm2 Window Here 을 클릭해 iterm2로 해당 경로에 진입한다 살펴보면 파일 권한 끝에 @ 표시가 붙어 있는 파일이 이런 문제를 일으킨다 $ ls -la (또는 $ ls -l@) -rwxr-xr-x@ test.txt 문제되는 속성을 제거하는 명령을 터미널에서 실행 $ xattr -d com.apple.FinderInfo 파일이름 또는 해당 경.. MacOS 2021. 2. 21. [11번가 Spring Cloud 기반 MSA로의 전환] 7. Appendix Appendix youtu.be/J-VP0WFEQsY?t=4023 Hystrix - Circuit Breaker Hystrix Circuit Breaker 란 Command 내부에서 실행된 사용자 코드(메소드)에서 발생한 Exception의 횟수의 통계를 집계 일정 시간 동안 일정 개수 이상의 호출이 발생한 경우, 일정 비율 이상의 에러가 발생하면 Circuit Open Circuit이 Open된 동안은 메서드를 호출하여도 실행하지 않고 막바로 Exception 발생(Fast Fail) 일정 시간 경과 후에 단 한개의 요청에 대해서 호출을 허용하며(Half Open), 이 호출이 성공하면 Circuit Close API Routing in Zuul Eureka + Ribbon 기반으로 API 서버를 찾아.. SpringCloud 2021. 2. 8. [11번가 Spring Cloud 기반 MSA로의 전환] 6. 모니터링 모니터링 youtu.be/J-VP0WFEQsY?t=2933 기존 모니터링 시스템으로는 5%가 부족해! MSA 환경에서의 흔한 API 호출 API 호출에 지연/문제가 생긴 경우 어떤 서버가 문제의 원인을 제공했는가를 찾는 어려움 분산 Tracing의 필요 서버간 Trace 정보의 전달 서버간의 Trace 정보의 전달은 사용 Protocol의 헤더를 통해 전달 가능 ex) HTTP Header 서버 내의 Trace 정보의 전달 Thread Local 등을 사용하여 Trace 정보를 전달 요즘 Java 서버 내의 Trace 정보의 전달 문제 다양한 Library에 의한 Thread 변경으로 인한 Trace 정보의 전달이 어려움 Hystrix, RxJava, @Async ... Spring Cloud Sleut.. SpringCloud 2021. 2. 8. [11번가 Spring Cloud 기반 MSA로의 전환] 5. 11번가 MSA 환경 구성 11번가 MSA 환경 구성 youtu.be/J-VP0WFEQsY?t=2717 11st with Spring cloud 모든 MSA Platform내의 서버는 Eureka Client를 탑재 API Server들간의 호출도 Spring Cloud Feign을 통해 Hystrix + Ribbon + Eureka 조합으로 호출 모든 MSA Platform 내의 서버는 Spring Cloud Config Client를 탑재 MSA 운영 환경을 위한 전용 모니터링 도구들 Zipkin, Turbine, Spring Boot Admin Spring Cloud Config Git 기반의 Config 관리 플랫폼 내의 모든 Server들은 Config Client를 탑재 서버 시작시 Config 서버가 제공하는 Conf.. SpringCloud 2021. 2. 8. [11번가 Spring Cloud 기반 MSA로의 전환] 4. 장애 시나리오 장애 시나리오 youtu.be/J-VP0WFEQsY?t=2443 Hystrix, Eureka, Ribbon을 사용한 우리 System은 어느정도 Resilient 한거야? 특징 API 서버 한대가 Down 된다면? 흔한 장애 Case 가장 먼저 즉시 대응하는 것은 Ribbon Client Ribbon Client에는 Retry 기능이 탑재 Netflix Ribbon에는 자체 구현 Spring Cloud에서는 Camden.SR7부터 Spring Retry기반으로 대체 : ribbon: MaxAutoRetries: 0 MaxAutoRetriesNextServer: 2 retryableStatusCodes: 503 Spring Retry는 Optional Dependency로 직접 Dependency를 명시할.. SpringCloud 2021. 2. 8. [11번가 Spring Cloud 기반 MSA로의 전환] 3. Hystrix, Ribbon, Eureka 적용 in 11st Hystrix, Ribbon, Eureka 적용 in 11st youtu.be/J-VP0WFEQsY?t=1815 API Gateway MSA 환경에서 API Gateway의 필요성 Single Endpoint 제공 API를 사용할 Client들은 API Gateway 주소만 인지 API의 공통 로직 구현 Logging, Authentication, Authorization Traffic Control API Quota, Throttling 자체 개발 Vs Zuul SK planet은 자체 개발 API Gateway를 상용 운영 중 11번가를 제외한 서비스의 Open API 제공 Node.js / Koa Framework 기반 100% 자체 개발 from Scratch Logging, Authorizati.. SpringCloud 2021. 2. 8. [11번가 Spring Cloud 기반 MSA로의 전환] 2. Deep Dive into Hystrix, Ribbon, Eureka Deep Dive into Hystrix, Ribbon, Eureka youtu.be/J-VP0WFEQsY?t=504 Hystrix Netflix가 만든 Fault Tolerance Library 장애 전파 방지 & Resilience 기능적 관점에서 본 Hystrix의 주요 4가지 기능 Circuit Breaker Fallback Thread Isolation Timeout Hystrix 적용하기 Hystrix Annotation 사용 Hystrix Javanica, Spring Cloud Netflix에 포함되어 있음 @HystrixCommand public String anyMethodWithExternalDependency() { // REST API로 다른 서버 호출 } HystrixComman.. SpringCloud 2021. 2. 8. [11번가 Spring Cloud 기반 MSA로의 전환] 1. 왜 MSA 를 도입하는지 어떻게 MSA를 도입할 것인지? 11번가 Spring Cloud 기반 MSA로의 전환 - 지난 1년간의 이야기 youtu.be/J-VP0WFEQsY Why MSA in 11st? 2016년말 11번가는... 초대형 거대 Monolithic System 8년넘게 사용해 온 낙후된 S/W Stack 너무나 커진 200만 라인의 공통 모듈 폭증하는 트래픽으로 수년내에 감당하기 힘들것으로 예상되는 부하 이로 인해... 많은 개발팀의 코드를 한번에 배포 매주 목요일 밤샘 정기 배포, 잦은 장애 개발자들이 새로운 기술을 접해 볼 기회 원천 봉쇄 JAVA 1.6, Spring 2.x or 외주 개발 Framework IDE에 띄우는 것 조차 버거운 개발 환경 200만 라인의 공통 코드로 인해 항상 메모리 부족 나의 과감한 수정은 전사 장애다! 어떻.. SpringCloud 2021. 2. 8. [Spring Cloud 를 활용한 MSA 기초] 9. Configuration Server, Tracing.Monitaring, 그리고 남은 이야기 9. Configuration Server, Tracing.Monitaring, 그리고 남은 이야기 youtu.be/6g1wH97BiuQ?list=PL9mhQYIlKEhdtYdxxZ6hZeb0va2Gm17A5&t=1520 Spring Cloud Config 중앙화 된 설정 서버 출처: https://mromeh.com/2017/12/04/spring-boot-with-embedded-config-server-via-spring-cloud-config/ Spring Boot Admin, Turbine Zipkin, Spring Cloud Sleuth Distributed Tracing, Twitter 세미나에서 다루지 못한 얘기들.. FAQ 코드 리뷰 TDD Database 분리 방법 분산 트랜잭션 Eve.. SpringCloud 2021. 2. 7. [Spring Cloud 를 활용한 MSA 기초] 8. API Gateway - Zuul 8. API Gateway - Zuul youtu.be/6g1wH97BiuQ API Gateway 클라이언트와 백엔드 서버 사이의 출입문(front door) 라우팅(라우팅, 필터링, API변환, 클라이언트 어댑터 API, 서비스 프록시) 횡단 관심사 cross-service concerns 보안. 인증(authentication) , 인가(authorization) 일정량 이상의 요청 제한(rate limiting) 계측(metering) Netflix Zuul 마이크로 프록시 50개 이상의 AWS ELB 의 앞단에 위치해 3개의 AWS 리전에 걸쳐 하루 백억 이상의 요청을 처리(2015 년 기준) 출처 https://github.com/Netflix/zuul/wiki/How-We-Use-Zuul-At.. SpringCloud 2021. 2. 7. [Spring Cloud 를 활용한 MSA 기초] 7. Declarative Http Client - Feign 7. Declarative Http Client - Feign youtu.be/SOmn6BGL884 Interface 선언을 통해 자동으로 Http Client 를 생성 RestTemplate 은 concreate 클래스라 테스트하기 어렵다 관심사의 분리 서비스의 관심 - 다른 리소스, 외부 서비스 호출과 리턴값 관심 X - 어떤 URL, 어떻게 파싱할 것인가 Spring Cloud 에서 Open-Feign 기반으로 Wrapping 한 것이 Spring Cloud Feign Declarative Http Client - Spring Cloud Feign 인터페이스 선언 만으로 Http Client 구현물을 만들어 줌 @FeignClient(name = "db", url="http://localhost:8.. SpringCloud 2021. 2. 7. [Spring Cloud 를 활용한 MSA 기초] 6. Service Registry - Eureka 6. Service Registry - Eureka youtu.be/iIqamVxYmUk Ribbon 예제에서 서버 목록을 yml에 직접 넣었는데 자동화 할 방법은 ? '서버가 새롭게 시작되면 그것을 감지하여 목록에 자동으로 추가되고, 서버가 종료되면 자동으로 목록에서 삭제하기 위한 방법은 없을까 ?' Dynamic Service Discovery - Eureka Service Registry 서비스 탐색, 등록 클라우드의 전화번호부 (단점) 침투적 방식 코드 변경 DiscoveryClient spring-cloud 에서 서비스 레지스트리 사용 부분을 추상화(Interface) Eureka, Consul, Zookeeper, etcd 등의 구현체가 존재 Ribbon은 Eureka과 결합하여 사용 할 수 .. SpringCloud 2021. 2. 7. 이전 1 ··· 4 5 6 7 8 9 10 ··· 42 다음 💲 추천 글 728x90