docs: README 가독성 개선을 위한 headline 크기 수정 및 구분선 추가
This commit is contained in:
parent
8e6cc52bdd
commit
e5d00d3737
34
README.md
34
README.md
@ -5,9 +5,9 @@
|
|||||||
> 현재는 글을 작성중이기에 아직은 페이지가 나오지 않습니다!
|
> 현재는 글을 작성중이기에 아직은 페이지가 나오지 않습니다!
|
||||||
>
|
>
|
||||||
|
|
||||||
### 개요
|
## 개요
|
||||||
|
|
||||||
#### 배경
|
### 배경
|
||||||
|
|
||||||
이전의 글인 [Kafka Selector: NetworkReceive / Application Buffer for SSL](https://blog.pricelees.me/kafka-selector-4/) 마무리
|
이전의 글인 [Kafka Selector: NetworkReceive / Application Buffer for SSL](https://blog.pricelees.me/kafka-selector-4/) 마무리
|
||||||
부분에서 언급한 다음의 내용을 테스트합니다.
|
부분에서 언급한 다음의 내용을 테스트합니다.
|
||||||
@ -17,7 +17,9 @@
|
|||||||
|
|
||||||
테스트 결과는 Kafka Selector에서 측정되는 메트릭을 기반으로 분석하며, Selector 메트릭 중 일부 메트릭이 '어떻게' 측정되는지 함께 알아봅니다.
|
테스트 결과는 Kafka Selector에서 측정되는 메트릭을 기반으로 분석하며, Selector 메트릭 중 일부 메트릭이 '어떻게' 측정되는지 함께 알아봅니다.
|
||||||
|
|
||||||
#### 테스트 과정
|
<br/>
|
||||||
|
|
||||||
|
### 테스트 과정
|
||||||
|
|
||||||
1. **1개의 Controller, 3개의 Broker 구조의 KRaft 모드**로 실행합니다.
|
1. **1개의 Controller, 3개의 Broker 구조의 KRaft 모드**로 실행합니다.
|
||||||
2. **3개의 워커 스레드를 사용하는 1개의 컨슈머 애플리케이션**을 실행합니다. 컨슈머 애플리케이션은 Spring Kafka를 사용하지 않고, **SpringBoot + Apache Kafka Client로 구현**하였습니다.
|
2. **3개의 워커 스레드를 사용하는 1개의 컨슈머 애플리케이션**을 실행합니다. 컨슈머 애플리케이션은 Spring Kafka를 사용하지 않고, **SpringBoot + Apache Kafka Client로 구현**하였습니다.
|
||||||
@ -29,16 +31,20 @@
|
|||||||
|
|
||||||
- 각 토픽에 들어가는 레코드는 수정할 수 있습니다. (방법은 아래에 작성합니다.)
|
- 각 토픽에 들어가는 레코드는 수정할 수 있습니다. (방법은 아래에 작성합니다.)
|
||||||
|
|
||||||
### 환경
|
---
|
||||||
|
|
||||||
|
## 환경
|
||||||
|
|
||||||
- **주의: 테스트 실행 전 java, docker 설치는 반드시 되어있어야 합니다.**
|
- **주의: 테스트 실행 전 java, docker 설치는 반드시 되어있어야 합니다.**
|
||||||
- Java 17 + Springboot 3.5.3 + Apache Kafka Client 3.9.0 버전을 사용하며, 모든 애플리케이션은 Docker 컨테이너에서 실행됩니다.
|
- Java 17 + Springboot 3.5.3 + Apache Kafka Client 3.9.0 버전을 사용하며, 모든 애플리케이션은 Docker 컨테이너에서 실행됩니다.
|
||||||
- 모든 카프카 설정(max-poll-records 등)은 `src/main/resources/application.yml`에서 확인하실 수 있으며, 수정 역시 가능합니다.
|
- 모든 카프카 설정(max-poll-records 등)은 `src/main/resources/application.yml`에서 확인하실 수 있으며, 수정 역시 가능합니다.
|
||||||
- **MacOS**(Macbook M1 pro) 및 **Ubuntu(24.04 LTS)** **환경에서는 정상 동작**함을 확인하였습니다.
|
- **MacOS**(Macbook M1 pro) 및 **Ubuntu(24.04 LTS)** **환경에서는 정상 동작**함을 확인하였습니다.
|
||||||
|
|
||||||
### 실행 방법
|
---
|
||||||
|
|
||||||
#### 사용 포트
|
## 실행 방법
|
||||||
|
|
||||||
|
### 사용 포트
|
||||||
|
|
||||||
테스트를 진행하기 전에, 아래의 포트가 사용중인지 확인이 필요합니다.
|
테스트를 진행하기 전에, 아래의 포트가 사용중인지 확인이 필요합니다.
|
||||||
|
|
||||||
@ -46,7 +52,9 @@
|
|||||||
2. Kafka에서는 **7071**, **7072**, **7073**, **29092**, **29093**, **39092**, **39093**, **49092**, **49093** 포트를 사용합니다.
|
2. Kafka에서는 **7071**, **7072**, **7073**, **29092**, **29093**, **39092**, **39093**, **49092**, **49093** 포트를 사용합니다.
|
||||||
3. Grafana는 **3000**, Prometheus는 **9090**, Kafka UI는 **8000** 포트를 사용합니다.
|
3. Grafana는 **3000**, Prometheus는 **9090**, Kafka UI는 **8000** 포트를 사용합니다.
|
||||||
|
|
||||||
#### 테스트에 사용되는 레코드 수 수정
|
<br/>
|
||||||
|
|
||||||
|
### 테스트에 사용되는 레코드 수 수정
|
||||||
`org.study.consumerssl.data.TestUtils` 클래스의 아래 값을 수정하여 레코드 수를 조정할 수 있습니다. 제 환경에서는 300만개의 레코드를 추가할 때 평균 10초 정도 소요됩니다.
|
`org.study.consumerssl.data.TestUtils` 클래스의 아래 값을 수정하여 레코드 수를 조정할 수 있습니다. 제 환경에서는 300만개의 레코드를 추가할 때 평균 10초 정도 소요됩니다.
|
||||||
|
|
||||||
```java
|
```java
|
||||||
@ -56,7 +64,9 @@ public class TestUtils {
|
|||||||
}
|
}
|
||||||
```
|
```
|
||||||
|
|
||||||
#### 실행 - 본문의 내용과 동일한 환경
|
<br/>
|
||||||
|
|
||||||
|
### 실행 - 본문의 내용과 동일한 환경
|
||||||
|
|
||||||
아래의 자동화 스크립트(./run.sh)를 실행하여 본문의 내용과 동일한 테스트를 실행할 수 있습니다. 시간은 제 환경에서는 7분정도 소요됩니다.
|
아래의 자동화 스크립트(./run.sh)를 실행하여 본문의 내용과 동일한 테스트를 실행할 수 있습니다. 시간은 제 환경에서는 7분정도 소요됩니다.
|
||||||
|
|
||||||
@ -71,13 +81,15 @@ cd understanding-kafka-consumer
|
|||||||
|
|
||||||

|

|
||||||
|
|
||||||
### 출처 및 상세 내용
|
---
|
||||||
|
|
||||||
#### JMX Metrics
|
## 출처 및 상세 내용
|
||||||
|
|
||||||
|
### JMX Metrics
|
||||||
1. Kafka Client 에서 사용하는 jmx 메트릭 설정 파일은 https://blog.voidmainvoid.net/476 의 내용과 동일합니다.
|
1. Kafka Client 에서 사용하는 jmx 메트릭 설정 파일은 https://blog.voidmainvoid.net/476 의 내용과 동일합니다.
|
||||||
2. Kafka Broker 에서 사용하는 jmx 메트릭 설정 파일은 https://github.com/oded-dd/prometheus-jmx-kafka/tree/master 의 내용과 동일합니다.
|
2. Kafka Broker 에서 사용하는 jmx 메트릭 설정 파일은 https://github.com/oded-dd/prometheus-jmx-kafka/tree/master 의 내용과 동일합니다.
|
||||||
|
|
||||||
#### Grafana Dashboard
|
### Grafana Dashboard
|
||||||
1. 컨슈머 대시보드는 [Redpanda Kafka Java Consumer](https://grafana.com/grafana/dashboards/18133-kafka-java-consumer/) 를 바탕으로 현재 환경에 맞게 수정하였으며, **"Selector Metrics"** 카테고리의 대시보드는 직접 구성하였습니다.
|
1. 컨슈머 대시보드는 [Redpanda Kafka Java Consumer](https://grafana.com/grafana/dashboards/18133-kafka-java-consumer/) 를 바탕으로 현재 환경에 맞게 수정하였으며, **"Selector Metrics"** 카테고리의 대시보드는 직접 구성하였습니다.
|
||||||
2. 본문에서 다루지는 않을 예정이나, Springboot 대시보드는 [Spring Boot 2.1 System Monitor](https://grafana.com/grafana/dashboards/11378-justai-system-monitor/), Kafka Producer 대시보드는 [Redpanda Kafka Java Producer](https://grafana.com/grafana/dashboards/22164-kafka-producer-metrics/) 를 바탕으로 현재 환경에서 동작하도록 일부 수정하였습니다.
|
2. 본문에서 다루지는 않을 예정이나, Springboot 대시보드는 [Spring Boot 2.1 System Monitor](https://grafana.com/grafana/dashboards/11378-justai-system-monitor/), Kafka Producer 대시보드는 [Redpanda Kafka Java Producer](https://grafana.com/grafana/dashboards/22164-kafka-producer-metrics/) 를 바탕으로 현재 환경에서 동작하도록 일부 수정하였습니다.
|
||||||
|
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user