본 포스팅은 패스트캠퍼스 환급 챌린지 참여를 위해 작성하였습니다.
https://bit.ly/4hTSJNB


I. 학습 인증샷 4장 이상 포함

1. 공부시작: 날짜, 시각 다 나오도록

공부 시작

2. 공부 종료: 날짜 시각 다 나오도록

공부 종료

3. 1개 클립 수강 (강의장 목록 캡쳐, 수강화면이 보이지 않도록) 1장

clip33 실습이다.

4. 학습 인증샷 1장(필기 촬영이나 작업물 촬영)

강사님 설명대로 저장소 clone후 open, release branch라 이게 최종 완성본의 모습인가보다


II. 학습 후기 700자 이상 (공백 제외)

실습이다~!

요약

 저장소 clone

  • 저장소를 fork한후 clone
# repo clone
Cloning into 'fastcampus-kafka-message-queue'...
remote: Enumerating objects: 533, done.
remote: Counting objects: 100% (58/58), done.
remote: Compressing objects: 100% (15/15), done.
remote: Total 533 (delta 46), reused 43 (delta 43), pack-reused 475 (from 1)
Receiving objects: 100% (533/533), 1.16 MiB | 1.15 MiB/s, done.
Resolving deltas: 100% (172/172), done.
ahn@Ahns-m1Pro14 rkaehdaos %

Docker  Compose 이미지 다운로드

  • 이미지 미리 다운로드 -  pull
# 도커 이미지 다운로드
ahn@Ahns-m1Pro14 fastcampus-kafka-message-queue % docker compose pull
WARN[0000] /Users/ahn/dev/repo/rkaehdaos/fastcampus-kafka-message-queue/docker-compose.yml: the attribute `version` is obsolete, it will be ignored, please remove it to avoid potential confusion
[+] Pulling 5/42
 ✔ kafka1 Skipped - Image is already being pulled by kafka3                0.0s
 ✔ kafka2 Skipped - Image is already being pulled by kafka3                0.0s
 ⠧ zookeeper [⠀] Pulling                                                  21.8s
 ⠧ cmak [⣄⣶⣿⣿⣿⠀⠀] Pulling                                                 21.8s
 ⠧ redpanda-console [⠀⠀⠀⠀⠀⠀⠀] Pulling                                     21.8s
 ⠧ kafka3 [⠀] Pulling                                                     21.8s
 ⠧ kafka-ui [⠀⠀⠀⠀⠀⠀⠀] Pulling                                             21.8s
 ⠧ mysql [⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀] Pulling                                            21.8s

2 docker 관련 커맨드

  • docker compose up -d
    • compose 환경 올리기
    • -d 옵션은 background 옵션
      • 필요할때만 로그를 보도록 하자
ahn@Ahns-m1Pro14 fastcampus-kafka-message-queue % docker compose up -d
WARN[0000] /Users/ahn/dev/repo/rkaehdaos/fastcampus-kafka-message-queue/docker-compose.yml: the attribute `version` is obsolete, it will be ignored, please remove it to avoid potential confusion
[+] Running 8/8
 ✔ Container mysql             Running                                                                                                                                                                           0.0s
 ✔ Container zookeeper         Running                                                                                                                                                                           0.0s
 ✔ Container kafka1            Running                                                                                                                                                                           0.0s
 ✔ Container kafka3            Running                                                                                                                                                                           0.0s
 ✔ Container kafka2            Running                                                                                                                                                                           0.0s
 ✔ Container cmak              Running                                                                                                                                                                           0.0s
 ✔ Container kafka-ui          Running                                                                                                                                                                           0.0s
 ✔ Container redpanda-console  Running                                                                                                                                                                           0.0s
ahn@Ahns-m1Pro14 fastcampus-kafka-message-queue %
  • docker compose down
    • 환경 내리기
    • 실습 끝나면 실행
ahn@Ahns-m1Pro14 fastcampus-kafka-message-queue % docker compose down
WARN[0000] /Users/ahn/dev/repo/rkaehdaos/fastcampus-kafka-message-queue/docker-compose.yml: the attribute `version` is obsolete, it will be ignored, please remove it to avoid potential confusion
[+] Running 9/9
 ✔ Container mysql                                 Removed                                                                                                                                                       1.3s
 ✔ Container cmak                                  Removed                                                                                                                                                       0.6s
 ✔ Container redpanda-console                      Removed                                                                                                                                                       0.2s
 ✔ Container kafka-ui                              Removed                                                                                                                                                       2.3s
 ✔ Container kafka1                                Removed                                                                                                                                                       1.0s
 ✔ Container kafka2                                Removed                                                                                                                                                       5.9s
 ✔ Container kafka3                                Removed                                                                                                                                                       1.0s
 ✔ Container zookeeper                             Removed                                                                                                                                                       0.6s
 ✔ Network fastcampus-kafka-message-queue_default  Removed                                                                                                                                                       0.3s
ahn@Ahns-m1Pro14 fastcampus-kafka-message-queue %
  • docker ps
    • 컨테이너 리스트 
    • container id 를 확인가능
    •  
ahn@Mac study-kafka-message-queue % docker ps -a
CONTAINER ID   IMAGE                                             COMMAND                  CREATED          STATUS          PORTS                                                        NAMES
eddf825abbd0   provectuslabs/kafka-ui:v0.7.1                     "/bin/sh -c 'java --…"   25 seconds ago   Up 23 seconds   0.0.0.0:8081->8080/tcp                                       kafka-ui
2cd28ccba6aa   docker.redpanda.com/redpandadata/console:v2.3.7   "./console"              25 seconds ago   Up 23 seconds   0.0.0.0:8989->8080/tcp                                       redpanda-console
0487f9aaa9b0   hlebalbau/kafka-manager:3.0.0.5                   "/kafka-manager/bin/…"   25 seconds ago   Up 23 seconds   0.0.0.0:9000->9000/tcp                                       cmak
a62592fd749e   bitnami/kafka:3.6.0                               "/opt/bitnami/script…"   25 seconds ago   Up 23 seconds   9092/tcp, 0.0.0.0:9094->9094/tcp, 0.0.0.0:54745->19092/tcp   kafka3
9160af910160   bitnami/kafka:3.6.0                               "/opt/bitnami/script…"   25 seconds ago   Up 23 seconds   0.0.0.0:9092->9092/tcp, 0.0.0.0:54742->19092/tcp             kafka1
005918c311ce   bitnami/kafka:3.6.0                               "/opt/bitnami/script…"   25 seconds ago   Up 23 seconds   9092/tcp, 0.0.0.0:9093->9093/tcp, 0.0.0.0:54746->19092/tcp   kafka2
db515dd6ee89   mysql:8.0.35                                      "docker-entrypoint.s…"   25 seconds ago   Up 23 seconds   0.0.0.0:3306->3306/tcp, 33060/tcp                            mysql
619b243ab294   bitnami/zookeeper:3.7.2                           "/opt/bitnami/script…"   25 seconds ago   Up 23 seconds   2888/tcp, 3888/tcp, 0.0.0.0:2181->2181/tcp, 8080/tcp         zookeeper
ahn@Mac study-kafka-message-queue %
  • docker logs {컨테이너id}
    • 특정 컨테이너 id를 지정해서 로그를 볼 수 있다.
# ex) docker ui 컨테이너의 로그 보기
ahn@Mac study-kafka-message-queue % docker logs eddf825abbd0
02:08:12,807 |-INFO in ch.qos.logback.classic.LoggerContext[default] - This is logback-classic version 1.4.7
02:08:12,834 |-INFO in ch.qos.logback.classic.LoggerContext[default] - Could NOT find resource [logback-test.xml]
02:08:12,834 |-INFO in ch.qos.logback.classic.LoggerContext[default] - Could NOT find resource [logback.xml]
02:08:12,841 |-INFO in ch.qos.logback.classic.BasicConfigurator@e15b7e8 - Setting up default configuration.
02:08:13,700 |-INFO in ch.qos.logback.core.joran.spi.ConfigurationWatchList@1b2abca6 - URL [jar:file:/kafka-ui-api.jar!/BOOT-INF/classes!/logback-spring.xml] is not of type file
02:08:13,824 |-INFO in ch.qos.logback.core.model.processor.AppenderModelHandler - Processing appender named [STDOUT]
02:08:13,824 |-INFO in ch.qos.logback.core.model.processor.AppenderModelHandler - About to instantiate appender of type [ch.qos.logback.core.ConsoleAppender]
02:08:13,859 |-WARN in ch.qos.logback.core.ConsoleAppender[STDOUT] - This appender no longer admits a layout as a sub-component, set an encoder instead.
02:08:13,859 |-WARN in ch.qos.logback.core.ConsoleAppender[STDOUT] - To ensure compatibility, wrapping your layout in LayoutWrappingEncoder.
02:08:13,859 |-WARN in ch.qos.logback.core.ConsoleAppender[STDOUT] - See also http://logback.qos.ch/codes.html#layoutInsteadOfEncoder for details
02:08:13,860 |-INFO in ch.qos.logback.classic.model.processor.RootLoggerModelHandler - Setting level of ROOT logger to INFO
02:08:13,860 |-INFO in ch.qos.logback.classic.jul.LevelChangePropagator@6392827e - Propagating INFO level on Logger[ROOT] onto the JUL framework
02:08:13,860 |-INFO in ch.qos.logback.core.model.processor.AppenderRefModelHandler - Attaching appender named [STDOUT] to Logger[ROOT]
02:08:13,860 |-INFO in ch.qos.logback.core.model.processor.DefaultProcessor@2ed2d9cb - End of configuration.
02:08:13,860 |-INFO in org.springframework.boot.logging.logback.SpringBootJoranConfigurator@d5b810e - Registering current configuration as safe fallback point

 _   _ ___    __             _                _          _  __      __ _
| | | |_ _|  / _|___ _ _    /_\  _ __ __ _ __| |_  ___  | |/ /__ _ / _| |_____
| |_| || |  |  _/ _ | '_|  / _ \| '_ / _` / _| ' \/ -_) | ' </ _` |  _| / / _`|
 \___/|___| |_| \___|_|   /_/ \_| .__\__,_\__|_||_\___| |_|\_\__,_|_| |_\_\__,|
                                 |_|                                             

2025-04-07 02:08:13,919 INFO  [background-preinit] o.h.v.i.u.Version: HV000001: Hibernate Validator 8.0.0.Final
2025-04-07 02:08:14,022 INFO  [main] c.p.k.u.KafkaUiApplication: Starting KafkaUiApplication using Java 17.0.6 with PID 1 (/kafka-ui-api.jar started by kafkaui in /)
2025-04-07 02:08:14,022 DEBUG [main] c.p.k.u.KafkaUiApplication: Running with Spring Boot v3.0.6, Spring v6.0.8
2025-04-07 02:08:14,023 INFO  [main] c.p.k.u.KafkaUiApplication: No active profile set, falling back to 1 default profile: "default"
2025-04-07 02:08:16,472 DEBUG [main] c.p.k.u.s.SerdesInitializer: Configuring serdes for cluster local
2025-04-07 02:08:16,949 INFO  [main] o.s.b.a.e.w.EndpointLinksResolver: Exposing 2 endpoint(s) beneath base path '/actuator'
2025-04-07 02:08:16,979 INFO  [main] o.s.b.a.s.r.ReactiveUserDetailsServiceAutoConfiguration: 

Using generated security password: ea329ee7-fe3f-4a3a-a2d1-6ca6a90572fb

2025-04-07 02:08:17,107 WARN  [main] c.p.k.u.c.a.DisabledAuthSecurityConfig: Authentication is disabled. Access will be unrestricted.
2025-04-07 02:08:17,378 INFO  [main] o.s.b.w.e.n.NettyWebServer: Netty started on port 8080
2025-04-07 02:08:17,401 INFO  [main] c.p.k.u.KafkaUiApplication: Started KafkaUiApplication in 4.307 seconds (process running for 5.057)
2025-04-07 02:08:18,006 DEBUG [parallel-2] c.p.k.u.s.ClustersStatisticsScheduler: Start getting metrics for kafkaCluster: local
2025-04-07 02:08:18,012 INFO  [parallel-2] o.a.k.c.a.AdminClientConfig: AdminClientConfig values: 
        bootstrap.servers = [kafka1:19092, kafka2:19092, kafka3:19092]
        client.dns.lookup = use_all_dns_ips
        client.id = kafka-ui-admin-1743991698-1
        connections.max.idle.ms = 300000
        default.api.timeout.ms = 60000
        metadata.max.age.ms = 300000
        metric.reporters = []
        metrics.num.samples = 2
        metrics.recording.level = INFO
        metrics.sample.window.ms = 30000
        receive.buffer.bytes = 65536
        reconnect.backoff.max.ms = 1000
        reconnect.backoff.ms = 50
        request.timeout.ms = 30000
        retries = 2147483647
        retry.backoff.ms = 100
        sasl.client.callback.handler.class = null
        sasl.jaas.config = null
        sasl.kerberos.kinit.cmd = /usr/bin/kinit
        sasl.kerberos.min.time.before.relogin = 60000
        sasl.kerberos.service.name = null
        sasl.kerberos.ticket.renew.jitter = 0.05
        sasl.kerberos.ticket.renew.window.factor = 0.8
        sasl.login.callback.handler.class = null
        sasl.login.class = null
        sasl.login.connect.timeout.ms = null
        sasl.login.read.timeout.ms = null
        sasl.login.refresh.buffer.seconds = 300
        sasl.login.refresh.min.period.seconds = 60
        sasl.login.refresh.window.factor = 0.8
        sasl.login.refresh.window.jitter = 0.05
        sasl.login.retry.backoff.max.ms = 10000
        sasl.login.retry.backoff.ms = 100
        sasl.mechanism = GSSAPI
        sasl.oauthbearer.clock.skew.seconds = 30
        sasl.oauthbearer.expected.audience = null
        sasl.oauthbearer.expected.issuer = null
        sasl.oauthbearer.jwks.endpoint.refresh.ms = 3600000
        sasl.oauthbearer.jwks.endpoint.retry.backoff.max.ms = 10000
        sasl.oauthbearer.jwks.endpoint.retry.backoff.ms = 100
        sasl.oauthbearer.jwks.endpoint.url = null
        sasl.oauthbearer.scope.claim.name = scope
        sasl.oauthbearer.sub.claim.name = sub
        sasl.oauthbearer.token.endpoint.url = null
        security.protocol = PLAINTEXT
        security.providers = null
        send.buffer.bytes = 131072
        socket.connection.setup.timeout.max.ms = 30000
        socket.connection.setup.timeout.ms = 10000
        ssl.cipher.suites = null
        ssl.enabled.protocols = [TLSv1.2, TLSv1.3]
        ssl.endpoint.identification.algorithm = https
        ssl.engine.factory.class = null
        ssl.key.password = null
        ssl.keymanager.algorithm = SunX509
        ssl.keystore.certificate.chain = null
        ssl.keystore.key = null
        ssl.keystore.location = null
        ssl.keystore.password = null
        ssl.keystore.type = JKS
        ssl.protocol = TLSv1.3
        ssl.provider = null
        ssl.secure.random.implementation = null
        ssl.trustmanager.algorithm = PKIX
        ssl.truststore.certificates = null
        ssl.truststore.location = null
        ssl.truststore.password = null
        ssl.truststore.type = JKS

2025-04-07 02:08:18,045 INFO  [parallel-2] o.a.k.c.u.AppInfoParser: Kafka version: 3.3.1
2025-04-07 02:08:18,045 INFO  [parallel-2] o.a.k.c.u.AppInfoParser: Kafka commitId: e23c59d00e687ff5
2025-04-07 02:08:18,045 INFO  [parallel-2] o.a.k.c.u.AppInfoParser: Kafka startTimeMs: 1743991698044
2025-04-07 02:08:18,279 DEBUG [parallel-10] c.p.k.u.s.ClustersStatisticsScheduler: Metrics updated for cluster: local
2025-04-07 02:08:47,419 DEBUG [parallel-1] c.p.k.u.s.ClustersStatisticsScheduler: Start getting metrics for kafkaCluster: local
2025-04-07 02:08:47,460 DEBUG [parallel-6] c.p.k.u.s.ClustersStatisticsScheduler: Metrics updated for cluster: local
2025-04-07 02:09:17,405 DEBUG [parallel-7] c.p.k.u.s.ClustersStatisticsScheduler: Start getting metrics for kafkaCluster: local
2025-04-07 02:09:17,437 DEBUG [parallel-2] c.p.k.u.s.ClustersStatisticsScheduler: Metrics updated for cluster: local
2025-04-07 02:09:47,407 DEBUG [parallel-3] c.p.k.u.s.ClustersStatisticsScheduler: Start getting metrics for kafkaCluster: local
2025-04-07 02:09:47,453 DEBUG [parallel-8] c.p.k.u.s.ClustersStatisticsScheduler: Metrics updated for cluster: local
ahn@Mac study-kafka-message-queue %
  • docker compose exec {컨테이너 서비스명} {컨테이너 안에서 실행할 명령어}
    • 특정 컨테이너 내부에서 명령어 실행 하기
    • error 발생 
ahn@Mac study-kafka-message-queue % docker compose exec kafka1 kafka-topics.sh --create --topic my-topic --bootstrap-server localhost:9092,localhost:9093,localhost:9094 --replication-factor 1 --partitions 1

[2025-04-07 03:31:03,427] WARN [AdminClient clientId=adminclient-1] Connection to node 3 (localhost/127.0.0.1:9094) could not be established. Broker may not be available. (org.apache.kafka.clients.NetworkClient)

[2025-04-07 03:31:03,428] WARN [AdminClient clientId=adminclient-1] Connection to node 2 (localhost/127.0.0.1:9093) could not be established. Broker may not be available. (org.apache.kafka.clients.NetworkClient)

해당 부분은 수정 후 패캠 커뮤니티에 올렸다. (나같은 삽질 하지말라고.. ㅋㅋ)

https://fastcampus.co.kr/community/100810

 

파트2 에서 topic 안만들어지시는 분들.(특히 맥) | 패스트캠퍼스

패스트캠퍼스 커뮤니티 | 질문/답변

fastcampus.co.kr

 

 

아 실습.. 기쁘다..

 

블로그 이미지

감동맨

rkaehdaos의 블로그

,