- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. Postman 으로 데이터값 { "name": "my-source-connect", "config": { "connector.class": "io.confluent.connect.jdbc.JdbcSourceConnector", "connection.url": "jdbc:mariadb://localhost:3306/mydb", "connection.user": "root", "connection.password": "1234", "mode": "incrementing", "incrementing.column.name": "id", "table.whitelist": "users", "topic.prefix": "my_topic_", "tasks.max": "1" } } 을 Post 방식으로 보냈고 (h2 console 창에서 연결 확인했습니다 ) 다시 Get 방식으로 보냈을때 my-source-connect 확인했습니다. 그 후 connect 콘솔 창에 뜬 로그 입니다. [2022-08-08 23:05:06,233] INFO JdbcSourceConnectorConfig values: batch.max.rows = 100 catalog.pattern = null connection.attempts = 3 connection.backoff.ms = 10000 connection.password = [hidden] connection.url = jdbc:mariadb://localhost:3306/mydb connection.user = root db.timezone = UTC dialect.name = incrementing.column.name = id mode = incrementing numeric.mapping = null numeric.precision.mapping = false poll.interval.ms = 5000 query = query.retry.attempts = -1 query.suffix = quote.sql.identifiers = ALWAYS schema.pattern = null table.blacklist = [] table.monitoring.startup.polling.limit.ms = 10000 table.poll.interval.ms = 60000 table.types = [TABLE] table.whitelist = [users] timestamp.column.name = [] timestamp.delay.interval.ms = 0 timestamp.granularity = connect_logical timestamp.initial = null topic.prefix = my_topic_ transaction.isolation.mode = DEFAULT validate.non.null = true (io.confluent.connect.jdbc.source.JdbcSourceConnectorConfig:361) [2022-08-08 23:05:06,241] INFO AbstractConfig values: (org.apache.kafka.common.config.AbstractConfig:361) [2022-08-08 23:05:06,270] INFO [Worker clientId=connect-1, groupId=connect-cluster] Connector my-source-connect config updated (org.apache.kafka.connect.runtime.distributed.DistributedHerder:1534) [2022-08-08 23:05:06,275] INFO [Worker clientId=connect-1, groupId=connect-cluster] Rebalance started (org.apache.kafka.connect.runtime.distributed.WorkerCoordinator:225) [2022-08-08 23:05:06,275] INFO [Worker clientId=connect-1, groupId=connect-cluster] (Re-)joining group (org.apache.kafka.clients.consumer.internals.AbstractCoordinator:540) [2022-08-08 23:05:06,280] INFO [Worker clientId=connect-1, groupId=connect-cluster] Successfully joined group with generation Generation{generationId=48, memberId='connect-1-74e3b810-49fe-4cd5-90cf-0c9408ba73ab', protocol='sessioned'} (org.apache.kafka.clients.consumer.internals.AbstractCoordinator:596) [2022-08-08 23:05:06,297] INFO [Worker clientId=connect-1, groupId=connect-cluster] Successfully synced group in generation Generation{generationId=48, memberId='connect-1-74e3b810-49fe-4cd5-90cf-0c9408ba73ab', protocol='sessioned'} (org.apache.kafka.clients.consumer.internals.AbstractCoordinator:756) [2022-08-08 23:05:06,298] INFO [Worker clientId=connect-1, groupId=connect-cluster] Joined group at generation 48 with protocol version 2 and got assignment: Assignment{error=0, leader='connect-1-74e3b810-49fe-4cd5-90cf-0c9408ba73ab', leaderUrl='http://127.0.0.1:8083/', offset=44, connectorIds=[my-source-connect], taskIds=[], revokedConnectorIds=[], revokedTaskIds=[], delay=0} with rebalance delay: 0 (org.apache.kafka.connect.runtime.distributed.DistributedHerder:1689) [2022-08-08 23:05:06,303] INFO [Worker clientId=connect-1, groupId=connect-cluster] Starting connectors and tasks using config offset 44 (org.apache.kafka.connect.runtime.distributed.DistributedHerder:1216) [2022-08-08 23:05:06,308] INFO [Worker clientId=connect-1, groupId=connect-cluster] Starting connector my-source-connect (org.apache.kafka.connect.runtime.distributed.DistributedHerder:1299) [2022-08-08 23:05:06,313] INFO Creating connector my-source-connect of type io.confluent.connect.jdbc.JdbcSourceConnector (org.apache.kafka.connect.runtime.Worker:274) [2022-08-08 23:05:06,316] INFO SourceConnectorConfig values: config.action.reload = restart connector.class = io.confluent.connect.jdbc.JdbcSourceConnector errors.log.enable = false errors.log.include.messages = false errors.retry.delay.max.ms = 60000 errors.retry.timeout = 0 errors.tolerance = none header.converter = null key.converter = null name = my-source-connect predicates = [] tasks.max = 1 topic.creation.groups = [] transforms = [] value.converter = null (org.apache.kafka.connect.runtime.SourceConnectorConfig:361) [2022-08-08 23:05:06,317] INFO EnrichedConnectorConfig values: config.action.reload = restart connector.class = io.confluent.connect.jdbc.JdbcSourceConnector errors.log.enable = false errors.log.include.messages = false errors.retry.delay.max.ms = 60000 errors.retry.timeout = 0 errors.tolerance = none header.converter = null key.converter = null name = my-source-connect predicates = [] tasks.max = 1 topic.creation.groups = [] transforms = [] value.converter = null (org.apache.kafka.connect.runtime.ConnectorConfig$EnrichedConnectorConfig:361) [2022-08-08 23:05:06,339] INFO Instantiated connector my-source-connect with version 10.5.1 of type class io.confluent.connect.jdbc.JdbcSourceConnector (org.apache.kafka.connect.runtime.Worker:284) [2022-08-08 23:05:06,339] INFO Finished creating connector my-source-connect (org.apache.kafka.connect.runtime.Worker:310) [2022-08-08 23:05:06,341] INFO Starting JDBC Source Connector (io.confluent.connect.jdbc.JdbcSourceConnector:71) [2022-08-08 23:05:06,344] INFO [Worker clientId=connect-1, groupId=connect-cluster] Finished starting connectors and tasks (org.apache.kafka.connect.runtime.distributed.DistributedHerder:1244) [2022-08-08 23:05:06,358] INFO JdbcSourceConnectorConfig values: batch.max.rows = 100 catalog.pattern = null connection.attempts = 3 connection.backoff.ms = 10000 connection.password = [hidden] connection.url = jdbc:mariadb://localhost:3306/mydb connection.user = root db.timezone = UTC dialect.name = incrementing.column.name = id mode = incrementing numeric.mapping = null numeric.precision.mapping = false poll.interval.ms = 5000 query = query.retry.attempts = -1 query.suffix = quote.sql.identifiers = ALWAYS schema.pattern = null table.blacklist = [] table.monitoring.startup.polling.limit.ms = 10000 table.poll.interval.ms = 60000 table.types = [TABLE] table.whitelist = [users] timestamp.column.name = [] timestamp.delay.interval.ms = 0 timestamp.granularity = connect_logical timestamp.initial = null topic.prefix = my_topic_ transaction.isolation.mode = DEFAULT validate.non.null = true (io.confluent.connect.jdbc.source.JdbcSourceConnectorConfig:361) [2022-08-08 23:05:06,369] INFO Attempting to open connection #1 to MySql (io.confluent.connect.jdbc.util.CachedConnectionProvider:79) [2022-08-08 23:05:06,446] INFO Starting thread to monitor tables. (io.confluent.connect.jdbc.source.TableMonitorThread:82) [2022-08-08 23:05:06,494] INFO SourceConnectorConfig values: config.action.reload = restart connector.class = io.confluent.connect.jdbc.JdbcSourceConnector errors.log.enable = false errors.log.include.messages = false errors.retry.delay.max.ms = 60000 errors.retry.timeout = 0 errors.tolerance = none header.converter = null key.converter = null name = my-source-connect predicates = [] tasks.max = 1 topic.creation.groups = [] transforms = [] value.converter = null (org.apache.kafka.connect.runtime.SourceConnectorConfig:361) [2022-08-08 23:05:06,498] INFO EnrichedConnectorConfig values: config.action.reload = restart connector.class = io.confluent.connect.jdbc.JdbcSourceConnector errors.log.enable = false errors.log.include.messages = false errors.retry.delay.max.ms = 60000 errors.retry.timeout = 0 errors.tolerance = none header.converter = null key.converter = null name = my-source-connect predicates = [] tasks.max = 1 topic.creation.groups = [] transforms = [] value.converter = null (org.apache.kafka.connect.runtime.ConnectorConfig$EnrichedConnectorConfig:361) [2022-08-08 23:05:06,530] ERROR Encountered an unrecoverable error while reading tables from the database (io.confluent.connect.jdbc.source.TableMonitorThread:224) org.apache.kafka.connect.errors.ConnectException: The connector uses the unqualified table name as the topic name and has detected duplicate unqualified table names. This could lead to mixed data types in the topic and downstream processing errors. To prevent such processing errors, the JDBC Source connector fails to start when it detects duplicate table name configurations. Update the connector's 'table.whitelist' config to include exactly one table in each of the tables listed below. [["mydb"."users", "performance_schema"."users"]] at io.confluent.connect.jdbc.source.TableMonitorThread.tables(TableMonitorThread.java:152) at io.confluent.connect.jdbc.JdbcSourceConnector.taskConfigs(JdbcSourceConnector.java:164) at org.apache.kafka.connect.runtime.Worker.connectorTaskConfigs(Worker.java:359) at org.apache.kafka.connect.runtime.distributed.DistributedHerder.reconfigureConnector(DistributedHerder.java:1428) at org.apache.kafka.connect.runtime.distributed.DistributedHerder.reconfigureConnectorTasksWithRetry(DistributedHerder.java:1366) at org.apache.kafka.connect.runtime.distributed.DistributedHerder.access$1000(DistributedHerder.java:128) at org.apache.kafka.connect.runtime.distributed.DistributedHerder$12.call(DistributedHerder.java:1318) at org.apache.kafka.connect.runtime.distributed.DistributedHerder$12.call(DistributedHerder.java:1312) at org.apache.kafka.connect.runtime.distributed.DistributedHerder.tick(DistributedHerder.java:371) at org.apache.kafka.connect.runtime.distributed.DistributedHerder.run(DistributedHerder.java:295) at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:515) at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264) at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128) at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628) at java.base/java.lang.Thread.run(Thread.java:834) [2022-08-08 23:05:06,538] ERROR WorkerConnector{id=my-source-connect} Connector raised an error (org.apache.kafka.connect.runtime.WorkerConnector:506) org.apache.kafka.connect.errors.ConnectException: Encountered an unrecoverable error while reading tables from the database at io.confluent.connect.jdbc.source.TableMonitorThread.fail(TableMonitorThread.java:226) at io.confluent.connect.jdbc.source.TableMonitorThread.tables(TableMonitorThread.java:153) at io.confluent.connect.jdbc.JdbcSourceConnector.taskConfigs(JdbcSourceConnector.java:164) at org.apache.kafka.connect.runtime.Worker.connectorTaskConfigs(Worker.java:359) at org.apache.kafka.connect.runtime.distributed.DistributedHerder.reconfigureConnector(DistributedHerder.java:1428) at org.apache.kafka.connect.runtime.distributed.DistributedHerder.reconfigureConnectorTasksWithRetry(DistributedHerder.java:1366) at org.apache.kafka.connect.runtime.distributed.DistributedHerder.access$1000(DistributedHerder.java:128) at org.apache.kafka.connect.runtime.distributed.DistributedHerder$12.call(DistributedHerder.java:1318) at org.apache.kafka.connect.runtime.distributed.DistributedHerder$12.call(DistributedHerder.java:1312) at org.apache.kafka.connect.runtime.distributed.DistributedHerder.tick(DistributedHerder.java:371) at org.apache.kafka.connect.runtime.distributed.DistributedHerder.run(DistributedHerder.java:295) at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:515) at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264) at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128) at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628) at java.base/java.lang.Thread.run(Thread.java:834) Caused by: org.apache.kafka.connect.errors.ConnectException: The connector uses the unqualified table name as the topic name and has detected duplicate unqualified table names. This could lead to mixed data types in the topic and downstream processing errors. To prevent such processing errors, the JDBC Source connector fails to start when it detects duplicate table name configurations. Update the connector's 'table.whitelist' config to include exactly one table in each of the tables listed below. [["mydb"."users", "performance_schema"."users"]] at io.confluent.connect.jdbc.source.TableMonitorThread.tables(TableMonitorThread.java:152) ... 14 more [2022-08-08 23:05:06,542] ERROR [Worker clientId=connect-1, groupId=connect-cluster] Failed to reconfigure connector's tasks, retrying after backoff: (org.apache.kafka.connect.runtime.distributed.DistributedHerder:1377) org.apache.kafka.connect.errors.ConnectException: Encountered an unrecoverable error while reading tables from the database at io.confluent.connect.jdbc.source.TableMonitorThread.fail(TableMonitorThread.java:226) at io.confluent.connect.jdbc.source.TableMonitorThread.tables(TableMonitorThread.java:153) at io.confluent.connect.jdbc.JdbcSourceConnector.taskConfigs(JdbcSourceConnector.java:164) at org.apache.kafka.connect.runtime.Worker.connectorTaskConfigs(Worker.java:359) at org.apache.kafka.connect.runtime.distributed.DistributedHerder.reconfigureConnector(DistributedHerder.java:1428) at org.apache.kafka.connect.runtime.distributed.DistributedHerder.reconfigureConnectorTasksWithRetry(DistributedHerder.java:1366) at org.apache.kafka.connect.runtime.distributed.DistributedHerder.access$1000(DistributedHerder.java:128) at org.apache.kafka.connect.runtime.distributed.DistributedHerder$12.call(DistributedHerder.java:1318) at org.apache.kafka.connect.runtime.distributed.DistributedHerder$12.call(DistributedHerder.java:1312) at org.apache.kafka.connect.runtime.distributed.DistributedHerder.tick(DistributedHerder.java:371) at org.apache.kafka.connect.runtime.distributed.DistributedHerder.run(DistributedHerder.java:295) at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:515) at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264) at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128) at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628) at java.base/java.lang.Thread.run(Thread.java:834) Caused by: org.apache.kafka.connect.errors.ConnectException: The connector uses the unqualified table name as the topic name and has detected duplicate unqualified table names. This could lead to mixed data types in the topic and downstream processing errors. To prevent such processing errors, the JDBC Source connector fails to start when it detects duplicate table name configurations. Update the connector's 'table.whitelist' config to include exactly one table in each of the tables listed below. [["mydb"."users", "performance_schema"."users"]] at io.confluent.connect.jdbc.source.TableMonitorThread.tables(TableMonitorThread.java:152) ... 14 more [2022-08-08 23:05:06,546] INFO [Worker clientId=connect-1, groupId=connect-cluster] Skipping reconfiguration of connector my-source-connect since it is not running (org.apache.kafka.connect.runtime.distributed.DistributedHerder:1415) [2022-08-08 23:05:06,795] INFO [Worker clientId=connect-1, groupId=connect-cluster] Skipping reconfiguration of connector my-source-connect since it is not running (org.apache.kafka.connect.runtime.distributed.DistributedHerder:1415) 계속 구글링하고 찾아봤는데 뭐가 잘못되었는지 잘모르겠습니다 ㅠ
강의에서 안내하는 bootstrap.yml을 똑같이 만들어주고 application.yml에서 아래 코드를 추가하면 됩니다. 아래서 경로 자체를 연결하는 방법도 댓글로 알려주셨는데 저는 저게 잘 안 되서 이렇게 해결했습니다. spring: config: import: - classpath:/bootstrap.yml
안녕하세요. 강의 수강중 intellij 버전이 달라서인지, jdk 버전이 달라서인지 몰라도 아래 run/debug config 화면에서 Enviroment 옵션이 보이지 않습니다. 유레카 실습 중이고 한개의 프로젝트에서 여러 서비스를 실행시킬 때 VM option을 사용해서 포트를 변경 하려 하는데 해당 옵션이 보이지 않아 문의 드립니다. Intellij 버전은IntelliJ IDEA 2022.2 (Ultimate Edition) / Build #IU-222.3345.118, built on July 26, 2022 입니다. 구글링을 해도 못찾겠어서 질문 드려요~! 이것 저것 누르다 보니 찾았습니다. Modify options 에서 VM options 라는 항목이 따로 있네요... 혹시 run/debug configuration 창의 형태(?)를 강의 하시는 화면과 동일하게 변경하는 옵션이 따로 있을까요..?
modelmapper의 경우 자주 사용될 것 같은데 bean으로 등록 해두고 사용하는게 좀 더 유리할까요?? userEntity -> userDto로 변환하여 리턴할때 기존에 파라미터로 받았던 dto값을 그대로 넘겨줘도 될 것 같은데요! 굳이 변환해서 넘겨주는 의도가 어떤것인지 궁금합니다!
안녕하세요. 윈도우 환경에서 강의를 듣던 중에 막히는 부분이 있어서요. PS C:\Users\hoirias\confluent-6.1.0> .\bin\windows\connect-distributed.bat .\etc\kafka\connect-distributed.properties Error: Could not find or load main class org.apache.kafka.connect.cli.ConnectDistributed Caused by: java.lang.ClassNotFoundException: org.apache.kafka.connect.cli.ConnectDistributed 아직 properties 파일 등을 수정하진 않은 상태인데요, 강의를 보면 수정 전에도 돌아는 가야 하는걸로 보여서요. 자바 버전은 현재 18.0.1.1을 사용하고 있으며, 컨플루언트 doc 참조하여 11.0.4까지 낮췄는데도 동일한 현상 입니다.
api gate way 서버에서 refresh를 해도 모든 서버에 다 적용이 되는건가요 ? 가령 ecommerce.yml파일에서 토큰 정보를 바꿨는데 api gate way 서버 api로 refresh를 해도 유저 서비스에 token도 바뀌는 건가요? 강의에서는 그렇게 나오긴했는데 맞는지 확시히 잘 몰라서 질문드립니다
안녕하세요. POSTMAN에서 POST방식으로 호출하는 경우, ConfigService쪽에 아래와 같은 오류가 발생합니다. 잘못 입력한 부분이 있는지 확인 부탁 드립니다. 1. user-service yml spring: application: name: user-service cloud: config: name: ecommerce config: import: optional:configserver:http://127.0.0.1:8888 2. config-service yml server: port: 8888 spring: application: name: config-service cloud: config: server: git: uri: file://D:\\Projects\\intelliJ\\git-local-repo 3. 오류로그 org.springframework.cloud.config.server.environment.NoSuchLabelException: No such label: main at org.springframework.cloud.config.server.environment.JGitEnvironmentRepository.refresh(JGitEnvironmentRepository.java:314) ~[spring-cloud-config-server-3.1.3.jar:3.1.3] at org.springframework.cloud.config.server.environment.JGitEnvironmentRepository.getLocations(JGitEnvironmentRepository.java:262) ~[spring-cloud-config-server-3.1.3.jar:3.1.3] at org.springframework.cloud.config.server.environment.MultipleJGitEnvironmentRepository.getLocations(MultipleJGitEnvironmentRepository.java:139) ~[spring-cloud-config-server-3.1.3.jar:3.1.3] at org.springframework.cloud.config.server.environment.AbstractScmEnvironmentRepository.findOne(AbstractScmEnvironmentRepository.java:55) ~[spring-cloud-config-server-3.1.3.jar:3.1.3] at org.springframework.cloud.config.server.environment.MultipleJGitEnvironmentRepository.findOneFromCandidate(MultipleJGitEnvironmentRepository.java:188) ~[spring-cloud-config-server-3.1.3.jar:3.1.3] at org.springframework.cloud.config.server.environment.MultipleJGitEnvironmentRepository.findOne(MultipleJGitEnvironmentRepository.java:173) ~[spring-cloud-config-server-3.1.3.jar:3.1.3] at org.springframework.cloud.config.server.environment.CompositeEnvironmentRepository.findOne(CompositeEnvironmentRepository.java:64) ~[spring-cloud-config-server-3.1.3.jar:3.1.3] at org.springframework.cloud.config.server.environment.EnvironmentEncryptorEnvironmentRepository.findOne(EnvironmentEncryptorEnvironmentRepository.java:61) ~[spring-cloud-config-server-3.1.3.jar:3.1.3] at org.springframework.cloud.config.server.environment.EnvironmentController.getEnvironment(EnvironmentController.java:134) ~[spring-cloud-config-server-3.1.3.jar:3.1.3] at org.springframework.cloud.config.server.environment.EnvironmentController.defaultLabelIncludeOrigin(EnvironmentController.java:116) ~[spring-cloud-config-server-3.1.3.jar:3.1.3] at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:104) ~[na:na] at java.base/java.lang.reflect.Method.invoke(Method.java:577) ~[na:na] at org.springframework.util.ReflectionUtils.invokeMethod(ReflectionUtils.java:282) ~[spring-core-5.3.21.jar:5.3.21] at org.springframework.cloud.context.scope.GenericScope$LockedScopedProxyFactoryBean.invoke(GenericScope.java:485) ~[spring-cloud-context-3.1.3.jar:3.1.3] at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186) ~[spring-aop-5.3.21.jar:5.3.21] at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763) ~[spring-aop-5.3.21.jar:5.3.21] at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:708) ~[spring-aop-5.3.21.jar:5.3.21] at org.springframework.cloud.config.server.environment.EnvironmentController$$EnhancerBySpringCGLIB$$dc31df60.defaultLabelIncludeOrigin(<generated>) ~[spring-cloud-config-server-3.1.3.jar:3.1.3] at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:104) ~[na:na] at java.base/java.lang.reflect.Method.invoke(Method.java:577) ~[na:na] at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205) ~[spring-web-5.3.21.jar:5.3.21] at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:150) ~[spring-web-5.3.21.jar:5.3.21] at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:117) ~[spring-webmvc-5.3.21.jar:5.3.21] at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:895) ~[spring-webmvc-5.3.21.jar:5.3.21] at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:808) ~[spring-webmvc-5.3.21.jar:5.3.21] at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87) ~[spring-webmvc-5.3.21.jar:5.3.21] at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1067) ~[spring-webmvc-5.3.21.jar:5.3.21] at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:963) ~[spring-webmvc-5.3.21.jar:5.3.21] at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006) ~[spring-webmvc-5.3.21.jar:5.3.21] at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:898) ~[spring-webmvc-5.3.21.jar:5.3.21] at javax.servlet.http.HttpServlet.service(HttpServlet.java:655) ~[tomcat-embed-core-9.0.64.jar:4.0.FR] at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883) ~[spring-webmvc-5.3.21.jar:5.3.21] at javax.servlet.http.HttpServlet.service(HttpServlet.java:764) ~[tomcat-embed-core-9.0.64.jar:4.0.FR] at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:227) ~[tomcat-embed-core-9.0.64.jar:9.0.64] at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162) ~[tomcat-embed-core-9.0.64.jar:9.0.64] at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53) ~[tomcat-embed-websocket-9.0.64.jar:9.0.64] at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189) ~[tomcat-embed-core-9.0.64.jar:9.0.64] at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162) ~[tomcat-embed-core-9.0.64.jar:9.0.64] at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100) ~[spring-web-5.3.21.jar:5.3.21] at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117) ~[spring-web-5.3.21.jar:5.3.21] at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189) ~[tomcat-embed-core-9.0.64.jar:9.0.64] at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162) ~[tomcat-embed-core-9.0.64.jar:9.0.64] at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93) ~[spring-web-5.3.21.jar:5.3.21] at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117) ~[spring-web-5.3.21.jar:5.3.21] at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189) ~[tomcat-embed-core-9.0.64.jar:9.0.64] at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162) ~[tomcat-embed-core-9.0.64.jar:9.0.64] at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201) ~[spring-web-5.3.21.jar:5.3.21] at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117) ~[spring-web-5.3.21.jar:5.3.21] at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189) ~[tomcat-embed-core-9.0.64.jar:9.0.64] at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162) ~[tomcat-embed-core-9.0.64.jar:9.0.64] at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:197) ~[tomcat-embed-core-9.0.64.jar:9.0.64] at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:97) ~[tomcat-embed-core-9.0.64.jar:9.0.64] at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:541) ~[tomcat-embed-core-9.0.64.jar:9.0.64] at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:135) ~[tomcat-embed-core-9.0.64.jar:9.0.64] at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:92) ~[tomcat-embed-core-9.0.64.jar:9.0.64] at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:78) ~[tomcat-embed-core-9.0.64.jar:9.0.64] at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:360) ~[tomcat-embed-core-9.0.64.jar:9.0.64] at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:399) ~[tomcat-embed-core-9.0.64.jar:9.0.64] at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:65) ~[tomcat-embed-core-9.0.64.jar:9.0.64] at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:890) ~[tomcat-embed-core-9.0.64.jar:9.0.64] at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1787) ~[tomcat-embed-core-9.0.64.jar:9.0.64] at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49) ~[tomcat-embed-core-9.0.64.jar:9.0.64] at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191) ~[tomcat-embed-core-9.0.64.jar:9.0.64] at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659) ~[tomcat-embed-core-9.0.64.jar:9.0.64] at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) ~[tomcat-embed-core-9.0.64.jar:9.0.64] at java.base/java.lang.Thread.run(Thread.java:833) ~[na:na] Caused by: org.eclipse.jgit.api.errors.RefNotFoundException: Ref main cannot be resolved at org.eclipse.jgit.api.CheckoutCommand.call(CheckoutCommand.java:223) ~[org.eclipse.jgit-5.12.0.202106070339-r.jar:5.12.0.202106070339-r] at org.springframework.cloud.config.server.environment.JGitEnvironmentRepository.checkout(JGitEnvironmentRepository.java:468) ~[spring-cloud-config-server-3.1.3.jar:3.1.3] at org.springframework.cloud.config.server.environment.JGitEnvironmentRepository.refresh(JGitEnvironmentRepository.java:307) ~[spring-cloud-config-server-3.1.3.jar:3.1.3] ... 65 common frames omitted
안녕하세요 강사님 강의 진짜 잘 듣고 있습니다! 설명 너무나 잘 해주시는데, 제가 이해 한걸 확인 좀 하고 싶어서 질문 합니다. spring MSA가 유레카서버(eureak server)에서 각 모듈(eureka client)들의 API 주소를 등록 하고, 클라이언트에서 gateway(eureka client)를 통해 들어오면 gateway에서 각 API를 호출 하는 형식인가요?
spring : application : name : user-service cloud : config : name : ecommerce config : import : optional:configserver:http://localhost:8888 application.yml 버전업이 되면서 boostrap.yml을 작성하는게 레거시가 되버렸네요... 그냥 application.yml에서 작업해도 될 것 같습니다
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 안녕하세요. rabbitMQ 도커 기동 관련해서 질문드립니다. 도커로 rabbitMQ를 기동하면서 기존에 사용하던 포트번호를 그대로 사용하는거 같은데, 현재 로컬 PC에선 기존에 설치했던 rabbitMQ가 돌아가면서 해당 포트를 사용하고 있는거 같습니다. (컴퓨터 부팅 후 따로 설정하지 않아도 15672 포트로 웹 관리 콘솔에 접근이 되더라구요) 이러한 부분에 관해 설정을 따로 하거나 로컬의 rabbitMQ를 삭제하지 않아도 문제가 없을까요? (추가적으로 MQ를 설치하면서 함께 설치했던 erlang을 로컬에서 삭제해도 도커에선 문제없이 작동하는지도 궁금합니다)
안보일 까봐 복사했습니다. 2022-05-02 07:18:24.438 INFO 1 --- [ main] c.c.c.ConfigServicePropertySourceLocator : Fetching config from server at : http://localhost:8888 2022-05-02 07:18:24.772 INFO 1 --- [ main] c.c.c.ConfigServicePropertySourceLocator : Connect Timeout Exception on Url - http://localhost:8888. Will be trying the next url if available 2022-05-02 07:18:24.773 WARN 1 --- [ main] c.c.c.ConfigServicePropertySourceLocator : Could not locate PropertySource: I/O error on GET request for "http://localhost:8888/capstone-cell-service/default": Connection refused; nested exception is java.net.ConnectException: Connection refused 2022-05-02 07:18:24.781 INFO 1 --- [ main] c.e.c.CapstoneCellServiceApplication : No active profile set, falling back to 1 default profile: "default" * 그래서 라고생각하는데 회원가입은 제대로 진행되는 반면, 로그인 시도 시 , 2022-05-02 10:10:21.244 ERROR 1 --- [o-auto-1-exec-3] o.a.c.c.C.[.[.[/].[dispatcherServlet] : Servlet.service() for servlet [dispatcherServlet] in context with path [] threw exception java.lang.NumberFormatException: Cannot parse null string at java.base/java.lang.Long.parseLong(Long.java:685) ~[na:na] at java.base/java.lang.Long.parseLong(Long.java:847) ~[na:na] at com.example.capstoneuserservice.security.AuthenticationFilter.successfulAuthentication(AuthenticationFilter.java:71) ~[classes!/:1.0] at org.springframework.security.web.authentication.AbstractAuthenticationProcessingFilter.doFilter(AbstractAuthenticationProcessingFilter.java:232) ~[spring-security-web-5.5.5.jar!/:5.5.5] at org.springframework.security.web.authentication.AbstractAuthenticationProcessingFilter.doFilter(AbstractAuthenticationProcessingFilter.java:212) ~[spring-security-web-5.5.5.jar!/:5.5.5] 오류가 발생하면서 못읽어오는 듯한 모습을 보여주는것 같습니다.. 안녕하세요 강사님. 강사님 강의듣고 프로젝트 진행중에 있는 학생입니다. 수업을 듣고 로컬에서 진행하는 것이 아닌 ec2에서 진행하고있습니다. docker hub에 push한 image를 ec2 서버로 접속 후 pull 하여 백그라운드로 run하여 구성하였습니다. 그런데 회원가입은 진행이 잘 됩니다만 로그인 실행시 long에 들어가는 token.expiration.time 이었나 null로 들어와서, 왠지 봤더니 아예 github에 public으로 존재하는 application.yml 파일을 읽어 오지 못하고있는것 같습니다. 저의 application.yml이 존재하는 깃허브 주소는 https://github.com/KimTaeKang57/capstone-cloud-config.git 입니다만. WARN 오류를 잘 보면 연결을 하지못하는 것같은데요, user-service의 bootstratp.yml 파일 내용은 spring : cloud : config : uri : http://127.0.0.1:8888 name : application 다음과같고, config-server의 application.yml은 spring : application : name : capstone-configure-service cloud : config : server : git : uri : https://github.com/KimTaeKang57/capstone-cloud-config.git default-label : master enabled : true 다음과 같이 되어있습니다. 그런데 ec2 서버에서 해서 그런가요. http://localhost:8888/../default에 접근을 하지못하는 오류가 발생하여 탐색과 고민끝에 질문드립니다. - configure-server run : docker run -d -p 8888:8888 —network ecommerce-network -e "spring.profiles.active-default" —name config-service zizoen123/capstone-configure-server:1.0 - user-service run : docker run -d --network ecommerce-network --name user-service -e "eureka.client.serviceUrl.defaultZone=http://discovery-service:8761/eureka/" -e "spring.datasource.url=jdbc:mariadb://mariadb:3306/capstone" zizoen123/capstone-user-service:1.0 run 명령어들은 다음과같습니다.. 뭔가 빠뜨린게 있을까요? 따로 kafka나 zipkin 등등은 모두 사용하지 않고 mariadb만 사용했습니다.
안녕하세요. 강의 내용중에 Event Driven Architecture 파트 설명중에 Commit Trancation에서는 상태값을 두어 하나의 트랜잭션에 여러 Row가 기록되지 않는데, 다음에 설명하는 Event Sourcing 파트에서는 데이터의 마지막 상태만 저장하는 것이 아닌, 해당 데이터에 수행된 전체 이력을 기록한다고 설명하고 있습니다. 이 부분이 헷갈리는데, 데이터를 관리하는 방식이 서로 다른데 (그 외 Saga pattern 등) 상황에 맞게 쓰면 된다는것인가요? Event Driven Architecture라는 큰 개념이 있고 그 하위?에는 Event Sourcing, Saga pattern 등 다양항 방법이 있다고 생각하고 있는데 잘못 이해한것일까요? 감사합니다.
이렇게 설정 하였지만, UserController requestMapping부분에서 user-service 부분을 빼고 요청 보내면 자꾸 404 에러가 뜹니다.. 그래서 다시 userController requestMapping에 user-service를 추가하니깐 404 에러 없이 데이터를 가져 오더라구요.. 그래서 지금 login 부분을 계속 실패하고 있는데, 뭐가 잘못되었는지 알 수 있을까요?? 아 참고로 - RewritePath=/user-service/(?<segment>.*),/$\ {segment } 이 모양과 - RewritePath=/user-service/(?<segment>.*), /$\ {segment } 이 모양 둘다 해봤지만 결과는 계속 404 에러를 리턴합니다..
실습 따라서 하다가 문득 궁금해서 질문남깁니다. 이전 강의에서 말씀하셨는지 찾기어려워서 .. Cloud Gateway 애플리케이션을 Eureka Server에 등록하는 이유가 뭔가요? 인스턴스로 등록할 각 서비스들만 구독 시켜둬도 운영은 가능한게 아닌가요..? 직접 해보니fetch-registry, register-with-eureka 를 false 로 해도 되기는 하더라구요. 따로 적어둔거를 봤는데 fetch-registry, register-with-eureka 를 true로 하는 것이 유레카 서버로 부터 갱신된 인스턴스 정보들을 받기 위함이라고 적어두긴했는데 맞는건가요?
안녕하세요. 강의 내용중에 network 구성하면서요. docker network create --gateway 172.18.0.1 --subnet 172.18.0.0/16 ecommerce-network gateway하고 subnet 지정하지 않고 만들 경우 직접 IP 지정해서 container 띄울 경우 오류가 발생할 수 있다는게 이해가 잘 안됩니다...
안녕하세요. Producer 구조 관련해서 문의드립니다. 어디선가 이해를 못하고 있는건지... order-service에서 catalogs-service 호출할때 KafkaProducer를 만들어서 send할때 그냥 topic, orderDto만 jsonString 형식으로 보냈는데 왜 OrderProducer에서는 스키마, 필드 등 형식을 만들어서 send하는지요? 둘다 Topic에 전달하는건 같고... 차이점은 다른 서비스에 전송(catalogs-service)하냐 자신(order-service)에게 전송하냐 차이가 보이는데 결국 Topic에 전송하는거라.. 같은게 아닌가 합니다.