마이크로 서비스 유저 서비스처럼 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..
postman
오늘은 대칭키와 비대칭키를 이용한 암/복호화, 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. CustomFilter[gateWay-service] CustomFilter.java@Component@Slf4jpublic class CustomFilter extends AbstractGatewayFilterFactory { public CustomFilter() { super(Config.class); } @Override public GatewayFilter apply(Config config) { // Custom Pre Filter return (exchange, chain) -> { ServerHttpRequest request = exchange.getRequest(); ServerHtt..
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. PostMan이 뭐에요? 개발된 API를 테스트 할 수 있는 플랫폼 2. 개발 소스 클릭 ! [JPA] RESTful API를 만들어보자. (CRUD) 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 noorypapa.tistory.com 3. 테스트를 해보자 (1). 등록 [POST] (2). 전체 조회 [GET] (3). 단건 조회 [GET] (4)...
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..