앞서 두 포스팅을 통해 Kafka(Zookeeper)의 아키텍처와 구축/기동 방법에 대해 살펴보았다. Kafka(Zookeeper) 아키텍처 Kafka(Zookeeper) 구축 이번 포스팅에서는 실제 Kafka Message Broker를 활용한 Pub/Sub SpringBoot Application 개발 방법에 대해 알아보자.Publisher Project 개발 가이드Publisher 구현은 다음과 같은 과정을 거친다.(build.gradle 구성 > @SpringBootApplication 구성 > Swagger 구성 > application.properties 정의 > KafkaPublisherConfig 정의 > domain(Sender & Reciever Message) 정의 > Controll..
앞선 포스팅에서 Kafka(Zookeeper) 아키텍처에 대해 살펴보았다. [MSA] Kafka(Zookeeper) 아키텍처 이번 포스팅에서는 다음 포스팅에서 다룰 Pub/Sub 개발을 위한 Kafka 메시지 브로커를 구성해 보도록 하자. Kafka 설치 Kafka는 사실 설치의 개념이 없다. 단순히 압축을 해제하는 것만으로 설치는 완료된다.Kafka는 다음에서 다운로드 받을 수 있다.Kafka : http://kafka.apache.org/ Kafka 디렉토리 구조 Kafka를 관리할 특정 디렉토리에 압축을 해제하면 다음과 같은 구조를 갖는다. [주요 디렉토리]- bin : Kafka와 Zookeeper를 기동하고 관리하기 위한 bat(windows) or sh(linux/unix) 파일이 위치한다.-..
Apache Kafka는 아파치 소프트웨어 재단이 스칼라로 개발한 오픈 소스 메시지 브로커 프로젝트로 pub/sub 모델의 메시지 큐를 지원한다.마이크로서비스 아키텍처에서 메시지 브러커는 Message Backing Service로써 동작하며, 메시지의 처리를 통해 비동기 애플리케이션, DB 동기화, 보상트랜잭션 구현, PUB/SUB 구현 등 다양한 형태의 애플리케이션으로 응용될 수 있다.Kafka는 대표적인 메시지 브로커로써, RabbitMQ와 많이 비교된다.일반적으로 RabbitMQ는 대표적인 신뢰성 높은 메시지 브로커로써 각광받는다. 장애 발생 시에도 데이터 복원이 쉽고, 반드시 한번의 전송을 보장한다. 다만 성능면에서 Kafka 보다 떨어진다.Kafka는 대용량 실시간 처리에 특화되어 있다. 특히..
Kubernetes에는 Linux / Unix Operation System에 존재하는 CronTab을 구현한 CronJob이 존재한다. CronJob은 반복적이고 Scheduling 된 업무를 동작하게 하는 방법 중 하나로 CronTab이 항상 OS Level의 Configuration으로 남아 있는것과 달리 휴발성 있는 컨테이너에서 Job을 실행하고 종료하는 방식으로 보다 안전한 관리 방식을 제공한다. 또한 OS 외 Kubernetes Level의 RBAC 권한 관리 방안으로 보다 안전하게 명령어 레벨을 실행할 수 있도록 제한할 수 있다. CronJob 먼저 CronJob에 대해 알아보자. CronJob은 CronTab에 정의된 한 줄의 Scheduling과 같다고 볼 수 있다. CronTab과 같이..
Kubernetes는 배포 최소단위로 Pod를 사용한다. Pod는 하나 이상의 Container를 포함하는 배포 단위이다. 이때, 컨테이너는 여러 형태로 존재할 수 있는데, 기동 시점에 처리하고 종료되고 Init Container 실제 업무를 처리하는 Runtime Container 보조 역할로써 배포되는 SideCar Container 등이 존재한다. 우리는 일반적으로 생각하는 Runtime Container만 다루곤 하는데, 때로는 다른 형태의 컨테이너를 이해하고 있어야 실제 장애에 대응할 수 있는 상황이 주어지기도 한다. 예를 들어 다음과 같은 상황을 살펴보도록 하자. 앞서 다음 포스팅에서 트러블슈팅을 진행하는 몇가지 방법에 대해 알아보았다. (참조) Kubernetes - 장애 발생 시 진단 Pr..
Rest API 설계 및 구현을 도와주는 Swagger Tool은 개발자가 REST 웹 서비스를 설계, 빌드, 문서화, 소비하는 일을 도와주는 오픈소스 소프트웨어이다. 개발자들은 Swagger UI Tool을 통해 API를 식별하고, 자동화된 문서화, 코드 생성, 테스트 케이스 생성 지원이 포함된다. Spring Boot Application에 Swagger 구성하기 1. Swagger Dependency Library 추가 ... dependencies { ... // ## Swagger Library ## compile('io.springfox:springfox-swagger2:2.7.0') compile('io.springfox:springfox-swagger-ui:2.7.0') ... } ... ..
Spring Boot 프로젝트를 생성하는 방법 중 Spring initializr를 활용하는 방법이 있다. Spring initializr 활용 Spring initializr는 다음에서 접속할 수 있다. https://start.spring.io/ Project : Project는 Spring Boot를 빌드하고 배포하는 방식이다. Maven, Gradle 중 선호하는 프로젝트를 선택한다. > Maven Project > Gradle Project (O) Language : 개발 언어는 Java, Kotlin, Groovy를 지원하며, Java를 선택한다. > Java (O) > Kotlin > Groovy Spring Boot : Spring Boot 버전을 선택한다. > 2.3.4 (O) .. ....
Spring Boot는 경량화 된 Framework로 클라우드 환경에 적합한 프레임워크로써 각광받고 있다. Spring Boot의 Embedded Tomcat은 미들웨어의 경량화까지 Famework에서 관리하고 담당하는 미들웨어로써, 보다 빠르고 쉽게 개발하고 운영할 수 있도록 도와 준다. 다음은 Spring Boot에서 Embedded Tomcat을 활용하여 테스트하는 방법에 대해 알아보도록 하자. Embedded Tomcat은 Spring Boot 라이브러리 중 spring-boot-starter-web에 기본 내장되어 있다. 따라서 별도의 구성 없이 Embedded Tomcat을 위 라이브러리 추가만으로 사용할 수 있다. 반대로 다른 내장 was를 사용하고자 할 경우 exclusion을 통해 내장 ..
Eclipse에서 Maven Project 생성 후 Github에 해당 Project를 연동하는 방법에 대해 알아보자. 이전 Github에 Push되어 있는 Project를 Eclipse에 가져오는 방법에 대해서는 아래 포스팅을 통해 확인할 수 있다. [Github] Eclipse 연동하기 [Spring Boot] gitlab & Eclipse 연동을 통한 Spring Boot 개발 프로젝트 구축 [Spring Boot] Spring Boot Structure 먼저 다음과 같이 Maven Project 우클릭 → Team → Share Project를 선택한다. 다음으로 Use or create repository in parent folder of project Chech Box를 활성화 시키고 Pro..
Lombok이란 Java에서 반복적인 형태의 코드 삽입을 최소화 해주는 개발 기법으로 Annotation 기반의 VO Class를 작성하는 것이 대표적인 Lombok의 기능이라 볼 수 있다. 단순하게 getter/setter/toString을 annotation으로 대체하는 것 뿐만 아니라, Builder, NonNull, Data 등 수많은 Lombok Annotation을 제공하고 있다. 자세한 lombok 라이브러리에 대한 설명은 이후에 다시 다뤄보기로 하자. Lombok 구성 - pom.xml 등록 org.projectlombok lombok true - Lombok 프로젝트 적용 pom.xml에 라이브러리를 등록하여 lombok 라이브러리를 사용하도록 등록하였음에도 몇몇 lombok 라이브러리가..
- Total
- Today
- Yesterday
- wildfly
- 마이크로서비스
- 쿠버네티스
- Da
- nodejs
- SA
- k8s
- aa
- 마이크로서비스 아키텍처
- API Gateway
- webtob
- 아키텍처
- TA
- git
- Architecture
- OpenStack
- jeus
- MSA
- openstack tenant
- openstack token issue
- JBoss
- Docker
- kubernetes
- SWA
- aws
- JEUS6
- JEUS7
- node.js
- apache
- 오픈스택
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |