묻고 답해요
141만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
해결됨Spring Cloud로 개발하는 마이크로서비스 애플리케이션(MSA)
강사님 Schema에 대해 궁금점이 있습니다.
좋은 강의 감사드립니다.덕분에 많은 걸 배워서 마음이 든든해 집니다.그런데, 하나 궁금한 점이 있어서 여쭤보고 싶습니다.우리 개발자들은 사실 귀찮은 걸 싫어하기 때문에 기술이 나날이 발전해 가는 것이라 생각이 되는데요, 강사님이 설명주신 부분처럼 Schema나 Payload를 계속해서 수동으로 만드는 것은 개발자 입장에서는 매우 비효율적일거라 생각이 됩니다.따라서, 이미 저 부분을 해결하기 위한 많은 부분들이 고려되었을 것으로 예상이 되는데요, 혹시 저 부분을 편하게 등록할 수 있는 다른 방법이 있을까요? 키워드라도 주시면 찾아서 공부해 나가는데 큰 도움이 될 것 같습니다. 감사합니다.
-
미해결15일간의 빅데이터 파일럿 프로젝트
오라클 virtualbox 윈도우11 호스트 전용 네트워크 설정
강의에서는 호환문제때문에 5.0 설치하라고 하셨는데제 노트북에서 설치 후 실행 자체가 되지 않아virtualbox 6.1.44를 다운받았습니다. 근데 네트워크 설정에서 호스트 전용 네트워크 칸이 뜨지 않아서요.어떻게 들어가서 설정해야할까요?저장
-
미해결카프카 완벽 가이드 - ksqlDB
macbook m1 pro, mac mini m2 pro 모두 설치가 안됩니다.
안녕하세요. m1 맥북과 m2 pro 맥미니에서 모두 설치가 되지 않습니다. VirrualBox 는 현재 download 할 수 있는 7.0.8로 설치 했고, ubuntu 는 ubuntu-20.04.6-desktop-amd64.iso 로 설치했습니다. 처음 시작하면 console 창에"RETBleed: WARNING: spectre v2 mitigation leaves CPU vulnerable to RETBleed attacks, data leaks posssible!"이런 에러가 나옵니다.
-
미해결카프카 완벽 가이드 - 커넥트(Connect) 편
[수업질문] mysql_cdc_oc_source_test01.json 업로드 에러
안녕하세요. 'Debezium Source Connector 생성하기'수강중에 진행이 막혀 질문드립니다.config를 register_connector로 등록할 때 발생한 이슈인데해당 이슈 : { "error_code": 400, "message": "Connector configuration is invalid and contains the following 1 error(s):\nUnable to connect: Communications link failure\n\nThe last packet sent successfully to the server was 0 milliseconds ago. The driver has not received any packets from the server.\nYou can also find the above list of errors at the endpoint `/connector-plugins/{connectorType}/config/validate`" }= 커넥터 구성이 잘못되어 MySQL 서버에 연결할 수 없다로 해석되어 다음과 같은 해결책을 시도해보았습니다.0. http GET http://localhost:8083/connector-plugins | jq '.[].class' 조회시 io.debezium.connector.mysql.MySqlConnector 정상등록 확인1.MySQL 서버 정상실행중 확인2.포트 확인 > SHOW VARIABLES LIKE 'port'; >> 33063.네트워크 연결 상태 확인3-1. mysql 외부접속 허용 확인 : my.cnf에서 bind항목 점검 >> 없음=기본세팅인 허용3-2. 방화벽 규칙 확인 : Chain INPUT, FORWARD, OUTPUT : Accept , sudo iptables -A INPUT -p tcp --dport 3306 -j ACCEPT4.SSL 문제인가? >> my.cnf에 따로 ssl-mode 설정은 없음.5.ifconfig >> enp0s8 inet 192.168.56.101 이렇게 확인했음에도 해결되지않아 도움요청드립니다. config{ "name": "mysql_cdc_oc_source_test01", "config": { "connector.class": "io.debezium.connector.mysql.MySqlConnector", "tasks.max": "1", "database.hostname": "192.168.56.101", "database.port": "3306", "database.user": "connect_dev", "database.password": "connect_dev", "database.server.id": "10000", "database.server.name": "test01", "database.include.list": "oc", "database.allowPublicKeyRetrieval": "true", "database.history.kafka.bootstrap.servers": "192.168.56.101:9092", "database.history.kafka.topic": "schema-changes.mysql.oc", "key.converter": "org.apache.kafka.connect.json.JsonConverter", "value.converter": "org.apache.kafka.connect.json.JsonConverter" } }connect 로그는 다음과 같습니다.ERROR Failed testing connection for jdbc:mysql://192.168.56.101:3306/?useInformationSchema=true&nullCatalogMeansCurrent=false&useUnicode=true&characterEncoding=UTF-8&characterSetResults=UTF-8&zeroDateTimeBehavior=CONVERT_TO_NULL&connectTimeout=30000 with user 'connect_dev' (io.debezium.connector.mysql.MySqlConnector:103) com.mysql.cj.jdbc.exceptions.CommunicationsException: Communications link failure The last packet sent successfully to the server was 0 milliseconds ago. The driver has not received any packets from the server. at com.mysql.cj.jdbc.exceptions.SQLError.createCommunicationsException(SQLError.java:174) at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:64) at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:829) at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:449) at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:242) at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:198) at io.debezium.jdbc.JdbcConnection.lambda$patternBasedFactory$1(JdbcConnection.java:244) at io.debezium.jdbc.JdbcConnection.connection(JdbcConnection.java:888) at io.debezium.jdbc.JdbcConnection.connection(JdbcConnection.java:883) at io.debezium.jdbc.JdbcConnection.connect(JdbcConnection.java:411) at io.debezium.connector.mysql.MySqlConnector.validateConnection(MySqlConnector.java:98) at io.debezium.connector.common.RelationalBaseSourceConnector.validate(RelationalBaseSourceConnector.java:54) at org.apache.kafka.connect.runtime.AbstractHerder.validateConnectorConfig(AbstractHerder.java:459) at org.apache.kafka.connect.runtime.AbstractHerder.lambda$validateConnectorConfig$2(AbstractHerder.java:362) 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:829) Caused by: com.mysql.cj.exceptions.CJCommunicationsException: Communications link failure
-
미해결카프카 완벽 가이드 - ksqlDB
RocksDB에서 StateStore로 읽어온 값은 메모리 상태에 저장될까요?
안녕하세요, 철민님. 항상 좋은 강의 감사드립니다! 한 가지 질문 드리고 싶은 것이 있어 글을 작성합니다. 혹시 RocksDB에서 StateStore로 읽어온 데이터는 어디에 저장이 되어 있을까요? RocksDB는 로컬에 Key / Value 형식으로 데이터를 가지는 것으로 이해를 했는데, StateStore로 읽어오면 그 값은 메모리에 있을까요? StateStore의 구현체가 RocksDB도 있고, In-Memory 같은 형태도 존재하고 있는데, 이렇게 구현체가 따로 있는 것으로 추정컨데 RocksDB를 이용한 StateStore는 값을 읽어와서 메모리에 따로 저장하지 않고, 필요할 때 마다 로컬 디스크에 있는 값을 바로바로 불러오는게 아닐까 싶은데... 어떤 형식으로 동작하는 것일까요...?
-
해결됨카프카 완벽 가이드 - 코어편
Custom 객체 직렬화 kafka-console-consumer 조회 시 null
텍스트가 추가될 때마다 메시지를 전송하는 Producer의 Custom 객체 직렬화 구현 - 01~02강의에서 kafka서버에서 kafka-console-consumer --bootstrap-server localhost:9092 --topic order-serde-topic 로 데이터 조회 시 null이 조회되는 에러가 있습니다. 원인은 "텍스트가 추가될 때마다 메시지를 전송하는 Producer의 Custom 객체 직렬화 구현 - 01" 번 강의에서 OrderSerializer 객체에서 serialize 메소드의 serializedOrder 를 null 로 초기화 한 뒤에 값을 대입하지 않고 반환하도록 하고 지나갔네요 objectMapper.writeValueAsBytes(order); 부분을 아래와 같이 수정하면 됩니다.serializedOrder = objectMapper.writeValueAsBytes(order);
-
해결됨카프카 완벽 가이드 - 커넥트(Connect) 편
JDBC source connector - SQL server 질문
항상 답변 감사합니다.SQL server 에서 JDBC source connector 연결 구성중에 질문있어 드립니다. 환경세팅은 강의와 유사하게 진행하였습니다.timestamp와 incrementing모드로 Config json을 구성하였고MS-SQL DB는 connect_dev 계정에 om 데이터베이스의 customers 테이블을 사용하였습니다.쿼리는 변환하여 삽입하였습니다 { "name": "mssql_jdbc_source_customers", "config": { "connector.class": "io.confluent.connect.jdbc.JdbcSourceConnector", "tasks.max": "1", "connection.url": "jdbc:sqlserver://localhost:1433;databaseName=om;trustServerCertificate=true", "connection.user": "connect_dev", "connection.password": "connect_dev", "topic.prefix": "mssql_jdbc_", "table.whitelist": "om.customers", "poll.interval.ms": 10000, "mode": "timestamp+incrementing", "incrementing.column.name": "customer_id", "timestamp.column.name": "system_upd" } }config 역시 강의와 유사하나 차이점으론 trustServerCertificate=true 옵션을 줘서 ssl 인증 문제를 회피하였습니다. 이후 질문 드리고 싶은 주요 문제로는 아래의 에러메시지ERROR [mssql_jdbc_source_customers|task-0] WorkerSourceTask{id=mssql_jdbc_source_customers-0} Task threw an uncaught and unrecoverable exception. Task is being killed and will not recover until manually restarted (org.apache.kafka.connect.runtime.WorkerTask:195) org.apache.kafka.connect.errors.ConnectException: Cannot make incremental queries using timestamp columns [system_upd] on [] because all of these columns nullable. at io.confluent.connect.jdbc.source.JdbcSourceTask.validateNonNullable(JdbcSourceTask.java:546) at io.confluent.connect.jdbc.source.JdbcSourceTask.start(JdbcSourceTask.java:196) at org.apache.kafka.connect.runtime.WorkerSourceTask.initializeAndStart(WorkerSourceTask.java:225) at org.apache.kafka.connect.runtime.WorkerTask.doRun(WorkerTask.java:186) at org.apache.kafka.connect.runtime.WorkerTask.run(WorkerTask.java:243) 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:829) timestamp columns [system_upd] on [] because all of these columns nullable. (null이라 문제다)가 원인이라는건데,SELECT TABLE_SCHEMA, TABLE_NAME, COLUMN_NAME, IS_NULLABLE FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME = 'customers' AND COLUMN_NAME = 'system_upd'해당 쿼리를 통해 IS_NULLABLE 컬럼이 NO로 되어있음(=null이 아님)을 확인하였습니다. 이 null 문제의 경우 다른 생각해 볼 접근방법이 뭐가 있을지 여쭤보고싶습니다.incrementing 모드에서는 토픽생성까지 성공하였습니다.감사합니다.
-
미해결카프카 완벽 가이드 - 커넥트(Connect) 편
안녕하세요. oracle source connector 생성 후 topic 만들 시 발생하는 오류 질문입니다.
안녕하세요. debezium oracle connector를 생성하고 topic 만들 시에 발생하는 오류에 관련하여 질문 있습니다.우선 오류는 [2023-05-07 20:39:26,049] INFO WorkerSourceTask{id=oracle_connector-0} flushing 0 outstanding messages for offset commit (org.apache.kafka.connect.runtime.WorkerSourceTask:505)[2023-05-07 20:39:26,049] WARN Couldn't commit processed log positions with the source database due to a concurrent connector shutdown or restart (io.debezium.connector.common.BaseSourceTask:243)[2023-05-07 20:39:31,455] WARN Couldn't resolve server kafka:9092 from bootstrap.servers as DNS resolution failed for kafka (org.apache.kafka.clients.ClientUtils:75)[2023-05-07 20:39:31,457] INFO [Producer clientId=UK-dbhistory] Closing the Kafka producer with timeoutMillis = 0 ms. (org.apache.kafka.clients.producer.KafkaProducer:1189)[2023-05-07 20:39:31,457] INFO WorkerSourceTask{id=oracle_connector-0} Committing offsets (org.apache.kafka.connect.runtime.WorkerSourceTask:488)[2023-05-07 20:39:31,458] INFO WorkerSourceTask{id=oracle_connector-0} flushing 0 outstanding messages for offset commit (org.apache.kafka.connect.runtime.WorkerSourceTask:505)[2023-05-07 20:39:31,459] ERROR WorkerSourceTask{id=oracle_connector-0} Task threw an uncaught and unrecoverable exception (org.apache.kafka.connect.runtime.WorkerTask:191)org.apache.kafka.common.KafkaException: Failed to construct kafka producer at org.apache.kafka.clients.producer.KafkaProducer.<init>(KafkaProducer.java:441) at org.apache.kafka.clients.producer.KafkaProducer.<init>(KafkaProducer.java:301) at io.debezium.relational.history.KafkaDatabaseHistory.start(KafkaDatabaseHistory.java:235) at io.debezium.relational.HistorizedRelationalDatabaseSchema.<init>(HistorizedRelationalDatabaseSchema.java:40) at io.debezium.connector.oracle.OracleDatabaseSchema.<init>(OracleDatabaseSchema.java:35) at io.debezium.connector.oracle.OracleConnectorTask.start(OracleConnectorTask.java:55) at io.debezium.connector.common.BaseSourceTask.start(BaseSourceTask.java:106) at org.apache.kafka.connect.runtime.WorkerSourceTask.execute(WorkerSourceTask.java:232) at org.apache.kafka.connect.runtime.WorkerTask.doRun(WorkerTask.java:189) at org.apache.kafka.connect.runtime.WorkerTask.run(WorkerTask.java:239) at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) at java.util.concurrent.FutureTask.run(FutureTask.java:266) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) at java.lang.Thread.run(Thread.java:750)Caused by: org.apache.kafka.common.config.ConfigException: No resolvable bootstrap urls given in bootstrap.servers at org.apache.kafka.clients.ClientUtils.parseAndValidateAddresses(ClientUtils.java:89) at org.apache.kafka.clients.ClientUtils.parseAndValidateAddresses(ClientUtils.java:48) at org.apache.kafka.clients.producer.KafkaProducer.<init>(KafkaProducer.java:415) ... 14 more[2023-05-07 20:39:31,461] ERROR WorkerSourceTask{id=oracle_connector-0} Task is being killed and will not recover until manually restarted (org.apache.kafka.connect.runtime.WorkerTask:192)[2023-05-07 20:39:31,461] INFO Stopping down connector (io.debezium.connector.common.BaseSourceTask:192)[2023-05-07 20:39:31,462] WARN Could not stop task (org.apache.kafka.connect.runtime.WorkerSourceTask:175)java.lang.NullPointerException at io.debezium.connector.oracle.OracleConnectorTask.doStop(OracleConnectorTask.java:129) at io.debezium.connector.common.BaseSourceTask.stop(BaseSourceTask.java:206) at io.debezium.connector.common.BaseSourceTask.stop(BaseSourceTask.java:176) at org.apache.kafka.connect.runtime.WorkerSourceTask.close(WorkerSourceTask.java:173) at org.apache.kafka.connect.runtime.WorkerTask.doClose(WorkerTask.java:168) at org.apache.kafka.connect.runtime.WorkerTask.doRun(WorkerTask.java:195) at org.apache.kafka.connect.runtime.WorkerTask.run(WorkerTask.java:239) at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) at java.util.concurrent.FutureTask.run(FutureTask.java:266) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) at java.lang.Thread.run(Thread.java:750) 이렇게 발생하는데 topic은 생성되지 않고 connector만 생성되었습니다.kafka task를 삭제하지 못하고 있다는데, 어떻게 해야하나요? connector를 삭제하고 다시 생성해도 동일한 오류가 발생합니다. -oracle connector 설정 파일입니다-{ "name": "oracle_connector", "config": { "connector.class": "io.debezium.connector.oracle.OracleConnector", "key.converter": "org.apache.kafka.connect.json.JsonConverter", "key.converter.schemas.registry.url": "http://0.0.0.0:8081", "database.hostname": "mydb", "database.port": "port", "database.user": "user", "database.password": "userpwd", "database.dbname": "dbname", "topic.prefix": "test_", "tasks.max": "1", "database.history.kafka.bootstrap.servers": "kafka:9092", "database.history.kafka.topic": "dbhistory.testdb", "database.server.name": "servername", "database.out.server.name": "servername" } }
-
미해결Spring Cloud로 개발하는 마이크로서비스 애플리케이션(MSA)
선생님 테스트에 대해서 질문있습니다.
지금 제가 도커를 먼저 알고 싶어서 카프카까지 다 들은후 도커부터 듣는 중인데요. 근데 카프카할때부터인가 test를 다 안하고 넘기는 설정을 하시는거 같은데 왜 이렇게 하시나요?? 이게 실제 운영환경이라면 이렇게 못하잖아요?(테스트 코드가 있을 수도 있으니까요) 어떤걸 참고하면서 하면 이 상황을 타개해 나갈수 있을까요?
-
미해결15일간의 빅데이터 파일럿 프로젝트
오라클 Virtualbox 설치 후 서버 실행시 오류입니다.
VM Name: Server01Failed to open/create the internal network 'HostInterfaceNetworking-VirtualBox Host-Only Ethernet Adapter' (VERR_INTNET_FLT_IF_NOT_FOUND).Failed to attach the network LUN (VERR_INTNET_FLT_IF_NOT_FOUND).Result Code:E_FAIL (0X80004005)Component:ConsoleWrapInterface:IConsole {6ac83d89-6ee7-4e33-8ae6-b257b2e81be8} 이런 오류가 뜨는데 어떻게 해결하면 좋을까요?? 구글링 해보니 host-only-ethernet을 새로만들고 다시 해보라고 하던데 그 방법도 되지 않습니다.Virtualbox 버전은 7.0.8 최신버전입니다.
-
미해결[아파치 카프카 애플리케이션 프로그래밍] 개념부터 컨슈머, 프로듀서, 커넥트, 스트림즈까지!
이해한게 맞는지 문의 드리고 싶습니다.
안녕하세요. 강의 끝까지 잘 들었습니다.이해한 바가 맞는지 궁금해서 문의 드립니다.카프카 커넥트데이터 파이프라인을 반복적이라고 하는 것이 1분에 한번씩 브로커로 Record를 전송하고 이를 Consumer에서 가져와서 사용하는 경우에 카프카 커넥터가 적합하다고 하신 것으로 이해하면 될까요? 반면 1회 데이터를 Producer가 전송하고 Consumer가 처리하는 경우에는 일반적인 Producer/Consumer가 적합하다는 것으로 이해했는데 맞는지 궁금합니다.Producer/Consumer or Source Connector/Sync ConnectorProducer(Source Connector)쪽이 3개의 Server, Consumer쪽이 3개의 서버로 구성된다고 할때 실제 각 Producer/Consumer는 개별 서버에서 Application을 실행시켜줘야 하는 것으로 이해가 되는데 이게 맞을까요?좋은 강의 제공해주셔서 감사합니다.
-
미해결Spring Cloud로 개발하는 마이크로서비스 애플리케이션(MSA)
랜덤 포트와 OAuth2 Redirect URI 설정 문제
랜덤 포트를 지정하는게 좋다고 설명해주셨는데요Kakao login OAuth2 를 사용해서 로그인하는 경우 Redirect URI를 지정해야합니다. Gateway 주소(http://localhsot:8080/user-service/api/...)를 등록해도 결국 localhost:54241 이렇게 넘어 가기 때문에 에러가 발생하는데 이 경우에도 랜덤 포트 사용하는게 맞나요?
-
미해결Spring Cloud로 개발하는 마이크로서비스 애플리케이션(MSA)
[수업질문] config-server 실행은 되는데, 동작을 안 함
windows 10, eclipse에서 수업을 따라하고 있습니다.서버 동작도 안 되었는데.m2파일 중 configu와 관련된 내용 지우고 이클립스 다시 시작하니 config서버가 동작은 합니다.그런데git 레파지토리에 있는 ecommerce.yml파일을 읽지 못 하는지, 아니면 자신이 일반 서버로 착각하는지 404 에러가 납니다.이미지를 첨부했습니다.어떻게 해야 이 고통에서 벗어날 수 있을까요?동영상 강의 보면, 쉽게 배울 수 있을 거라 생각했는데동영상 강의 촬영일과 2년 정도 차이가 나니 이런 저런 걸로 계속 에러가 나네요.
-
미해결Spring Cloud로 개발하는 마이크로서비스 애플리케이션(MSA)
kafka sink 생성 시 tasks state failed
안녕하세요 강사님!강의 잘보고 있습니다.강의시간 18:58에 sink 생성 후 status 확인 값에서 tasks.state 값이 failed라고 뜹니다.그래서 connect 로그를 보면 아래와 같이 뜹니다.[2023-05-02 00:04:12,636] ERROR [my-order-sink-connect|task-0] WorkerSinkTask{id=my-order-sink-connect-0} Task threw an uncaught and unrecoverable exception. Task is being killed and will not recover until manually restarted (org.apache.kafka.connect.runtime.WorkerTask:196) org.apache.kafka.connect.errors.ConnectException: Tolerance exceeded in error handler at org.apache.kafka.connect.runtime.errors.RetryWithToleranceOperator.execAndHandleError(RetryWithToleranceOperator.java:223) at org.apache.kafka.connect.runtime.errors.RetryWithToleranceOperator.execute(RetryWithToleranceOperator.java:149) at org.apache.kafka.connect.runtime.WorkerSinkTask.convertAndTransformRecord(WorkerSinkTask.java:516) at org.apache.kafka.connect.runtime.WorkerSinkTask.convertMessages(WorkerSinkTask.java:493) at org.apache.kafka.connect.runtime.WorkerSinkTask.poll(WorkerSinkTask.java:332) at org.apache.kafka.connect.runtime.WorkerSinkTask.iteration(WorkerSinkTask.java:234) at org.apache.kafka.connect.runtime.WorkerSinkTask.execute(WorkerSinkTask.java:203) at org.apache.kafka.connect.runtime.WorkerTask.doRun(WorkerTask.java:189) at org.apache.kafka.connect.runtime.WorkerTask.run(WorkerTask.java:244) at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) at java.util.concurrent.FutureTask.run(FutureTask.java:266) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) at java.lang.Thread.run(Thread.java:748) Caused by: org.apache.kafka.connect.errors.DataException: JsonConverter with schemas.enable requires "schema" and "payload" fields and may not contain additional fields. If you are trying to deserialize plain JSON data, set schemas.enable=false in your converter configuration. at org.apache.kafka.connect.json.JsonConverter.toConnectData(JsonConverter.java:328) at org.apache.kafka.connect.storage.Converter.toConnectData(Converter.java:88) at org.apache.kafka.connect.runtime.WorkerSinkTask.lambda$convertAndTransformRecord$4(WorkerSinkTask.java:516) at org.apache.kafka.connect.runtime.errors.RetryWithToleranceOperator.execAndRetry(RetryWithToleranceOperator.java:173) at org.apache.kafka.connect.runtime.errors.RetryWithToleranceOperator.execAndHandleError(RetryWithToleranceOperator.java:207) ... 13 more 구글링 해봐도 원하는 답변들이 없어 남겨봅니다.
-
해결됨카프카 완벽 가이드 - 커넥트(Connect) 편
안녕 하세요
안녕 하세요 궁금한 사항이 있어서 문의드립니다.Debezium CDC source connector 강의 내용중redo 로그에 commit되지 않은 데이터도 쓰여진다고 말씀해주셨는데요저보다 당연히 잘 아시겠지만 제가 알기로는 commit하면 버퍼에 쌓이고 디스크에는 반영되지 않고 그 이후에 주기적으로redo log에 쌓이는 것으로 알고 있습니다즉 commit이 되어야 redo log에 쌓이는 걸로 알고 있는데 제가 잘못알고 있는걸까요? 감사합니다.
-
미해결Spring Cloud로 개발하는 마이크로서비스 애플리케이션(MSA)
user-service에서 설정파일 정보를 읽어오지 못하고 있습니다.
현재 학습하고 있는 스프링 버전은 3.0.5 버전입니다.implementation 'org.springframework.cloud:spring-cloud-starter-config' implementation 'org.springframework.cloud:spring-cloud-starter-bootstrap'위 두개의 라이브러리를 추가한 후 bootstrap.yml 파일을 생성해서 아래와 같이 작성을 하면 spring: cloud: config: uri: http://localhost:8888 name: ecommerce서버 실행 후 아래와 같이 로그가 출력됩니다. . ____ _ __ _ _ /\\ / ___'_ __ _ _(_)_ __ __ _ \ \ \ \ ( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \ \\/ ___)| |_)| | | | | || (_| | ) ) ) ) ' |____| .__|_| |_|_| |_\__, | / / / / =========|_|==============|___/=/_/_/_/ :: Spring Boot :: (v3.0.5) 2023-05-01T17:24:26.009+09:00 INFO 81323 --- [ restartedMain] c.c.c.ConfigServicePropertySourceLocator : Fetching config from server at : http://localhost:8888 2023-05-01T17:24:26.117+09:00 INFO 81323 --- [ restartedMain] c.c.c.ConfigServicePropertySourceLocator : Located environment: name=ecommerce, profiles=[default], label=null, version=6bb0cd579b695bb651be6edc215d85335734c939, state=null 2023-05-01T17:24:26.117+09:00 INFO 81323 --- [ restartedMain] b.c.PropertySourceBootstrapConfiguration : Located property source: [BootstrapPropertySource {name='bootstrapProperties-configClient'}, BootstrapPropertySource {name='bootstrapProperties-file:///Users/..../git-local-repo/ecommerce.yml'}]name=ecommerce로 정상적으로 불러지고 있고, yml 파일 위치도 정상적으로 출력이 됩니다.하지만 서버가 실행되다가 8888포트를 이미 사용을 하고 있다는 메시지와 함께 서버가 종료가 되었습니다.검색을 해 보니 2.4버전대부터 설정하는 방법이 바뀌었다고 해서 변경된 방법으로 적용을 했습니다.bootstrap 라이브러리를 삭제했습니다.implementation 'org.springframework.cloud:spring-cloud-starter-config'bootstrap.yml 파일을 삭제했습니다.application.yml 파일에 내용을 추가했습니다.spring: config: name: ecommerce import: optional:configserver:http://localhost:8888그리고 실행을 하면 아래와 같이 name=user-service로 적용이 됩니다.2023-05-01T17:33:51.792+09:00 INFO 82127 --- [ restartedMain] o.s.c.c.c.ConfigServerConfigDataLoader : Fetching config from server at : http://localhost:8888 2023-05-01T17:33:51.792+09:00 INFO 82127 --- [ restartedMain] o.s.c.c.c.ConfigServerConfigDataLoader : Located environment: name=user-service, profiles=[default], label=null, version=6bb0cd579b695bb651be6edc215d85335734c939, state=null이유가 application.yml 파일에서 config 설정 윗 부분에spring: application: name: user-service이렇게 application name을 설정을 해서 그렇게 나오는것 같습니다.그리고 로그중에 아래와 같이 뜨는데2023-05-01T17:33:51.793+09:00 INFO 82127 --- [ restartedMain] o.s.b.devtools.restart.ChangeableUrls : The Class-Path manifest attribute in /Users/.../.gradle/caches/modules-2/files-2.1/com.sun.xml.bind/jaxb-impl/4.0.1/bad26cea1d483dda57b6f634cdeaca3238637aea/jaxb-impl-4.0.1.jar referenced one or more files that do not exist: file:/Users/.../.gradle/caches/modules-2/files-2.1/com.sun.xml.bind/jaxb-impl/4.0.1/bad26cea1d483dda57b6f634cdeaca3238637aea/jaxb-core.jar,file:/Users/.../.gradle/caches/modules-2/files-2.1/com.sun.xml.bind/jaxb-impl/4.0.1/bad26cea1d483dda57b6f634cdeaca3238637aea/angus-activation.jar 2023-05-01T17:33:51.794+09:00 INFO 82127 --- [ restartedMain] o.s.b.devtools.restart.ChangeableUrls : The Class-Path manifest attribute in /Users/.../.gradle/caches/modules-2/files-2.1/com.sun.xml.bind/jaxb-core/4.0.1/e8bf2d711d2d4250537199602bccae0cd4e62726/jaxb-core-4.0.1.jar referenced one or more files that do not exist: file:/Users/.../.gradle/caches/modules-2/files-2.1/com.sun.xml.bind/jaxb-core/4.0.1/e8bf2d711d2d4250537199602bccae0cd4e62726/jakarta.activation-api.jar,file:/Users/.../.gradle/caches/modules-2/files-2.1/com.sun.xml.bind/jaxb-core/4.0.1/e8bf2d711d2d4250537199602bccae0cd4e62726/jakarta.xml.bind-api.jar아래의 라이브러리중 어떤것을 설치를 해도 똑같은 로그가 출력됩니다.파일이 존재하지 않는다는 내용인데.. INFO레벨로 출력이 되서 우선은 그냥 넘어갔습니다. implementation 'javax.xml.bind:jaxb-api:2.4.0-b180830.0359' // implementation group: 'javax.xml.bind', name: 'jaxb-api', version: '2.2.4' user-service를 실행을 시켜보면 아래와 같이 외부 설정 파일의 값을 읽어오지 못하고 있습니다.It's Working in User Service, port(local.server.port)=56942, port(server.port)=0, token secret=null, token expiration time=null아래의 공식 문서도 참고를 해 봤는데 어느 부분이 잘못됐는지 모르겠더라구요..https://docs.spring.io/spring-cloud-config/docs/current/reference/html/이 전단계의 git-local-repo 디렉토리를 만들어서 git을 commit까지 하는것은 정상적으로 됐고, 설정파일을 읽어오는것까지는 정상적으로 됐었습니다.제 경우 한가지 이슈사항이 있던 부분은 git branch가 master로 되어있어서 오류가 나는 부분이 있어서 그 부분은 git branch를 main으로 하나 만들어서 적용을 하니 해당 오류는 해결이 됐었습니다. 최신 버전으로 적용을 할려고 하니 이리저리 쉽지가 않네요..
-
미해결Spring Cloud로 개발하는 마이크로서비스 애플리케이션(MSA)
config-service docker 실행 시 오류
안녕하세요. 강의에서 config-service의 yml 파일 내 uri와 jks 파일의 위치를 바꿔서 docker에서 실행해도 강의에서 나왔던 오류가 발생합니다. bootstrap.ymlencrypt: # key: abcdefghijkimnopqrstuvwxz0123456789 key-store: location: file:/apiEncryptionKey.jks password: test1234 alias: apiEncryptionKeyjks 파일의 위치를 Dockerfile과 동일한 경로에 복사했습니다. application.ymlserver: port: 8888 spring: application: name: config-server rabbitmq: host: 127.0.0.1 port: 5672 username: guest password: guest cloud: config: server: native: search-locations: file://C:\work\springcloud\git-local-repo git: uri: https://github.com/mjjunng/spring-cloud-config management: endpoints: web: exposure: include: health, busrefresh docker 실행 로그해당 에러를 확인해보면, 강의에서 파일의 위치를 변경하지 않았던 에러와 동일한 것으로 생각됩니다. 강의와 마찬가지로 파일 경로를 바꿔도 해당 에러가 발생하는데, 제가 놓친 부분이 있을까요?
-
미해결Spring Cloud로 개발하는 마이크로서비스 애플리케이션(MSA)
kafka connect 실행 에러가 발생합니다..
강사님이 제공하기 파일로 진행하고 있었습니다..\bin\windows\connect-distributed.bat . \etc\kafka\connect-distributed.properties위의 명령어로 kafka connect을 실행하려하는데 아래와 같은 에러가 발생합니다.log4j:ERROR Could not read configuration file from URL [file:C:/Work/confluent-7.3.1/config/connect-log4j.properties].java.io.FileNotFoundException: C:\Work\confluent-7.3.1\config\connect-log4j.properties (지정된 경로를 찾을 수 없습니다)at java.base/java.io.FileInputStream.open0(Native Method)at java.base/java.io.FileInputStream.open(FileInputStream.java:219)at java.base/java.io.FileInputStream.<init>(FileInputStream.java:157)at java.base/java.io.FileInputStream.<init>(FileInputStream.java:112)at java.base/sun.net.www.protocol.file.FileURLConnection.connect(FileURLConnection.java:86)at java.base/sun.net.www.protocol.file.FileURLConnection.getInputStream(FileURLConnection.java:184)at org.apache.log4j.PropertyConfigurator.doConfigure(PropertyConfigurator.java:557)at org.apache.log4j.helpers.OptionConverter.selectAndConfigure(OptionConverter.java:504)at org.apache.log4j.LogManager.<clinit>(LogManager.java:119)at org.slf4j.impl.Reload4jLoggerFactory.<init>(Reload4jLoggerFactory.java:67)at org.slf4j.impl.StaticLoggerBinder.<init>(StaticLoggerBinder.java:72)at org.slf4j.impl.StaticLoggerBinder.<clinit>(StaticLoggerBinder.java:45)at org.slf4j.LoggerFactory.bind(LoggerFactory.java:150)at org.slf4j.LoggerFactory.performInitialization(LoggerFactory.java:124)at org.slf4j.LoggerFactory.getILoggerFactory(LoggerFactory.java:417)at org.slf4j.LoggerFactory.getLogger(LoggerFactory.java:362)at org.slf4j.LoggerFactory.getLogger(LoggerFactory.java:388)at org.apache.kafka.connect.cli.ConnectDistributed.<clinit>(ConnectDistributed.java:59)log4j:ERROR Ignoring configuration file [file:C:/Work/confluent-7.3.1/config/connect-log4j.properties].log4j:WARN No appenders could be found for logger (org.apache.kafka.connect.runtime.WorkerInfo).log4j:WARN Please initialize the log4j system properly.log4j:WARN See http://logging.apache.org/log4j/1.2/faq.html#noconfig for more info.log4j 가 없다는거 같은데 어떻게 해결할지 알려주시면 감사하겠습니다..
-
미해결[아파치 카프카 애플리케이션 프로그래밍] 개념부터 컨슈머, 프로듀서, 커넥트, 스트림즈까지!
CCDAK 문의
이왕 강의를 들은 김에 자격증도 한번 생각해보려고 하는데요.강의 내용만 충실하게 들으면 자격증 시험에 도전해볼만할까요?아니면 별도로 더 준비를 해야 하는지 궁금합니다.
-
미해결Spring Cloud로 개발하는 마이크로서비스 애플리케이션(MSA)
'Spring Boot를 이용한 RESTful Web Services 개발' 강의와의 연관성
안녕하세요, 제 질문은 아래와 같습니다. '강의를 시작하며' 수업에서 본 강의는 'Spring Boot를 이용한 RESTful Web Services 개발' 강의의 후속 강의라고 말씀해주셨습니다. 기존에 Rest API를 알고 있음에도, 'Spring Boot를 이용한 RESTful Web Services 개발' 강의를 먼저 들어야만 할까요? 감사합니다.