Apache Kafka Apache Kafka는 쉽게 말하면 Message Broker 시스템입니다. 그래서 Message Broker가 뭘까요? 도움을 받기위해 위키의 힘을 빌렸습니다. 메시지 브로커(message broker),인터페이스 엔진(interface engine)은 송신자의 메시지 프로토콜 형식으로부터의 메시지를 수신자의 메시지 프로토콜 형식으로 변환하는 중간 컴퓨터 프로그램 모듈이다. 메시지 브로커들은 응용 소프트웨어가 이전에 정의해둔 메시지를 교환할 수 있는 전기통신의 요소 또는 컴퓨터 네트워크이다.메시지 브로커들은 메시지 지향 미들웨어(MOM)의 빌딩 블록이지만 일반적으로 MOM과 원격 프로시저 호출 (RPC) 등의 전통적인 미들웨어를 대체하지는 않는다. 그렇군요.. 더 모르겠네요 M..
모든 서비스가 그렇듯 트래픽 초과나 서버에 과부하가 오면 느려지거나, 심한 경우 다운됩니다. 이럴 경우에는 일반적으로 LoadBalancer를 활용해 서버에 오는 부하를 줄이는 방식을 채택하게 됩니다. LoadBalancer는 똑같은 서비스지만, 다른 Port로 서버를 개방하게 해서 똑같은 역할을 하는 서비스에 일반적으로 교차로 응답을 보내며, 서버에 오는 부하를 줄이는 방식을 사용하게 됩니다. #LoadBalancer의 사용 시 흐름 LoadBalancer를 사용 시 회원이 자신의 정보를 조회 한다 했을 때, 교차로 응답을 보냅니다. 먼저 8070 Port를 참조한 뒤, 다음에 똑같은 요청이 온다면 8071 Port로 보내게 됩니다. 사용자가 하나라면 별로 쓸모가 없겠지만, 동시에 다중접속을 하게 된다..
저번 시간에는 FeginClient를 활용한 Error를 처리하는 과정을 거쳤습니다. 다만 Error가 발생할경우 커스텀을 통해서 저희가 원하는 값을 내고 싶을 땐 어떻게 해야할까요? 그럴때 사용하는 것이 ErrorDecoder입니다. #개요 따로 추가해야할 Dependency는 없습니다. Feign 라이브러리가 해당 인터페이스를 이미 제공하고 있으니까요!, 이번 포스트에서는, ErrorDecoder를 활용해서 특정 에러가 발생하면 특정 동작이 실행되도록 코드를 작성하려 합니다. #FeignErrorDecoder.java ErrorDecoder를 작성하기에 앞서, 먼저 error 패키지 생성 후 FeignErrorDecoder라는 클래스를 생성합니다. FeignErrorDecoder는 ErrorDecod..
저번 포스팅에서는 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..
- Total
- Today
- Yesterday
- docker
- 운동
- 빅-오
- ACTUATOR
- Kafka Connect
- UserService
- springcloud
- Logstash 활용
- github
- JWT
- MariaDB
- MSA
- elasticSearch
- 루틴기록
- zipkin
- git
- consumer
- 운동일기
- 미래의나에게동기부여
- Gateway
- 오늘저녁 삼겹살
- rabbitmq
- config
- Feign
- producer
- prometheus
- Spring + ELK
- kafka
- Logstash to ElasticSearch
- LoadBalancer
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |