묻고 답해요
161만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결Spring Cloud로 개발하는 마이크로서비스 애플리케이션(MSA)
instance_id 설정이 적용되지 않고 있습니다.
안녕하세요 위 사진처럼 인스턴스의 ID가 아래의 yml파일로 설정한데로 적용되지 않고 있어 질문드렸습니다. 커서를 두었을 때 포트번호도 확인해서 해당 인스턴스인것도 확인하였습니다. 원인이나 해결방법을 알 수 있을까요 ㅠㅠ
-
미해결[아파치 카프카 애플리케이션 프로그래밍] 개념부터 컨슈머, 프로듀서, 커넥트, 스트림즈까지!
오프셋 커밋이 실패된 이후 consume 하는 경우 문의
안녕하세요.컨슈머에서 오프셋 커밋이 네트워크 등의 장애로 실패하고나면 동일한 컨슈머에서는 해당 오프셋을 다시 읽게 되나요?아니면, 해당 오프셋은 skip 되나요?예를 들어서, 아래와 같이 한 개의 파티션에 10개의 레코드가 있는 경우를 가정해볼게요.(비동기 수동 커밋 가정, 가져오는 레코드 개수는 1개씩) 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 1 ~ 2 번까지는 오프셋 커밋이 정상적으로 이루어지고, 3번을 제외한 4번까지 오프셋 커밋이 되었다고 가정해보면, 다음 poll() 메서드에서는 5번 오프셋을 가져오게 되나요?아니면 3번 오프셋을 다시 조회하게 되나요? 감사합니다.
-
미해결15일간의 빅데이터 파일럿 프로젝트
[공유] DNS_PROBE_FINISHED_NXDOMAIN 문제시
저는 macbook을 사용중이며 intel-chip입니다.M1은 여러차례 자체구성을 시도 하였지만, centOS는 7이였나 8이상부터 m1에서도 설치가 되도록 arm based ios를 제공하였지만 설치를 실패하였고, reddit과 git 커뮤등의 centOS의 설치 이미지를 m1칩에 맞게 리빌드 등의 작업이 필요하다는 등으로 시간이 너무 소요되고 강의를 듣기전 지칠듯하여 skip하였습니다. 제공받은 VM파일로 구성후 크롬에서 cloudera manager 접근시 DNS_PROBE_FINISHED_NXDOMAIN의 문제가 발생하였고, 높은 확율로 hosts의 오타를 의심하였지만 오타는 아니였습니다.DNS 캐시 및 초기화를 진행하였고, 크롬의 캐시 또한 삭제하였습니다. 그래도 동일한 오류로 접근이 불가하여ping과 telnet을 날리니 핑은 날라가나 telnet으로 포트와 함께 날릴시 접근이 불가한것을 확인하였습니다. 올바른 해결방법일지는 모르겠지만 해당 포트가 접근이 불가능하다 판단하여, VM server01에 네트워크 설정에서 > 어댑터 1 > 고급 > 포트 포워딩 > 호스트포트 7180 / 게스트포트 7180으로 세팅하여 정상 접근 확인하였습니다. 저와 같이 이러한 문제를 만나시는 분이 계시면 조금 더 빠른 해결 방법을 찾길 바라며 글 남깁니다. P.S. BigD님 혹 해당 방법이 올바른 방법이 아니라면 잘못된 정보라 표시 부탁드립니다. 제가 아직 강의 초반이기에 해당 설정을 건드리어 후반부의 강의에 영향을 끼칠지에 대한 확신이 없습니다ㅠㅠ
-
미해결카프카 완벽 가이드 - 코어편
CLI에서 메시지를 컨슈머로 읽을 때 배치시간에 영향을 받나요?
Key가 없는 메시지의 파티션 분배전략 - 라운드로빈과 스티키 파티셔닝 해당 파트에서 프로듀서가 보낸 메시지를 우선 배치에 넣고 토픽에 삽입한다고 적혀있습니다. 그 전 강의에서 컨슈머가 해당 파티션을 읽고 있고 프로듀서로 값을 보내면 바로바로 읽혔습니다. 이것도 프로듀서에서 보낸 메시지를 배치에서 대기하다가 대기시간이 만료돼서 토픽에 값이 삽입된건가요? 그 시간이 너무 짧아서 실시간으로 읽히는 것처럼 보이는 것으로 이해하면 될까요?
-
해결됨카프카 완벽 가이드 - 커넥트(Connect) 편
응용프로그램에서 kafka 에 Producer로 직접 넣은 데이터를 sink connector를 이용해 DB로 받는 방법
안녕하세요.Kakfa를 이용 하던 중 다음의 상황을 Kafka (sink) Connector를 사용하여 구현하려 합니다. Clinet에는 응용프로그램이 Data를 수집하여 JSON 포멧으로 Producer를 구현하여 Kafka topic으로 Data를 전송함 (key : null, value : JSON 포멧의 Data)Kafka의 topic에 쌓여 있는 정보를 다른 응용프로그램이 Consumer를 구현하여 Data를 사용 중 (이와는 병렬로 추가로 DB에 저장 하는것이 목적입니다.)이 때 이 kafka topic에 저장 되는 data를 kafka sink connector를 사용하여 Database(RDBMS, MSSQL)에 저장을 하려 합니다. topic에 쌓이는 Data의 Schema가 변경이 될 수 있어,value로 들어 오는 값을 그대로 하나의 string 단일 컬럼으로 지정하여 schema registry에 등록 하여sink connector로 받아 갈 수 있을 까요? 아니면 더 간단한 방법이 있을 까요?(Value 값을 string 하나의 컬럼으로 DB로 가져가서 DB에서 parsing 하여 사용할 계획 입니다.)
-
미해결카프카 완벽 가이드 - ksqlDB
ksqlDB Cluster 여부 - 박성범님 질문(제가 대신해서 적습니다)
안녕하십니까, 박성범님이 수강평과 함께 질문을 올려 주셔서 제가 질문과 답변을 함께 적겠습니다. 먼저 질문 내용은 ksqlDB Cluster 구성 가능에 대한 질문입니다.
-
미해결Spring Cloud로 개발하는 마이크로서비스 애플리케이션(MSA)
강의 업데이트 계획
강의 소개에 부트3버전으로 2024.01 업데이트라고 되어 있던데, 이전 질문 내용을 보니 작년 초부터 업데이트하신다고 하셨는데, 업데이트가 지속적으로 안되는 것 같더라구요. 이번 1월에는 업데이트 진행하시나요? 질의응답에서 매번 한다고 말씀하시고, 지속적으로 업데이트 안되는 것 같아 문의드립니다. 강사님 강의의 한 팬으로써 꼭 업데이트 되길 바랍니다. 1회독 끝낸상태라 한번 더 강의를 수강하려는데, 선문의 드립니다. Spring Boot 3.2 + Spring Cloud 2023.0.0업데이트 예정 (2024-01)
-
미해결실습으로 배우는 선착순 이벤트 시스템
카프카 토픽 생성이 안되요.
docker exec -it kafka kafka-topics.sh --bootstrap-server localhost:9092 --create --topic testTopic위와 같이 터미널에 토픽생성하는 명령어를 작성하면 아무것도 |움직이지 않고 터미널이 멈춥니다.도커는 정상적으로 실행하고 kafka,zookeeper도 정상적으로 실행되어있습니다.도커를 삭제하고 다시 다운로드해서 docker compose사용해서 kafka,zookeeper이미지 다시 작동시켜도 위와같이 토픽생성 명령어 입력하고 작동시 아무것도 안하고 멈춥니다..(p.s 카프카 컨테이너 cli들어가서도 토픽 생성 명령어 작동시켜도 작동안합니다.)혹시 해당 문제 해결법 아실까요..?
-
미해결Spring Cloud로 개발하는 마이크로서비스 애플리케이션(MSA)
업데이트 계획 및 커뮤니티 질문 답변 문의
강의 소개에Spring Boot 3.2 + Spring Cloud 2023.0.0업데이트 예정 (2024-01)쓰여 있는데 해당 계획 실습 예제 파일만 업데이트 하시는 건지 혹은 강의 녹화본까지 업데이트를 하시는 것이 유효한지 질문드립니다.또한 커뮤니티의 질문 글을 보면 강사님께서 8월 이후로 답변이 드문드문 한 상태인데인프런 AI의 답변이해당 질문 글에 대한 적절한 답변을 하여 답변을 하시지 않는 건지, 현재 바쁘셔서 답변을 하시지 않는 건지 질문드립니다. 감사합니다.
-
미해결Spring Cloud로 개발하는 마이크로서비스 애플리케이션(MSA)
강의 정리 포스팅
혹시 복습차원에서 강의 정리해서 개인블로그에 포스팅 해도 될까요??만일 포스팅하게 된다면, 꼭 출처는 남기겠습니다!!
-
미해결Spring Cloud로 개발하는 마이크로서비스 애플리케이션(MSA)
apigateway-service 톰캣 서버로 실행시 안되는 이유
실수로 gateway-mvc라이브러리를 설치 후 실행 했을 때 톰캣으로 실행이 되었는데 이때는 게이트웨이url에 /first-service/welcome를 붙였을 때 실행이 되지 않았는데,gateway 라이브러리 다시 설치후 netty 에서는 정상적으로 동작 하는데 톰캣에서는 안되고, netty에서만 되는 이유가 뭔가요???
-
미해결카프카 완벽 가이드 - 코어편
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서버로 작동할려면 어떻게 해야되나요?