반응형
Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- 자료구조공부
- JPA공부
- K8S
- 스프링 공부
- 알고리즘공부
- 기술면접공부
- JPA 공부
- 기술공부
- 스프링부트
- Axon framework
- JPA스터디
- 스프링공부
- JPA예제
- 플러터 개발
- 프로그래머스
- 코테공부
- DDD
- nestjs스터디
- 코테준비
- 플러터 공부
- 카프카
- nestjs
- 스프링
- nestjs공부
- Flutter
- 자바공부
- JPA
- Kafka
- querydsl
- 스프링부트공부
Archives
- Today
- Total
DevBoi
[DDD] Axon framework 를 사용해보자 (1) 본문
반응형
axon framework는 axon server와 axon framework가 있다.
axon framework 에서 이벤트 소싱이 발생될 때, axon-server가 아닌, 카프카나 외부 모듈을 사용할 수 있는데,
우선은 해당 axon-framework와, axon-sever를 통해서 진행해보자
axon framework의 아키텍처는 아래와 같다.
대게는 데이터를 변경하는 Command Event와, 조회용 Query에 대한 저장소가 분리 되어있다.
커맨드를 날리게 되면, 해당 Command Handling Component가 받아서, 처리를 한다.
처리 중에 외부 저장소에 영속이 필요한 경우 persist 작업을 거치고, 이러한 변화에 대한 이벤트를 이벤트 핸들링 Component가 받아 처리하는 방식이다.
그냥 CQRS의 구조이다.
1. axon-server 설치
docker run -d --name axonserver -p 8024:8024 -p 8124:8124 axoniq/axonserver
해당 Command를 사용하여, axonserver를 띄운다. 8024는 웹에서 스토어 상태를 볼수 있는 admin포트이고,
8124포트는 메시지를 주고받는 포트이다.
2. 프로세스 확인
3. 8024 웹사이트 확인
4. Gradle 의존성 추가
ext {
axonVersion ="4.5.8"
}
implementation 'org.axonframework:axon-spring-boot-starter:4.5.8'
implementation 'org.axonframework:axon-configuration:4.5.8'
5. application.yml axon server 연동
server:
port: 5000
axon:
serializer:
general: xstream
axonserver:
servers: 127.0.0.1:8124
6. 메인 클래스에, 핸들러 빈 추가
package com.smith.PqrsFramework;
import org.axonframework.commandhandling.CommandHandler;
import org.axonframework.eventhandling.EventHandler;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@SpringBootApplication
public class PqrsFrameworkApplication {
public static void main(String[] args) {
SpringApplication.run(PqrsFrameworkApplication.class, args);
}
@CommandHandler
protected void commandhandle(Object object){}
@EventHandler
public void eventhandle(Object object){}
}
7.Axon Server, 해당 앱 연결 확인
우선 이렇게 하면, 간단하게 설정이 끝난다.
다음에는 해당 소스를 기준으로 변경 및 디벨롭을 해보자
반응형
'Develop > [DDD]' 카테고리의 다른 글
[DDD] 헥사고날 아키텍처, 클린 아키텍처 (0) | 2023.06.08 |
---|---|
[DDD] 레이어드 아키텍처 (0) | 2023.06.08 |
[DDD] 도메인 모델 패턴 , Aggregate 모델링(1) (0) | 2023.05.22 |
[DDD] 액티브 레코드 패턴 (0) | 2023.05.22 |
[DDD] 트랜잭션 스크립트 패턴 (0) | 2023.05.22 |