#개요 이번 시간에는 Apache Kafka에서 Topic을 생성하고, 해당 토픽을 통해서 Producer와 Consumer의 역할을 알아보려 합니다. 가장 기본적인 내용이지만, 가장 중요한 내용이기도 해서 최대한 열심히 정리해보겠습니다. #Kafka 커맨드 정리 토픽 생성을 위한 커맨드를 미리 정리하고 실습을 진행하겠습니다. 해당 커맨드는 정리용이니 참고만 해주세요. 📄 Zookeeper 및 Kafka 서버 구동 $KAFKA_HOME/bin/zookeeper-server-start.sh $KAFKA_HOME/config/zookeeper.properties $KAFKA_HOME/bin/kafka-server-start.sh $KAFKA_HOME/config/server.properties $KAFKA_..
Kafka는 MSA와 굉장히 밀접한 기술입니다. 대부분의 MSA 형태의 애플리케이션에는 Kafka가 들어갑니다. 저희가 흔히 쓰는 Spirng-Cloud-Nefilx 오픈소스를 개발한 Nefilx에서도 사용 중 입니다. 이번 포스팅에서는 실제로 Kafka를 설치하고 실행시켜보려 합니다. #Kafka File Download 아래의 Url에서 ApacheKafka를 받아주세요. https://kafka.apache.org/downloads Apache Kafka Apache Kafka: A Distributed Streaming Platform. kafka.apache.org Scala 2.13 버젼으로 Download를 진행해줍니다. #Cmd 환경에서 압축해제 먼저 해당 파일이 있는 위치로 이동해줍니다...
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..
- Total
- Today
- Yesterday
- springcloud
- Kafka Connect
- kafka
- consumer
- Logstash 활용
- git
- docker
- Gateway
- 루틴기록
- Spring + ELK
- 운동
- Feign
- github
- Logstash to ElasticSearch
- LoadBalancer
- rabbitmq
- UserService
- ACTUATOR
- 미래의나에게동기부여
- MSA
- zipkin
- prometheus
- JWT
- 오늘저녁 삼겹살
- 운동일기
- 빅-오
- producer
- MariaDB
- elasticSearch
- config
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |