1. 설명 1). Micrometer- JVM 기반의 애플리케이션의 Metrics 제공- Prometheus 등의 다양한 모니터링 시스템 지원 2). Prometheus- Metrics를 수집하고 모니터링 및 알람에 사용되는 오픈소스- 16년부터 CNCF에서 관리되는 2번째 공식 프로젝트 [1번째는 k8s] - Level DB -> Time Series Database(TSDB)- pull 방식의 구조와 다양한 Metric Exporter 제공- 시계열 DB Metrics 저장 -> 조회 가능(Query) 3). Grafana- 데이터 시각화, 모니터링 및 분석을 위한 오픈소스- 시계열 데이터를 시각화하기 위한 대시보다 제공 2. Micrometer 적용1). 코드user-service, apigat..
spring cloud
1. Resilience4j-CircuitBreaker란? - 장애가 발생하는 서비스에 반복적인 호출이 되지 못하게 차단- 특정 서비스가 정상적으로 동작하지 않을 경우 다른 기능으로 대체 수행 -> 장애 회피 다른 마이크로 서비스에서 오류가 발생했음에도 지금 서비스에서도 오류가 발생하는 경우가 종종 있다문제가 있는 서비스에는 요청을 보내지 않아야 한다.Feign Client에서는 임시로 그 에러를 대신, 우회, 정상적으로 보여지는 다른 데이터를 보여줄 준비를 해야된다.2. 테스트1). 기존 오류 테스트config, 유레카, gateway, user, rabbitmq 기동 2). CircuitBreakerUserServiceImpl.java@Override public UserDto getUse..
Rest Template 작동방식1. 조회 Rest Template 적용1). user-service -> UserServiceApplication.java 빈 추가@Bean @LoadBalanced public RestTemplate getRestTemplate() { return new RestTemplate(); } 2). user-service -> UserServiceImpl.java@Override public UserDto getUserByUserId(String userId) { UserEntity userEntity = userRepository.findAllByUserId(userId); if (userEntity == null) th..
오늘은 대칭키와 비대칭키를 이용한 암/복호화, user-service application.yml의 설정 일부를 config-service으로 옮긴 뒤 config-service의 설정을 사용하게 할 것이다.그리고 설정파일의 정보를 암호화할 것이다1. 암호화의 종류1). Symmetric Encryption (대칭키 : 암호화, 복호화 키가 동일)- Using the same key 2). Asymmetric Encryption (비대칭키 : 암호화, 복호화 키가 다름)- Private and Public Key : 암호화 or 복호화 할 때 Private 키와 Public 키를 사용함(중복 안되게)- Using Java keytool : 자바에서 제공하는 암호화, 복호화 인터페이스 2. 암호화/복호화1..
설정 파일의 값을 변경했을 때 변경된 값을 가져갈 수 있는 방법은 3가지다- 서버 재기동 [패스] 1. Actuator refreshrefresh 어플리케이션의 모니터링과 상태, 변경된 내용을 체크할 수 있는 End Point를 제공하지만어플리케이션의 서버가 여러개, MSA면 refresh를 일일이 수동으로 해야되기 때문에 번거롭다 2. Spring cloud bus- 분산 시스템의 노드(MSA)를 경량 메시지 브로커(Rabbit MQ)와 연결- 상태 및 구성에 대한 변경 사항을 연결된 노드에게 전달(Broadcast)Spring Cloud Config Server에 마이크로 서비스가 다 연결되어 있는 상태이다Config Server과 연결되어 있는 Spring Cloud Bus가 마이크로 서비스에다가 ..
1. Spring Cloud Config란?- 분산 시스템에서 서버 클라이언트 구성에 필요한 설정 정보(application.yml)을 외부 시스템에서 관리- 하나의 중앙화된 저장소에서 구성요소 관리 가능- 각 서비스를 다시 빌드하지 않고, 바로 적용 가능- 애플리케이션 배포 파이프라인을 통해 DEV-UAT-PROD 환경에 맞는 구성 정보 사용 2. application.yml 우선순위application.yml -> application-name.yml -> application-name-.yml 3. ecommerce.yml 파일 생성디렉토리 생성 후 ecommerce.yml 파일 생성$ git add ecommerce.yml$ git commit -m "upload ecommerce yml file..
1. Gateway란?서버 최앞단에 위치하여 모든 API 호출을 받는다. 받은 API 호출을 인증한 후, 적절한 서비스들에 메세지를 전달될 수 있도록 한다기능 : 인증 및 권한부여, 서비스 검색 통합, 응답 캐싱, 속도 제한, 부하 분산, 로깅, 추적, 상관관계, IP 허용 목록에 추가 등 2. 프로젝트 생성gateway-service [Lombok, Eureka Discovery Client, Gateway]first-service [Lombok, Spring Web, Eureka Discovery Client]second-service [Lombok, Spring Web, Eureka Discovery Client]3. 예제1. application.yml// First-Serviceserver: ..