일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- spring
- CI
- spring kafka
- cd
- kafka
- topic생성
- Entity
- Spring JPA
- API
- CodePipeline
- Spring Data JPA
- offsetdatetime
- transactionaleventlistener
- PAGING
- AWS
- centos7
- mysql
- git
- Kubernetes
- QueryDSL
- ECS
- consumer
- Streams
- bean
- producer
- JPA
- K8s
- mirror maker2
- Kotlin
- entity graph
- Today
- Total
목록전체 글 (100)
Yebali

회사에서 테스트 코드를 병렬 처리 설정을 넣고 Codebuild를 돌렸더니 아래처럼 에러가 발생했다. 심지어 매번 돌릴 때마다 결과가 달라져 동시성 문제인 것을 예상할 수 있었다. 문제의 테스트 코드 @ExtendWith(MockKExtension::class) class TestServiceTest { ... @InjectMockKs private lateinit var service: TestService @BeforeEach fun initTest() { // for LocalDate.now() Mocking mockkStatic(LocalDate::class) ... } @Test fun Test_A() { ... every { LocalDate.now(ZoneOffset.ofHours(9)) }..

아래 글은 EC2, Linux2에서 설정한 내용으로 환경이 다르다면 다소 상이할 수 있음. Jenkins 설치하기 jenkins를 사용하기 위해서는 java가 설치되어 있어야 한다. 없다면 아래 명령어로 설치. $ sudo yum install java-11-amazon-corretto Jenkins 설치 $ sudo wget -O /etc/yum.repos.d/jenkins.repo https://pkg.jenkins.io/redhat-stable/jenkins.repo $ sudo rpm --import https://pkg.jenkins.io/redhat-stable/jenkins.io.key $ yum install -y jenkins Jenkins 설정 jenkins는 기본적으로 8080 포트를..

카프카 스트림즈는 토픽에 적재된 데이터를 실시간으로 변환하여 다른 토픽에 적재하는 라이브러리이다. '정확히 한번 전달', '장애 허용 시스템'등 데이터 처리 안정성이 매우 뛰어나 카프카 클러스터를 운영하면서 실시간 스트림 처리를 해야 한다면 카프카 스트림즈를 1순위로 고려하는 것을 권장하고 있다. 예제에서 만들어볼 카프카 스트림즈는 0~9 사이의 임의의 숫자들이 적재된 'random.number' 토픽으로부터 메시지를 읽어 5보다 큰 숫자들만 'over5.number' 토픽에 적재하는 기능을 하는 스트림즈 애플리케이션이다. 토픽 생성하기 bin/kafka-topics.sh \ --create \ --bootstrap-server 13.124.252.159:9092 \ --partitions 3 \ --t..

카프카를 실습하기 위한 간단한 프로듀서와 컨슈머를 만들어서 실험해보자. 토픽 만들기 3개의 파티션을 가진 'test'라는 이름의 토픽을 생성한다. bin/kafka-topics.sh \ --create \ --bootstrap-server 13.124.252.159:9092 \ --partitions 3 \ --topic test 프로듀서 Kotlin프로젝트를 새로 만들어 아래 의존성을 추가해준다. dependencies { implementation("org.apache.kafka:kafka-clients:2.8.1") implementation("org.slf4j:slf4j-simple:1.7.35") testImplementation(kotlin("test")) } "testMessage"라는 메시..

카프카의 토픽을 삭제하는 것은 주키퍼에 있는 해당 토픽의 파일, 디렉토리를 삭제하는 것을 말한다. 일반적으로 알려진 토픽 삭제 방법인 kafka-topics.sh을 이용해서 토픽을 삭제하면 'already marked for deletion'이라는 메시지만 나타나고 정상적으로 삭제가 안 된다. 이 경우 다시 토픽을 생성할 수도 없으며 해당 토픽으로 들어온 메시지도 처리가 안 된다. 사전작업 카프카 설정 파일인 'config/server.properties'에 'delete.topic.enable=true' 설정을 추가한다. 해당 설정을 추가하고 카프카를 재시작 해준다. bin/kafka-server-stop.sh # 카프카 중단 bin/kafka-server-start.sh -daemon config/s..

토픽에 설정된 옵션을 변경하기 위해서는 'kafka-topics.sh'와 'kafka-configs.sh' 두 개를 사용해야 한다. 파티션 개수를 변경하려면 'kafka-topics.sh'를 사용해야 하고, 토픽 삭제 책인 리텐션 기간을 변경하려면 'kafka-configs.sh'를 사용해야 한다. 파티션의 개수 변경하기 'kafka-topics.sh'를 사용해 파티션의 개수를 4개로 변경하려면 아래의 명령어를 사용해야 한다. bin/kafka-topics.sh \ --bootstrap-server=13.124.252.159:9092 \ --topic hello.kafka2 \ --alter \ --partitions 4 파티션의 리텐션 기간 변경하기 리텐션 기간을 172800000ms(2일)에서 864..