마이크로 서비스 유저 서비스처럼 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..
Boot
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..
1. AuthenticationFilter란?- Spring Security를 이용한 로그인 요청 발생 시 작업을 처리해 주는 Custom Filter 클래스 2. User-Service -> AuthenticationFilter.java@Slf4jpublic class AuthenticationFilter extends UsernamePasswordAuthenticationFilter { // final AuthenticationManager authenticationManager; private final UserService userService; private final Environment env; public AuthenticationFilter(Authenticat..
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..
Service Discovery가 뭐냐 !- MSA로 구성된 서비스는 각자 다른 IP와 Port를 가지고 있다.이러한 서로 다른 서비스들의 IP와 Port에 대해 저장하고 관리할 필요가 있는데 이것이 ServiceDiscovery이다. 1. Spring Boot Assistantapplication.yml 파일에서 자동완성을 해줄 수 있는 플러그인이다. 2. 인텔리제이 프로젝트 모듈화 3. 유레카로 실행1. discoveryservice 프로젝트디펜던시 : Eureka Server// DiscoveryserviceApplication.java@SpringBootApplication@EnableEurekaServer //추가 //application.ymlserver: port: 8761spring:..
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..