묻고 답해요
141만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결카프카 완벽 가이드 - 코어편
Idempotence 관련 질문 드립니다.
안녕하세요,좋은 강의 만들어주셔서 감사합니다.Idempotence 관련해서 보다가 궁금한게 있어서 문의 드립니다.Idempotence를 사용하면 Producer에서 전송된 Broker로 전송 시 메시지 전송 순서가 유지가 된다고 하셨는데,파티션된 토픽에 대해서는 어떻게 되는지 궁금합니다.파티션 내에서만 순서가 유지되는 걸까요? 파티션이 3개로 된 토픽의 경우는 10개의 메시지가 전달 될 때 10개의 메시지가 쪼개져서 파티션별로 데이터가 들어갈텐데 그렇게 되면 전체 토픽에 대해서 순서 유지가 안되지 않을까해서 질문 드렸습니다. 감사합니다.
-
해결됨Backend 멀티쓰레드 이해하고 통찰력 키우기
혹시 학습한 내용을 블로그에 정리해도 될까요?
어떤 형식이던지 괜찮습니다.자유롭게 질문해 주세요~내용은 자세할수록 좋습니다~ 안녕하세요 강의 정말 잘 들었습니다.실례가 안 된다면 강의를 들으며 학습한 내용을 블로그에 포스팅해도 괜찮을지 궁금합니다.물론 출처는 반드시 밝히겠습니다. 혹시나 질문이 불편하게 느껴지셨다면 죄송합니다!!
-
미해결카프카 완벽 가이드 - 코어편
Partition에 할당된 Batch Buffer
안녕하세요강의 잘 듣고 있습니다."Kafka Producer의 send() 메소드 호출 프로세스" 장표에 묘사된 Batch 관련해서 의견 남깁니다. 강의 중반부터 나오듯이 각 Batch 버퍼는 Partition과 1대1 대응하도록 되어있는데, 해당 장표에서는 Partition#1 안에 여러개의 배치가 존재할 수 있는 것처럼 되어 있어 혼동이 생길 수 있어 보입니다. Partition#1에 갈 Message는 Batch#1에만 적재되어야하므로 그림 상 P#1 안에는 B#1만 있는 것이 맞지 않을까요? 만약 제가 의도와는 다르게 이해한 것이라면, 간략한 설명 덧붙여주시면 감사하겠습니다.
-
해결됨Spring Cloud로 개발하는 마이크로서비스 애플리케이션(MSA)
prometheus image 실행 시 에러가 발생합니다.
2024-01-02 15:45:16 ts=2024-01-02T06:45:16.877Z caller=main.go:487 level=error msg="Error loading config (--config.file=/etc/prometheus/prometheus.yml)" file=/etc/prometheus/prometheus.yml err="open /etc/prometheus/prometheus.yml: operation not permitted어떻게 해결해야할까요...?
-
미해결Spring Cloud로 개발하는 마이크로서비스 애플리케이션(MSA)
boot3 설정
spring boot3 에서 slueth를 사용할 수 없다고 합니다. 삽질 끝에 비슷하게 구현이 되긴 했는데 조금 다른 점 때문에 강사님이 의도하신바가 맞는지 정확히는 모르겠네요.첫 요청의 traceID와 spanID가 다른 점혹~시 필요하신분이 계시다면 참고해주세요!추가의존성 <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-actuator</artifactId> </dependency> <dependency> <groupId>io.micrometer</groupId> <artifactId>micrometer-tracing-bridge-brave</artifactId> </dependency> <dependency> <groupId>io.zipkin.reporter2</groupId> <artifactId>zipkin-reporter-brave</artifactId> </dependency> <dependency> <groupId>io.micrometer</groupId> <artifactId>micrometer-registry-prometheus</artifactId> </dependency> <dependency> <groupId>io.github.openfeign</groupId> <artifactId>feign-micrometer</artifactId> </dependency>기존 스타터 sleuth, zipkin 의존성 제거yml 변경점server: port: 0 spring: application: name: order-service # spring boot 3.0 이전 zipkin, sleuth 설정 # zipkin: # base-url: http://127.0.0.1:9411 # enabled: true # sleuth: # sampler: # probability: 1.0 jpa: hibernate: ddl-auto: update h2: console: enabled: true settings: web-allow-others: true path: /h2-console datasource: driverClassName: org.h2.Driver url: jdbc:h2:mem:testdb ## 추가 cloud: openfeign: micrometer: enabled: true eureka: instance: instance-id: ${spring.cloud.client.hostname}:${spring.application.instance_id:${random.value}} client: register-with-eureka: true fetch-registry: true service-url: defaultZone: http://localhost:8761/eureka management: endpoint: health: show-details: always endpoints: web: exposure: include: refresh, health, beans, busrefresh, info, metrics, prometheus ## 추가 tracing: sampling: probability: 1.0 propagation: type: b3 zipkin: tracing: endpoint: http://localhost:9411/api/v2/spans logging: level: com.example.orderservice: DEBUG ## 추가 pattern: level: "%5p [%X{traceId:-},%X{spanId:-}]"추가 주석 부분만 추가Config Bean 추가@Configuration public class MoniterConfig { @Bean public Capability capability(final MeterRegistry registry) { return new MicrometerCapability(registry); } }이 Config 를 추가하지 않으시면, 요청 마다 TraceID가 달라집니다.액츄에이터도 필수 몇 가지 글을 참고하여 세팅한거라 몇몇 의존성이나 설정은 없어도 될수도 있지만 거의 필요한거 같습니다.그 외에 오류나 추적하는거는 동일하게 동작하는거 같습니다! 혹시 누군가 도움이 되시길!
-
미해결[아파치 카프카 애플리케이션 프로그래밍] 개념부터 컨슈머, 프로듀서, 커넥트, 스트림즈까지!
컨슈머 --partition 옵션
producer와 consumer는 리더 파티션과 통신해야한다고 알고 있었는데요, --partition 옵션으로 지정하는 파티션이 리더 파티션이 아닌 경우에도 메시지를 소비하는 것이 가능한것인가요?
-
미해결[아파치 카프카 애플리케이션 프로그래밍] 개념부터 컨슈머, 프로듀서, 커넥트, 스트림즈까지!
브로커가 여러개인 클러스터에서 토픽 생성
kafka topic을 생성할 때 broker 서버를 지정하는 것으로 보이는데요, broker 여러대로 구성된 클러스터에서 한 브로커 서버를 지정해서 파티션 10개의 토픽을 생성하고 토픽 정보를 describe로 확인하면 어떻게 되나요?10개의 파티션이 분산되어서 해당 브로커 서버의 파티션 개수는 일부만 찍히게 되는건가요?
-
미해결Spring Cloud로 개발하는 마이크로서비스 애플리케이션(MSA)
Custom Filter 적용2 수강중인데 CustomFilter클래스 apply가 호출이 안되네요.
CustomFilter 클래스는 기동될 때 로그로 찍어서 확인했는데 생성은 되는데 apply 함수가 호출이 안되네요. first ,second, apigateway 프로젝트 재빌드를 해도 호출이 안되네요. pre, post filter log가 호출이 안되는 이유가 무엇인가요?CustomFilter.java@Component @Slf4j public class CustomFilter extends AbstractGatewayFilterFactory<CustomFilter.Config> { public CustomFilter(){ super(Config.class); log.info("TEST TEST"); } @Override public GatewayFilter apply(final Config config) { log.info(" TEST 1 TEST 2"); // Custom Pre Filter return ((exchange, chain) -> { ServerHttpRequest request = exchange.getRequest(); ServerHttpResponse response = exchange.getResponse(); log.info("Custom PRE filter : request id -> {}", request.getId()); // Custom post Filter return chain.filter( exchange ).then(Mono.fromRunnable(() -> { log.info("Custom POST filter : response code -> {}", response.getStatusCode()); })); }) ; } public static class Config{ // put the configuration properties } }application.ymlserver: port: 8000 eureka: client: register-with-eureka: false fetch-registry: false service-url: defaultZone: http://localhost:8761/eureka spring: application: name: apigateway-service cloud: gateway: mvc: routes: - id: first-service uri: http://localhost:8081 predicates: - Path= /first-service/** filters: # - AddRequestHeader=first-request, first-request-header2 # - AddResponseHeader=first-response, first-response-header2 - CustomFilter - id: second-service uri: http://localhost:8082 predicates: - Path= /second-service/** filters: # - AddRequestHeader=second-request, second-request-header2 # - AddResponseHeader=second-response, second-response-header2 - CustomFilter apigateway 로그 2023-12-31T01:50:27.862+09:00 WARN 2068 --- [apigateway-service] [ main] trationDelegate$BeanPostProcessorChecker : Bean 'reactorDeferringLoadBalancerExchangeFilterFunction' of type [org.springframework.cloud.client.loadbalancer.reactive.DeferringLoadBalancerExchangeFilterFunction] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying). Is this bean getting eagerly injected into a currently created BeanPostProcessor [loadBalancerWebClientBuilderBeanPostProcessor]? Check the corresponding BeanPostProcessor declaration and its dependencies.2023-12-31T01:50:28.212+09:00 INFO 2068 --- [apigateway-service] [ main] c.e.a.Filter.CustomFilter : TEST TEST2023-12-31T01:50:28.216+09:00 INFO 2068 --- [apigateway-service] [ main] c.e.a.Filter.GlobalFilter : TEST TEST2023-12-31T01:50:29.192+09:00 INFO 2068 --- [apigateway-service] [ main] o.s.c.g.r.RouteDefinitionRouteLocator : Loaded RoutePredicateFactory [After]2023-12-31T01:50:29.192+09:00 INFO 2068 --- [apigateway-service] [ main] o.s.c.g.r.RouteDefinitionRouteLocator : Loaded RoutePredicateFactory [Before]2023-12-31T01:50:29.192+09:00 INFO 2068 --- [apigateway-service] [ main] o.s.c.g.r.RouteDefinitionRouteLocator : Loaded RoutePredicateFactory [Between]2023-12-31T01:50:29.192+09:00 INFO 2068 --- [apigateway-service] [ main] o.s.c.g.r.RouteDefinitionRouteLocator : Loaded RoutePredicateFactory [Cookie]2023-12-31T01:50:29.192+09:00 INFO 2068 --- [apigateway-service] [ main] o.s.c.g.r.RouteDefinitionRouteLocator : Loaded RoutePredicateFactory [Header]2023-12-31T01:50:29.192+09:00 INFO 2068 --- [apigateway-service] [ main] o.s.c.g.r.RouteDefinitionRouteLocator : Loaded RoutePredicateFactory [Host]2023-12-31T01:50:29.192+09:00 INFO 2068 --- [apigateway-service] [ main] o.s.c.g.r.RouteDefinitionRouteLocator : Loaded RoutePredicateFactory [Method]2023-12-31T01:50:29.193+09:00 INFO 2068 --- [apigateway-service] [ main] o.s.c.g.r.RouteDefinitionRouteLocator : Loaded RoutePredicateFactory [Path]2023-12-31T01:50:29.193+09:00 INFO 2068 --- [apigateway-service] [ main] o.s.c.g.r.RouteDefinitionRouteLocator : Loaded RoutePredicateFactory [Query]2023-12-31T01:50:29.193+09:00 INFO 2068 --- [apigateway-service] [ main] o.s.c.g.r.RouteDefinitionRouteLocator : Loaded RoutePredicateFactory [ReadBody]2023-12-31T01:50:29.193+09:00 INFO 2068 --- [apigateway-service] [ main] o.s.c.g.r.RouteDefinitionRouteLocator : Loaded RoutePredicateFactory [RemoteAddr]2023-12-31T01:50:29.193+09:00 INFO 2068 --- [apigateway-service] [ main] o.s.c.g.r.RouteDefinitionRouteLocator : Loaded RoutePredicateFactory [XForwardedRemoteAddr]2023-12-31T01:50:29.193+09:00 INFO 2068 --- [apigateway-service] [ main] o.s.c.g.r.RouteDefinitionRouteLocator : Loaded RoutePredicateFactory [Weight]2023-12-31T01:50:29.193+09:00 INFO 2068 --- [apigateway-service] [ main] o.s.c.g.r.RouteDefinitionRouteLocator : Loaded RoutePredicateFactory [CloudFoundryRouteService]2023-12-31T01:50:29.564+09:00 INFO 2068 --- [apigateway-service] [ main] DiscoveryClientOptionalArgsConfiguration : Eureka HTTP Client uses RestTemplate.2023-12-31T01:50:29.922+09:00 WARN 2068 --- [apigateway-service] [ main] iguration$LoadBalancerCaffeineWarnLogger : Spring Cloud LoadBalancer is currently working with the default cache. While this cache implementation is useful for development and tests, it's recommended to use Caffeine cache in production.You can switch to using Caffeine cache, by adding it and org.springframework.cache.caffeine.CaffeineCacheManager to the classpath.2023-12-31T01:50:29.956+09:00 INFO 2068 --- [apigateway-service] [ main] o.s.c.n.eureka.InstanceInfoFactory : Setting initial instance status as: STARTING2023-12-31T01:50:30.008+09:00 INFO 2068 --- [apigateway-service] [ main] com.netflix.discovery.DiscoveryClient : Initializing Eureka in region us-east-12023-12-31T01:50:30.009+09:00 INFO 2068 --- [apigateway-service] [ main] com.netflix.discovery.DiscoveryClient : Client configured to neither register nor query for data.2023-12-31T01:50:30.019+09:00 INFO 2068 --- [apigateway-service] [ main] com.netflix.discovery.DiscoveryClient : Discovery Client initialized at timestamp 1703955030017 with initial instances count: 02023-12-31T01:50:30.024+09:00 INFO 2068 --- [apigateway-service] [ main] o.s.c.n.e.s.EurekaServiceRegistry : Registering application APIGATEWAY-SERVICE with eureka with status UP2023-12-31T01:50:30.314+09:00 INFO 2068 --- [apigateway-service] [ main] o.s.b.web.embedded.netty.NettyWebServer : Netty started on port 80002023-12-31T01:50:30.320+09:00 INFO 2068 --- [apigateway-service] [ main] .s.c.n.e.s.EurekaAutoServiceRegistration : Updating port to 80002023-12-31T01:50:30.708+09:00 INFO 2068 --- [apigateway-service] [ main] c.e.a.ApigatewayServiceApplication : Started ApigatewayServiceApplication in 5.877 seconds (process running for 6.826)
-
미해결Spring Cloud로 개발하는 마이크로서비스 애플리케이션(MSA)
apigateway-service netty 서버 실행 안됨
apigateway 실행할 때 netty 서버가 아니라 tomcat으로 연결이 되는데 왜 그런 건가요?? netty서버로 작동할려면 어떻게 해야되나요?
-
해결됨Backend 멀티쓰레드 이해하고 통찰력 키우기
코틀린으로 해당 C# 예제를 비슷하게 만들어봤는데, 제가 잘못 작성한 걸까요?
<상황>지식 공유자님께서 작성해주신 C# 코드 예제를 코틀린으로 비슷하게 작성해서 시도해보았지만 같은 상황이 재현되지 않습니다. <질문 의도>제가 지식 공유자님의 코드를 잘못 이해하고 작성한 것인지, 아니면 JVM의 의도치 않은 최적화 때문에 의도와 다르게 동작하는 것인지 궁금합니다. <작성한 코드>fun main (args: Array<String>) { Example().startUp() } class Example() { private var shouldStop = false fun startUp() { println("process start") val thread = Thread(Runnable { doWork() }) thread.start() Thread.sleep(1000) shouldStop = true thread.join() println("process end") } // shouldStop에 @Volatile을 붙이지 않으면 무한 루프를 돌 것이라고 생각했으나 // graceful shutdown이 잘 되어버림 private fun doWork() { while (!shouldStop) { println("doWork..") Thread.sleep(1000) } } } 좋은 강의 만들어주셔서 감사합니다!
-
미해결[아파치 카프카 애플리케이션 프로그래밍] 개념부터 컨슈머, 프로듀서, 커넥트, 스트림즈까지!
shutdown hooking 이 되지 않는것 같습니다.
강의 내용과 같이 로그가 남지 않는데 왜 그런걸까요?
-
미해결[아파치 카프카 애플리케이션 프로그래밍] 개념부터 컨슈머, 프로듀서, 커넥트, 스트림즈까지!
simple consumer 실행 시 무한 로그 찍힘
안녕하세요!강의를 열심히 따라가는 중입니다.simple consumer 개발 시 실행을 하면15:46:20.636 [main] DEBUG org.apache.kafka.clients.FetchSessionHandler - [Consumer clientId=consumer-test-group-1, groupId=test-group] Built incremental fetch (sessionId=349253680, epoch=15) for node 0. Added 0 partition(s), altered 0 partition(s), removed 0 partition(s) out of 1 partition(s) 15:46:20.636 [main] DEBUG org.apache.kafka.clients.consumer.internals.Fetcher - [Consumer clientId=consumer-test-group-1, groupId=test-group] Sending READ_UNCOMMITTED IncrementalFetchRequest(toSend=(), toForget=(), implied=(test-0)) to broker localhost:9092 (id: 0 rack: null) 15:46:21.150 [main] DEBUG org.apache.kafka.clients.FetchSessionHandler - [Consumer clientId=consumer-test-group-1, groupId=test-group] Node 0 sent an incremental fetch response with throttleTimeMs = 0 for session 349253680 with 0 response partition(s), 1 implied partition(s) 15:46:21.150 [main] DEBUG org.apache.kafka.clients.consumer.internals.Fetcher - [Consumer clientId=consumer-test-group-1, groupId=test-group] Added READ_UNCOMMITTED fetch request for partition test-0 at position FetchPosition{offset=0, offsetEpoch=Optional.empty, currentLeader=LeaderAndEpoch{leader=Optional[localhost:9092 (id: 0 rack: null)], epoch=0}} to node localhost:9092 (id: 0 rack: null) 15:46:21.150 [main] DEBUG org.apache.kafka.clients.FetchSessionHandler - [Consumer clientId=consumer-test-group-1, groupId=test-group] Built incremental fetch (sessionId=349253680, epoch=16) for node 0. Added 0 partition(s), altered 0 partition(s), removed 0 partition(s) out of 1 partition(s) 15:46:21.150 [main] DEBUG org.apache.kafka.clients.consumer.internals.Fetcher - [Consumer clientId=consumer-test-group-1, groupId=test-group] Sending READ_UNCOMMITTED IncrementalFetchRequest(toSend=(), toForget=(), implied=(test-0)) to broker localhost:9092 (id: 0 rack: null)로그가 이런식으로 무한대로 찍히고스프링부트의 카프카 라이브러리를 통해 확인을 하면이렇게 상태가 empty라고 뜨며디버깅을 해보면 레코드에 데이터가 들어오지 않는 것을 확인 할 수 있습니다. 혹시 어느부분을 설정을 해주지않아서 그럴까요..? kafka-console-producer 스크립트를 통해서 메시지를 생성하면 읽을수 있긴 합니다..16:00:43.464 [main] INFO wendy.consumer.simpleconsumer.SimpleConsumer - record: ConsumerRecord(topic = test, partition = 0, leaderEpoch = 0, offset = 1, CreateTime = 1703660442453, serialized key size = -1, serialized value size = 12, headers = RecordHeaders(headers = [], isReadOnly = false), key = null, value = is it work??)
-
미해결카프카 완벽 가이드 - 코어편
consumer group 과 topic의 관계가 궁급합니다.
안녕하세요, 강의를 듣다 궁금증이 생겨 질문드립니다. Topic T1, T2 가 존재하고, Consumer group G1이 존재한다 할 때..A Consumer가 G1 group에 속하면서 T1 topic을 subscribe하고, B Consumer가 G1 group에 속하면서 T2 topic을 subscribe하도록 코드를 짰는데도 잘 동작하더라구요. Consumer group은 topic과 1 : N 관계가 될 수 있는 것인가요?
-
해결됨Spring Cloud로 개발하는 마이크로서비스 애플리케이션(MSA)
로드 밸런싱 관련 질문
안녕하세요! 강사님 로드 밸런싱 & 서버 관련 질문드립니다.Spring Cloud로 개발하는 마이크로서비스 애플리케이션(MSA)현재 저는 섹션 2 API Gateway Service 까지 강의를 진행한 상태입니다. 현업에서는 해당 강의에서 나와있는 것처럼 어플리케이션 단에서의 로드 밸런싱 구현을 많이 하나요?아니라면 현업에서는 어떠한 방법으로 자주 사용하여 구현을 하나요? 어떤 상황에서 어플리케이션 단에서의 로드 밸런싱 구현을 하나요?트래픽 분산을 목적으로 로드 밸런싱을 사용하기 위해 여러 개의 어플리케이션 인스턴스들을 서버에 올린다고 하였을 때 현업에서는 어떻게 관리하나요? AWS EC2 기준으로 설명해주시면 좋을 것 같습니다! 읽어주셔서 감사합니다(__)
-
미해결Spring Cloud로 개발하는 마이크로서비스 애플리케이션(MSA)
docker network ip 대역 질문
docker network 지정 시 해당 network내에서 할당되는 ip 대역에 서비스 ip가 순차적으로 할당되는 것 같은데요, kafka같은 경우는 그 대역에서 직접 ip하나를 지정해서 사용하고 서비스에서도 그 kafka ip를 하드코딩으로 직접 지정해두는데, 환경에 따라 network ip 대역이 변경될 일은 없는건가요?docker container 네트워크 스펙인지 궁금합니다.
-
미해결Spring Cloud로 개발하는 마이크로서비스 애플리케이션(MSA)
kafka docker 사용 질문
질문이 있습니다. Local에 kafka를 직접 설치한 경우 kafka connect를 위해 jdbc connector 경로 지정 등 작업이 필요했던 것 같은데 docker compose로 구동시킬 때는 이러한 작업에 대한 지정이 필요 없는건가요??
-
미해결[아파치 카프카 애플리케이션 프로그래밍] 개념부터 컨슈머, 프로듀서, 커넥트, 스트림즈까지!
컨슈머 랙 - 처리량 이슈 부분에서 질문이 있습니다.
안녕하세요, 먼저 좋은 강의 잘 듣고 있습니다 (- -) (_ _) 컨슈머 랙 모니터링 - 처리량 이슈 파트에서 궁금한 점이 생겨서 질문드립니다. 파티션 1개 - 컨슈머 1개에서 파티션 2개 - 컨슈머 2개가 되면 linear하게 처리량이 늘어난다고 하셨는데, 어떻게 처리량이 늘어나는 건지 조금 이해가 안가서요. 상단과 같은 구조는 하나의 컨슈머가 0,1,2,3... 이렇게 하나씩 처리를 한다고 하면, 하단과 같은 구조는 다음과 같이 레코드를 동시에 소비하게 되어 2배로 늘어난다는 말씀일까요?컨슈머 1 - 0 : 2 : 4 : 6 : ...컨슈머 2 - 1 : 3 : 5 : 7 : ...( : 는 레코드가 소비되는 시점을 구분한 것 입니다!) 만약 그렇다면, offset은 어떻게 관리가 되는건지도 궁금하네요..
-
해결됨Spring Cloud로 개발하는 마이크로서비스 애플리케이션(MSA)
혹시 이 강의도 업데이트 예정에 있을까요?
로드맵 따라서 공부하고 있는데, 첫번째 강의처럼 이번 강의도 스프링 부트 3.x대로 업데이트 예정이 있는지 궁금합니다! 언제쯤 업데이트가 될지 알고싶어요..!
-
미해결카프카 완벽 가이드 - 코어편
key를 갖는 메시지 전송 시 궁금한 사항이 있습니다.
강사님, 안녕하세요! 강의 잘 듣고 있습니다.강의 들으면서 궁금한 사항이 생겨서 질문드려요.key를 지정해서 메시지를 전송하면 같은 key에 한해서는 같은 파티션으로 메시지가 전송되는 것을 보장 받을 수 있고, 해당 key로 전송된 메세지는 순서를 보장받을 수 있다. 까지는 이해했는데요~운영하면서 파티션의 개수가 늘어날 경우, 늘어난 직후에도 같은 key로 전송되는 메세지는 순서를 보장받을 수 있는 것일까요?(즉, 파티션 개수가 늘어나기 이전에 key:a, partition:0으로 전송되었다면 추후, 파티션 개수가 늘어나 리밸런싱이 일어나더라도 key:a 메세지는 partition:0으로 전송되는 것일까요?)
-
해결됨Spring Cloud로 개발하는 마이크로서비스 애플리케이션(MSA)
consumer가 작동하지 않습니다
consumer를 실행시키면WARN [Consumer clientId=console-consumer, groupId=console-consumer-83590] Error while fetching metadata with correlation id 2 : {my_topic_users=LEADER_NOT_AVAILABLE} (org.apache.kafka.clients.NetworkClient)이게 뜨고 이후에 데이터베이스에 데이터를 넣어도 아무것도 뜨지 않습니다. http://localhost:8083/connectors/my-source-connect/status 실행시키면 이렇게 나옵니다.{ "name": "my-source-connect", "connector": { "state": "FAILED", "worker_id": "", "trace": "org.apache.kafka.connect.errors.ConnectException: java.sql.SQLInvalidAuthorizationSpecException: Could not connect to address=(host=localhost)(port=3307)(type=master) : GSS-API authentication exception\r\n\tat io.confluent.connect.jdbc.util.CachedConnectionProvider.getConnection(CachedConnectionProvider.java:59)\r\n\tat io.confluent.connect.jdbc.JdbcSourceConnector.start(JdbcSourceConnector.java:94)\r\n\tat org.apache.kafka.connect.runtime.WorkerConnector.doStart(WorkerConnector.java:193)\r\n\tat org.apache.kafka.connect.runtime.WorkerConnector.start(WorkerConnector.java:218)\r\n\tat org.apache.kafka.connect.runtime.WorkerConnector.doTransitionTo(WorkerConnector.java:363)\r\n\tat org.apache.kafka.connect.runtime.WorkerConnector.doTransitionTo(WorkerConnector.java:346)\r\n\tat org.apache.kafka.connect.runtime.WorkerConnector.doRun(WorkerConnector.java:146)\r\n\tat org.apache.kafka.connect.runtime.WorkerConnector.run(WorkerConnector.java:123)\r\n\tat java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:539)\r\n\tat java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)\r\n\tat java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136)\r\n\tat java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635)\r\n\tat java.base/java.lang.Thread.run(Thread.java:842)\r\nCaused by: java.sql.SQLInvalidAuthorizationSpecException: Could not connect to address=(host=localhost)(port=3307)(type=master) : GSS-API authentication exception\r\n\tat org.mariadb.jdbc.internal.util.exceptions.ExceptionFactory.createException(ExceptionFactory.java:66)\r\n\tat org.mariadb.jdbc.internal.util.exceptions.ExceptionFactory.create(ExceptionFactory.java:192)\r\n\tat org.mariadb.jdbc.internal.protocol.AbstractConnectProtocol.connectWithoutProxy(AbstractConnectProtocol.java:1392)\r\n\tat org.mariadb.jdbc.internal.util.Utils.retrieveProxy(Utils.java:635)\r\n\tat org.mariadb.jdbc.MariaDbConnection.newConnection(MariaDbConnection.java:150)\r\n\tat org.mariadb.jdbc.Driver.connect(Driver.java:89)\r\n\tat java.sql/java.sql.DriverManager.getConnection(DriverManager.java:681)\r\n\tat java.sql/java.sql.DriverManager.getConnection(DriverManager.java:190)\r\n\tat io.confluent.connect.jdbc.dialect.GenericDatabaseDialect.getConnection(GenericDatabaseDialect.java:250)\r\n\tat io.confluent.connect.jdbc.util.CachedConnectionProvider.newConnection(CachedConnectionProvider.java:80)\r\n\tat io.confluent.connect.jdbc.util.CachedConnectionProvider.getConnection(CachedConnectionProvider.java:52)\r\n\t... 12 more\r\nCaused by: java.sql.SQLException: GSS-API authentication exception\r\n\tat org.mariadb.jdbc.internal.com.send.authentication.gssapi.StandardGssapiAuthentication.authenticate(StandardGssapiAuthentication.java:169)\r\n\tat org.mariadb.jdbc.internal.com.send.authentication.SendGssApiAuthPacket.process(SendGssApiAuthPacket.java:133)\r\n\tat org.mariadb.jdbc.internal.protocol.AbstractConnectProtocol.authenticationHandler(AbstractConnectProtocol.java:752)\r\n\tat org.mariadb.jdbc.internal.protocol.AbstractConnectProtocol.createConnection(AbstractConnectProtocol.java:553)\r\n\tat org.mariadb.jdbc.internal.protocol.AbstractConnectProtocol.connectWithoutProxy(AbstractConnectProtocol.java:1387)\r\n\t... 20 more\r\nCaused by: javax.security.auth.login.LoginException: No LoginModules configured for Krb5ConnectorContext\r\n\tat java.base/javax.security.auth.login.LoginContext.init(LoginContext.java:269)\r\n\tat java.base/javax.security.auth.login.LoginContext.<init>(LoginContext.java:357)\r\n\tat org.mariadb.jdbc.internal.com.send.authentication.gssapi.StandardGssapiAuthentication.authenticate(StandardGssapiAuthentication.java:117)\r\n\t... 24 more\r\n" }, "tasks": [], "type": "source" } 강사님이 올려주신 카프카 파일을 사용했어요. 당연하겠지만 이후 sink나 DB연동 강의 따라해도 전혀 작동하지 않습니다..