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 boot
마이크로 서비스 유저 서비스처럼 config에서 설정파일 받게 수정 1. Orders 서비스와 Catalogs 서비스에 Kafka Topic를 적용- Orders 서비스에 요청된 주문의 수량 정보를 Catalogs 서비스에 반영- Orders 서비스에서 Kafka Topic로 메시지 전송 -> Producer- Catalogs 서비스에서 Kafka Topic에 전송된 메시지 취득 -> Consumer 2. 동기화 코드 [1]order-service -> KafkaProducerConfig.java// 카프카 활성화@EnableKafka// 이 클래스를 설정 파일로 사용, bean을 관리@Configurationpublic class KafkaProducerConfig { @Bean // kaf..
FeignClient- REST Call을 추상화 한 Spring Cloud Netflix 라이브러리 1. FeignClient1). 구현OrderServiceClient.java@FeignClient(name = "order-service")public interface OrderServiceClient { // 다 퍼블릭이라서 따로 적을 필요는 없다 @GetMapping("/order-service/{userId}/orders") List getOrders(@PathVariable String userId);} UserServiceImpl.java @Override public UserDto getUserByUserId(String userId) { UserEnti..
오늘은 대칭키와 비대칭키를 이용한 암/복호화, 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..
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: ..
1. 환경 1. Sping Boot 2. Spring Data JPA 3. Gradle 4. postgreSQL 5. PostMan 6. Swagger 7. 인텔리제이 무료버전 2. DB 구조 3. CRUD 구현 (1). Entity 생성 @Entity @Getter @Setter @ToString @Table(name = "room_cd") public class EclassRoomEntity { @Id @Column(name = "room_cd_id", length = 36) private String roomCdId; @Column(nullable = false, length = 100) private String roomNm; // 강의실명 @Column(nullable = false) priva..
JPA 의 구현체인 Hibernate 는 Entity 코드를 스캔하여 스키마와 테이블을 자동으로 생성해주는 기능이 있다. DDL 을 애플리케이션 실행 시점에 자동으로 생성해주는 기능이다. 위 기능은 jpa.hibernate.ddl-auto 옵션을 통하여 설정할 수 있다. jpa.hibernate.ddl-auto ddl-auto 기능은 각 RDBMS (MySQL, Oracle, MariaDB, 등)의 서로 다른 방언에 맞는 DDL 을 자동 생성 및 실행해준다. 자동 생성에 대한 옵션은 아래와 같다. create 기존 테이블 삭제 후 다시 생성(DROP + CREATE) 초기 개발 시 적용 create-drop create와 같으나 종료시점에 테이블 DROP 초기 개발 또는 테스트 시 적용 update 변경..