저번 포스팅에서는 Feign Client를 활용해서 서비스간의 통신을 작업했습니다. 이번 포스팅에서는 조금 방향을 틀어서 예외처리를 하는 방식에 대해서 알아보도록 할게요. #Why? 시작하기에 앞서, 그럼 왜 예외처리를 작업해줘야 할까요? 먼저 예외처리를 하지 않은 상황에서 잘못된 URL로 접속하게 된다면, 404에러와 함께 해당 URL에 접속 할 수 없다는 오류가 발생합니다. 이 같은 경우에는 전체의 값을 전달받지 못하게 됩니다. 하지만 예외처리를 통해서 해당 URL에 예외처리를 한다면, 해당 값은 제외하고 값을 전달받을 수 있습니다. #개요 기존에 작성해둔 FeignClient를 수정해 잘못된 Url을 Mapping할 예정입니다. 그리고 해당 내용을 통해 의도된 Exception발생시키고, 주문 정보..
저번 시간에 이어서 이번에는 FeignClient를 활용한 서비스간의 통신을 구현하려 합니다. 개요 FeignClient는 RestTemplate와 비슷하지만, 조금 더 간소화 해서 사용 할 수 있습니다. REST Call을 추상화한 Spring Cloud Netflix의 라이브러리 입니다. 마찬가지로 User-Service에서 주문 정보를 조회하는 기능을 구현하려고 합니다. 또한 실제 구현에 앞서서 아래의 Dependency를 추가해주세요. org.springframework.cloud spring-cloud-starter-openfeign #UserServiceApplication.java 먼저 FeignClient를 활용하기위해서 MainClass를 조금 수정해줍시다. package com.exam..
드디어 보안과 관련한 항목이 끝나고 기술적인 부분을 다시 진행 하려 합니다. 시작하기에 앞서 RestTemplate부분 부터 진행하실분이라면 아래의 WorkSpace를 받아주세요. -Main Work Space- -Configuration Yml Files- 해당 파일의 위치를 D: 바로 밑으로 두고 있습니다. 위치를 변경 하실분은 Main Work Space에서 변경해주셔야합니다. 개요 개요를 간단히 말씀드리면, 일단 UserService와 OrderService간에 데이터 통신을 목적으로 두고있습니다. 간단한 예시로 만약 OrderService에서 주문을 진행하게 되면 해당 주문 정보를 UserService로 보내야 합니다. 이를 RestTemplate를 활용해서 구현하려는게 이번 포스팅의 핵심입니다..
대칭키에 이어서 비대칭키를 이용한 암호화 처리를 하려고 합니다. 비대칭키는 대칭키에 비해서 복잡하지만, 만들어 둔다면 조금 더 나은 보안 환경을 제공 할 수 있습니다. #cmd 저는 D드라이브 에서 keystore라는 폴더를 생성했습니다. 그리고 아래와 같이 키를 생성해줍니다. // 으로 이동 C:\Users\[user 이름]\Desktop mkdir Work cd Work mkdir keystore cd keystore //keytool 활용 RSA방식 키 생성 keytool -genkeypair -alias apiEncryptionKey -keyalg RSA -dname "CN=GangGyun Park,OU=API Development,O=ggparkitbank.tistory.com,L=Seoul,C..
길고도 험난했던, MSA였습니다. 어렵다면 어려운 부분도 많았고, 알고있다고 생각했는데 모르는 것들도 많았습니다. Eureka Server,Client 와 Gateway,Security,LoadBalance,Config 등... 많이 했다고 느끼지만, 첫 걸음이었다는 사실에 놀랍긴합니다. 이제 부터 할 작업은 MSA의 고도화 작업입니다. 기존에 진행했던 작업에 조금 더 고급진 기술을 사용하려합니다. 가장 먼저 할 작업은 대칭키를 이용한 암호화 처리 입니다. -지금 까지 사용한 프로젝트 파일을 첨부합니다. Part2부터 참조하실 분들은 해당 프로젝트를 확인해주세요. *해당 압축파일은 WorkSpace입니다. import를 생각하신다면 각 서비스를 import 시켜야합니다. #bootstrap.yml(Con..
이제 본격적으로 Spring Cloud Bus를 활용하기에 앞서 몇가지 설정을 해주려 합니다. 바로 시작하겠습니다. #BootStrap.yml( User,Config,Gateway ) 먼저 저번시간에 진행했던 Native Profile로 세가지 서비스를 모두 맞춰줍니다. profiles를 active 시켜주세요! spring: cloud: config: uri: http://127.0.0.1:8888 name: config-service profiles: active: native #pom.xml(Config-Service) 먼저 Config-Service의 pom.xml 파일에 Dependency를 추가합니다. org.springframework.boot spring-boot-starter-actuat..
지금까지는 두가지 방식으로 Configuration 파일을 불러오는 작업을 했습니다. 그 방법으로는 Local에서 불러오는 방식과 Git에서 불러오는 방식으로 나뉘어져 있었어요. 이번에는 해당 방식들과는 조금 다르게 Native에서 불러오는 방식을 보려고 합니다. #시작하기에 앞서서... Native 방식의 장점이 어떤걸까요? Native방식을 채택하면, 따로 커밋하는 작업을 하지 않아도 됩니다. Local과 Git을 활용하는 방식모두 파일 등록 후 Commit작업을 거쳤지만, Native 방식은 File을 직접 참조하기 때문에 이런 과정을 생략 할 수 있어요. 아주 편리한 방식이지만, 깃에 등록을 안하기 때문에 협업시에는 오히려 불편 할 수도 있다는 점이 단점이겠네요. #Native File Repos..
그동안 Actuator를 활용해서 Refresh를 통해서 변경된 서버설정값을 가져갔습니다. 물론 이용안하는 것보다는 편하지만, 포스팅을 따라하셨던 분들이라면, 지속적으로 Refresh하는 과정이 번거롭다는 생각이 드셨을 거에요. 이러한 문제점을 해결하기 위해서 나온게 바로 Spring Cloud Bus 입니다. Spring Cloud Bus를 활용하면, 한번의 Refresh로 Bus와 연결되어있는 모든 Service를 Refresh하게 됩니다. 기존에는Gateway-Service,User-Service 마다 각각 Refresh해줘야 했던 반면, Spring Cloud Bus를 활요하면 한번의 Refresh만으로도 작업이 완료가 된다는 의미입니다! 다만 Spring Cloud Bus를 활용하기전에 Rabb..
-해당 포스팅은 Git Hub 회원가입이 선행되어야 합니다. -해당 포스팅은 인프런의 Spring Cloud로 개발하는 마이크로서비스 애플리케이션(MSA)을 참고했습니다. 기존에 Repository는 Local이었지만 Local 환경은 협업도 어렵고, 파일을 유실했을때 찾기도 어렵습니다. 그래서 이번엔 Git Hub와 연동을 통해서 원격 Repository에 지금까지 저희가 작업한 내용을 올릴려 합니다! 천천히 따라와주세요. #Git Hub 먼저 Git-Hub에 로그인을 한 뒤 오른쪽 상단에 + 버튼을 클릭해 Create a new repository로 이동해줍니다. 다음과 같이 Repository를 생성하겠습니다. 해당 Repository로 이동 후 최 상단에 있는 https://github.com/~..
- Total
- Today
- Yesterday
- JWT
- MariaDB
- 미래의나에게동기부여
- 루틴기록
- 빅-오
- Gateway
- 운동
- elasticSearch
- Spring + ELK
- MSA
- github
- Logstash to ElasticSearch
- UserService
- rabbitmq
- prometheus
- docker
- config
- Feign
- 운동일기
- git
- 오늘저녁 삼겹살
- LoadBalancer
- Logstash 활용
- kafka
- producer
- springcloud
- Kafka Connect
- consumer
- zipkin
- ACTUATOR
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |