월 17,600원
5개월 할부 시다른 수강생들이 자주 물어보는 질문이 궁금하신가요?
- 미해결Spring Cloud로 개발하는 마이크로서비스 애플리케이션(MSA)
Filter 람다식 관련 질문드립니다.
안녕하세요!Custim Filter 강의 중 아래 코드 부분에서 GatewayFilter의 생성자가 exchange와 chain이기 때문에 return (exchange, chain) -> { .. 이 되는 것 까지는 이해를 하였습니다.그런데 이 때 exchange와 chain 변수가 어디에서 정의되어서 여기서 사용되는 건지 잘 모르겠습니다 ㅠㅠ return (exchange, chain) -> {// GatewayFilter의 생성자 Mono<Void> filter(ServerWebExchange exchange, GatewayFilterChain chain);
- 미해결Spring Cloud로 개발하는 마이크로서비스 애플리케이션(MSA)
k8s 추가질문
https://www.inflearn.com/questions/670959해당 글의 추가 질문 드립니다. 우선 local과 docker에서는 정상 작동하는 것을 확인했습니다. 혹시 apigateway에 - Path=/customer-svc/customers이런식으로 경로가 설정되어 있다면 각 각의 서비스들이 다른 pod에 배포되어 있을 경우정상적으로 경로를 찾아 갈 수 있는 건가요??각 pod 들에는 ClusterIP로 서비스를 연결해 준 상태입니다. 자세히 말하자면강의에서 docker 배포 목적으로 spring cloud apigateway를 이미지로 만들었던 것을yaml을 이용하여 쿠버네티스(192.168.1.10)에 배포하였고 이를 nodeport(30502)로 노출 시켰습니다.그리고 각 각의 서비스들도 마찬가지로 yaml로 배포하였고ClusterIp로 노출시켜놨습니다.이렇게 되면 192.168.1.10:30502/customer-svc/customers로 계정 생성 서비스(POST)가 정상적으로 동작하나요??아니면 단지 apigateway를 이미지 형태로 배포한 것으로 독립된 pod에 있는 customer-svc를 찾아가는 것이 안 되는 건가요..? 그렇기 때문에 500에러가 발생하고요.apigateway POD의 에러 메세지는 다음과 같습니다빨간 박스 내용2022-10-19 19:22:35.106 INFO 1 --- [trap-executor-0] c.n.d.s.r.aws.ConfigClusterResolver : Resolving eureka endpoints via configuration 2022-10-19 19:27:35.106 INFO 1 --- [trap-executor-0] c.n.d.s.r.aws.ConfigClusterResolver : Resolving eureka endpoints via configuration 2022-10-19 19:29:55.347 INFO 1 --- [or-http-epoll-1] c.p.a.filter.GlobalFilter : Global Filter baseMessage: Spring Cloud Gateway Global Filter 2022-10-19 19:29:55.348 INFO 1 --- [or-http-epoll-1] c.p.a.filter.GlobalFilter : Global Filter Start: request id -> f6eabebe-14 2022-10-19 19:29:59.358 ERROR 1 --- [or-http-epoll-2] a.w.r.e.AbstractErrorWebExceptionHandler : [f6eabebe-14] 500 Server Error for HTTP POST "/customer-svc/customers" java.net.UnknownHostException: Failed to resolve 'customer-deployment-5bf5fbc484-wxmlh' after 2 queries at io.netty.resolver.dns.DnsResolveContext.finishResolve(DnsResolveContext.java:1047) ~[netty-resolver-dns-4.1.82.Final.jar!/:4.1.82.Final] Suppressed: reactor.core.publisher.FluxOnAssembly$OnAssemblyException: Error has been observed at the following site(s): *__checkpoint ⇢ org.springframework.boot.actuate.web.trace.reactive.HttpTraceWebFilter [DefaultWebFilterChain] *__checkpoint ⇢ org.springframework.cloud.gateway.filter.WeightCalculatorWebFilter [DefaultWebFilterChain] *__checkpoint ⇢ org.springframework.boot.actuate.metrics.web.reactive.server.MetricsWebFilter [DefaultWebFilterChain] *__checkpoint ⇢ HTTP POST "/customer-svc/customers" [ExceptionHandlingWebHandler]해당 내용으로 봤을 때, 쿼리가 간다는 것은 통신은 정상적으로 이루어지는 것 같은데 어떤 문제가 있을까요??
- 미해결Spring Cloud로 개발하는 마이크로서비스 애플리케이션(MSA)
kafka CRUD 관련 문의 드립니다.
안녕하세요.정성을 다해 만들어주신 강의 잘 듣고 있습니다.kafka 관련 CRUD 문의 드립니다.DB CRUD관련 이벤트를 모두 수집하여 처리하고자 합니다.kafka 및 kafka debezium 플러그인을 활용하여아래와 같은 DB CRUD 관련 Topic 정보를 수집 하였습니다.["payload": {"before": {"id": 22,"name": "chp"},...중략 ]이러한 CRUD Topic정보를 DB 에 적용하려면sinkconnector 를 활용하는 방법외에어떠한 다른 방법이 있을까요?해당 json Topic을 java 에서 파싱하여응용프로그램 레벨에서 DB를 처리해야 하는건지다른 처리 패턴이나 솔루션 혹은 플러그인이 있을까요?해외사이트 구글링을 해봐도 debezium을 통해CRUD Topic 정보를 수집하는 것 까지만 나오고 이후 처리에 대해서는 어떠한 내용도 없어서 문의드리게 되었습니다.
- 미해결Spring Cloud로 개발하는 마이크로서비스 애플리케이션(MSA)
date 관련 에러입니다.
@ColumnDefault(value = "CURRENT_TIMESTAMP")현재 Order을 주입할때 자동으로 date가 생성이 안됩니다.{ "productId": "CATALOG-001", "qty": 10, "unitPrice": 1500, "totalPrice": 15000, "createdAt": null, "orderId": "e2672367-43bb-48bf-955f-d38917979c11" }server: port: 0 spring: application: name: order-service h2: console: enabled: true settings: web-allow-others: true path: /h2-console jpa: hibernate: ddl-auto: update show-sql: true generate-ddl: true defer-datasource-initialization: true datasource: url: jdbc:h2:mem:testdb driver-class-name: org.h2.Driver eureka: instance: instance-id: ${spring.application.name}:${spring.application.instance_id:${random.value}} client: register-with-eureka: true fetch-registry: true service-url: defaultZone: http://localhost:8761/eureka logging: level: com.example.orderservice: DEBUG
- 미해결Spring Cloud로 개발하는 마이크로서비스 애플리케이션(MSA)
강의록 문의드립니다
깃헙에 올려주신 강의록 관련 문의드립니다.제가 눈이 좋지 않아 인쇄해서 보는 것을 선호하는데 깃헙에 공유해주신 PDF파일들은 인쇄가 불가능하게 지정된것 같습니다. 인쇄를 할수 있는 버전으로 공유가 가능할지 확인 부탁드립니다.감사합니다.
- 미해결Spring Cloud로 개발하는 마이크로서비스 애플리케이션(MSA)
K8S에 배포
안녕하세요.해당 강의를 듣고 K8S에 배포를 해보고 있는데,500에러가 떠서 질문을 드립니다. docker 강의를 보고 yaml을 작성하여 k8s에 배포하였으며 github 주소는 다음과 같습니다.https://github.com/giimaeng/test1 혹시 500 에러가 뜬다면 예상되시는 원인이 있을까요??원인이 예상이 안되니 해결이 안되어, 예상 되는 원인이 몇 가지 있으시다면 말씀해주시면 감사하겠습니다.
- 해결됨Spring Cloud로 개발하는 마이크로서비스 애플리케이션(MSA)
Spring Web 디팬던시 관련 문의
안녕하세요! 먼저 좋은 수업 감사드립니다.Spring Cloud Gateway - 프로젝트 생성 강의 수강중 질문이 있습니다. 이전까지 다른 프로젝트에서는 Spring Web 디팬던시를 추가해주었는데, apigateway-service를 만들때는 Spring Web 디팬던시를 추가해주지 않았습니다.Spring Web이 어떤 역할을 하는지 구글링으로 찾아보려했지만 명확하게 이해하지 못한 것 같아서 여쭤봅니다.감사합니다!
- 미해결Spring Cloud로 개발하는 마이크로서비스 애플리케이션(MSA)
docker로 mariadb배포 시 문제 발생
현재 증상입니다.환경은 windows10입니다. mariadb를 켰을 때사진이 잘 안 보일 수 있어서 에러 메세지를 아래 써놨습니다.PS C:\Users\ccro1> docker run -d -p 3306:3306 --network ecommerce-network --name mariadb ccro1307/test:mariadb 33de5e6b75944d49e8e4220d428d0674d90103f4719387db1f566e7c927429e8 docker: Error response from daemon: Ports are not available: exposing port TCP 0.0.0.0:3306 -> 0.0.0.0:0: listen tcp 0.0.0.0:3306: bind: Only one usage of each socket address (protocol/network address/port) is normally permitted. mariadb를 껐을 때껐을 때는 mysql이 없다고 그러고켰을 때는 port가 중첩되서 안된다는 것 같은데..해결책이 어떻게 될 까요 mariadb는.\bin\mariadb-install-db.exe --datadir=C:\Work\mariadb-10.5.17-winx64\data --service=mariaDB --port=3306 --password=test1357로 설치하였습니다.
- 해결됨Spring Cloud로 개발하는 마이크로서비스 애플리케이션(MSA)
2개 이상의 마이크로 서비스가 결합됐을 때는 테스트코드는 어떻게 작성하는지 궁금합니다.
UserService API 를 호출할때 RestTemplate 를 통해 OrderService 의 API 를 추가로 호출하는 방법을 보고 각 마이크로 서비스들이 엔티티 단위로 모듈화 되어 설계되어있다면 이런식으로 하는구나~ 배울 수 있었습니다. 그런데 이렇게 두개 이상의 마이크로서비스가 호출되는 API 는 테스트 코드를 어떻게 작성해야 하는지 감이 잡히지 않습니다. Web Layer(Controller) 를 테스트할때는 Service 객체를 Mocking 해서 해결할 수 있을것 같은데, Service layer(Service 클래스) 를 테스트할때는 어떻게 해야할까요?
- 미해결Spring Cloud로 개발하는 마이크로서비스 애플리케이션(MSA)
mvn, jar
docker image로 푸쉬하는 과정에서 mvn이 필요한데https://www.inflearn.com/questions/337921 해당 글 내용을 보면 mvn 설치강좌가 있다고 하는데 어떤 곳인지 알 수 있을까요?? 그리고 꼭 mvn으로 컴파일을 해야 jar파일이 생성되는 것인가요??
- 미해결Spring Cloud로 개발하는 마이크로서비스 애플리케이션(MSA)
source-connect 등록 시 에러 질문이요
안녕하세요 강사님 강의 잘 듣고 있습니다.제가 기존에 윈도우에서 mariadb를 설치하고 3307포트를 사용하고 있었습니다.그런데 윈도우에서 진행하면 여러가지 오류로 때문에docker에다 mariadb를 pull 받고 run 해서 3308포트를 포트바인딩으로 3306포트를 사용하게 했습니다.docker run --name mariadb -d -p 3308:3306 --restart=always -e MYSQL_ROOT_PASSWORD=비민번호 mariad포트바인딩한 이유는도커로 실행한 mariadb 에서 port가 3306을 사용중이어서 그랬습니다.(도커로 받은 이미지는 안 건드는게 좋을 것 같아서 포트바인딩을 했습니다.) 결국 주키퍼, 카프카, 카프카커넥트를 모두 켜고 my-source-connect를 아래와 같이 등록했습니다.{ "name" : "my-source-connect", "config" : { "connector.class" : "io.confluent.connect.jdbc.JdbcSourceConnector", "connection.url":"jdbc:mysql://localhost:3306/mydb", "connection.user":"root", "connection.password":"비민번호입력함", "mode": "incrementing", "incrementing.column.name" : "id", "table.whitelist":"users", "topic.prefix" : "my_topic_", "tasks.max" : "1" } }그러면 response body에 my-source-connect가 성공한 response가 201로 응답되고127.0.0.1:8083/connectors 로 get 요청해도my-source-connect가 잘 뜹니다. 하지만 문제는127.0.0.1:8083/connectors/my-source-connect/status 으로 get 요청하면 다음과같이FAILD가 뜹니다.{ "name": "my-source-connect", "connector": { "state": "FAILED", "worker_id": "192.168.56.1:8083", "trace": "org.apache.kafka.connect.errors.ConnectException: com.mysql.cj.jdbc.exceptions.CommunicationsException: 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.\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:185)\r\n\tat org.apache.kafka.connect.runtime.WorkerConnector.start(WorkerConnector.java:210)\r\n\tat org.apache.kafka.connect.runtime.WorkerConnector.doTransitionTo(WorkerConnector.java:349)\r\n\tat org.apache.kafka.connect.runtime.WorkerConnector.doTransitionTo(WorkerConnector.java:332)\r\n\tat org.apache.kafka.connect.runtime.WorkerConnector.doRun(WorkerConnector.java:140)\r\n\tat org.apache.kafka.connect.runtime.WorkerConnector.run(WorkerConnector.java:117)\r\n\tat java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)\r\n\tat java.util.concurrent.FutureTask.run(FutureTask.java:266)\r\n\tat java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)\r\n\tat java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)\r\n\tat java.lang.Thread.run(Thread.java:750)\r\nCaused by: com.mysql.cj.jdbc.exceptions.CommunicationsException: 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.\r\n\tat com.mysql.cj.jdbc.exceptions.SQLError.createCommunicationsException(SQLError.java:174)\r\n\tat com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:64)\r\n\tat com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:828)\r\n\tat com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:448)\r\n\tat com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:241)\r\n\tat com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:198)\r\n\tat java.sql.DriverManager.getConnection(DriverManager.java:664)\r\n\tat java.sql.DriverManager.getConnection(DriverManager.java:208)\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: com.mysql.cj.exceptions.CJCommunicationsException: 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.\r\n\tat sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)\r\n\tat sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)\r\n\tat sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)\r\n\tat java.lang.reflect.Constructor.newInstance(Constructor.java:423)\r\n\tat com.mysql.cj.exceptions.ExceptionFactory.createException(ExceptionFactory.java:61)\r\n\tat com.mysql.cj.exceptions.ExceptionFactory.createException(ExceptionFactory.java:105)\r\n\tat com.mysql.cj.exceptions.ExceptionFactory.createException(ExceptionFactory.java:151)\r\n\tat com.mysql.cj.exceptions.ExceptionFactory.createCommunicationsException(ExceptionFactory.java:167)\r\n\tat com.mysql.cj.protocol.a.NativeSocketConnection.connect(NativeSocketConnection.java:89)\r\n\tat com.mysql.cj.NativeSession.connect(NativeSession.java:120)\r\n\tat com.mysql.cj.jdbc.ConnectionImpl.connectOneTryOnly(ConnectionImpl.java:948)\r\n\tat com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:818)\r\n\t... 20 more\r\nCaused by: java.net.ConnectException: Connection refused: connect\r\n\tat java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)\r\n\tat java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)\r\n\tat java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)\r\n\tat java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)\r\n\tat java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)\r\n\tat java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)\r\n\tat java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)\r\n\tat java.net.Socket.connect(Socket.java:613)\r\n\tat com.mysql.cj.protocol.StandardSocketFactory.connect(StandardSocketFactory.java:153)\r\n\tat com.mysql.cj.protocol.a.NativeSocketConnection.connect(NativeSocketConnection.java:63)\r\n\t... 23 more\r\n" }, "tasks": [], "type": "source" }예전에 윈도우에 있던 mariadb로 3307포트로 요청하고 get하면 정상적으로 잘 됐습니다.하지만 docker에서 run해서 컨테이너를 생성한 3306포트의 mariadb라서 문제가 있는거 같습니다..response로 온 trace를 검색해도 원인을 파악하기는 어렵네요뭐가 문제로 보이시고 어떻게 해결하는게 좋을까요?감사합니다.
- 미해결Spring Cloud로 개발하는 마이크로서비스 애플리케이션(MSA)
innodb 관련 에러
안녕하세요!뒤늦게 강의를 수강하고 있습니다.현재 mariadb docker build 후에 docker run을 하게 되면 아래와 같은 에러가 발생합니다.구글링을 해도 방법을 찾을 수가 없어요 ㅜㅜ[Dockerfile][Docker logs mariadb]어떻게 해결해야 할까요?...
- 미해결Spring Cloud로 개발하는 마이크로서비스 애플리케이션(MSA)
Orders Microservice 수정 - MariaDB 강의에서 order-service 실행이 안됩니다..
안녕하세요 강사님 강의 잘 보고 있습니다. https://www.inflearn.com/questions/641464제가 예전에 위에 링크로 질문을 했었는데.. 아직까지도 해결이 되지 않아서 다시 메일을 보냅니다.지금은 전에 질문 했던 것 과 조금 다른 상황이라 위에 링크는 잊으셔도 됩니다.현재 데이터 동기화를 위한 Apache Kafka의 활용 ②Orders Microservice 수정 - MariaDB 부분을 수강중입니다. 현재 mariadb를 연결시키면 order-service가 실행 안되는 문제입니다.당연히 콘솔과 heidisql에서 mariadb 접속이 아주 잘됩니다. 문제는order-service에 mariadb 를 설정하고 실행시켰는데 다음과 같은 에러가 발생하면서 실행이 안됩니다.java.sql.SQLInvalidAuthorizationSpecException: Could not connect to address=(host=localhost)(port=3307)(type=master) : (conn=3) Access denied for user 'root'@'localhost' (using password: YES)Current charset is UTF-8. If password has been set using other charset, consider using option 'passwordCharacterEncoding' 그래서 grant all privileges on root.* to root@'localhost' identified by '비밀번호입력';grant all privileges on root.* to root@'%' identified by '비민번호입력';해서 다음과 같은 상태를 만들었습니다.그럼에도 불구하고 order-service를 실행시키면 실행이 되지 않습니다..분명히 명령프롬프트 창으로도 heidisql 같은 툴로도 접속이 아주 잘됩니다.해결책은 에러 검색해보면 나오는 해결책은 제가 적용한 해결책하고 동일합니다..전에 안되면 order-service 압축파일을 메일로 보내다랄고 하셔서 도저히 해결이 안되서 메일 한번 보내봅니다..메일 한번 확인해 주시면 감사하겠습니다.
- 미해결Spring Cloud로 개발하는 마이크로서비스 애플리케이션(MSA)
Orders Microservice 수정 - MariaDB 듣던중 질문드립니다.
Orders Microservice 수정 - MariaDB강의 중에 db create table orders 하는데 @Entity가 Orders 가 있어서 jpa가 자동으로 테이블이 만들어버리네요강의 들을때는 일단 @Entity 막아두고 하면 될까요??
- 미해결Spring Cloud로 개발하는 마이크로서비스 애플리케이션(MSA)
프락시 역할을한다는것이 어떤 의미인가요?
말씀하신데로 내부의 구조를 숨기는것을 프락시라고 하는건가요? 좀 검색해봐도 그냥 중계기? 그런 개념으로만 이해가 되서요.
- 미해결Spring Cloud로 개발하는 마이크로서비스 애플리케이션(MSA)
안녕하세요
RestTemplate 듣다 질문드려요http://127.0.0.1:8000/order-service/%s/orders 에서 %s의 파라미터는 userId를 넣어주는데 언제 이걸 넣어주는건가요??getUserByUserId 의 매서드 파라미터 usrId가 쏙 들어가는 형태인가요??
- 해결됨Spring Cloud로 개발하는 마이크로서비스 애플리케이션(MSA)
Gateway와 Discovery를 사용한 무중단 서비스 방법
안녕하세요 선생님? 강의 정말 잘보고있습니다. 감사합니다. 다름이 아니라 강의 내용처럼 따라서 잘구성해보았습니다. 잘돌아갑니다. 그런데 해결하고 싶은게 있습니다.동일 서비스 중 하나가 중단됬을때 Gateway가 LB방식이라 중단된줄 모르고 중단된 서비스로 요청이 들어갑니다. 그러다보니 Connection 오류가 납니다. 대략 30초에서 1분 이후부터는 살아있는 서비스로만 요청이가서 잘 동작합니다. 만약 운영중이라면 30초에서 1분동안은 서비스가 불안할텐데 어떡하면 해결할 수 있을까요? 시스템 구성은 다음과 같습니다. GW <-> Discovery <-> 동일서비스 #3개(만약 #2번이 다운됬을때 #2번 서비스가 호출되어 서비스가 됬다 안됬다 하는 현상발생)좋은 방법이나 예제가 있으면 감사하겠습니다.
- 미해결Spring Cloud로 개발하는 마이크로서비스 애플리케이션(MSA)
카프카 에러 시
카프카 설정을 잘못하여 에러를 발생시켜 보았는데 아래와 같은 메세지를 출력하며 계속 연결을 시도하는 것을 확인했습니다.Connection to node -1 (/127.0.0.1:9092) could not be established. Broker may not be available.Bootstrap broker 127.0.0.1:9092 (id: -1 rack: null) disconnectedNode -1 disconnected.혹시 이러한 경우 몇번만 연결을 시도하고 예외를 발생시킨다거나 하는 방법이 있을까요?? 추가로 이런 상황에서는 보통 어떤식으로 장애 대응을 하는지 궁금합니다. 브로커의 수를 늘리는 것도 이러한 상황을 방지할 수는 있겠지만, 결국 언제나 문제는 생길 수 있다고 생각하여 질문드립니다.
- 미해결Spring Cloud로 개발하는 마이크로서비스 애플리케이션(MSA)
윈도우에서 카프카 토픽 삭제 시, 카프카가 실행이 안됩니다..
https://www.inflearn.com/questions/644825제가 예전에 올린 글입니다.질문한 글에 댓글을 또 달았었는데 도저히 해결을 할 수 가 없어서 다시 질문올립니다. 제가 윈도우 환경에서 카프카 토픽을 삭제 했는데그 뒤로 답글로 제시해주신 해결책을 해보려고 해도 해볼 수가 없었습니다..즉, C:\Temp 디렉토리 하위에 zookeeper, kafka 폴더가 전혀없고저의 C:\Temp 아래는 폴더 구조는 다음과 같습니다..2020(폴더)HncDownload(폴더)Service.logAUtempR(폴더 - 안에 아무것도 없음) 그리고 기존 에 사용하고 있던 Kafka환경 폴더(강의에서 제공해주신 폴더)를삭제하고 다시 압축을 풀어서 압축을 푼 경로에zookeeper와 kafka를 실행해도 zookeeper는 실행되고 kafka는 실행되지 않습니다...즉, 동일한 에러가 발생하네요..대체 어떤 걸 지워야지 다시 kafka서버가 정상 실행될까요? 참고로 자료 올려주신 윈도우용 카프카 파일 전부 삭제하고 다시 압축 풀고 설정해도토픽목록은 동일한 에러로 안보이고, 카프카 역시 동일한 에러로 켜지지 않습니다..감사합니다.
- 미해결Spring Cloud로 개발하는 마이크로서비스 애플리케이션(MSA)
카프카 토픽안쓰고 저장하면 대용량 처리에 불리한 이유가 있나요?
안녕하세요 강의를 듣다가 궁금증이 카프카 토픽을 안쓰고 저장하면 대용량 처리에서 불리한 이유가 있나 싶어 궁금해 졌습니다. 우선 인터넷에서 검색해서 찾아본 봐로는그러면 카프카 사용하면 대용량 처리에 유리한 이유가병렬처리에 의한 데이터 처리율 향상 : 카프카는 아래 보실 아키텍처에 보면 데이터를 병렬로 처리함으로서 데이터를 빠르고 효과적으로 처리할 수 있습니다. disk에 순차적으로 데이터를 적재하기 때문에 임의 접근(random access) 방식보다 훨씬 더 빠르게 데이터를 처리합니다.데이터 유실 방지 : disk에 적재되기 때문에 만약 불의의 사고로 서버가 다운되었을 시에도 데이터가 유실되는 일 없이 재시작하여 기존 데이터를 안정적으로 처리 가능합니다.클러스터링에 의한 고가용성 서비스 : Scale-out이 가능하여 시스템 확장이 용이하며 어떤 하나 혹은 몇 개의 서버가 다운되도 서비스 자체가 중단될 일 없이 시스템이 운용가능합니다.출처 : https://engkimbs.tistory.com/691정도로 보이는데요 그렇다면토픽을 사용하는 경우와카프카 커넥트를 사용하는 경우가 있었는데 (프로듀서, 컨슈머를 파이프라인을 매번 구성하기 힘들어서 사용하는 것으로 알고 있습니다.)그러면 우선 첫번째 질문은토픽을 사용할 때와 카프카 커넥트를 사용할 때 모두 카프카가 알아서 병령처리를 해주고 데이터 유실 방지를 해주는 건가요?? 또한 두번째 질문은 강의에서 order-service를 여러 개 띄우고 주문 요청을 여러 번 하면여러 개의 order-service의 db에 나눠서 저장을 하는 식으로 했는데요현업에서 MSA환경에서 프로젝트할 때도예를들면 order-service, user-service, catalog-service 각각 db를 하나씩 사용하는게 일반적인 방법인가요? 즉, 각 서비스마다 db를 하나씩 두는 것이 일반적인 방법인가요? 세번째 질문은 강의에서order-service를 여러개 띄우고 하나의 db에 저장하는 방식을 사용했는데즉, Kafka Topic에 설정된 Kafka Sink Connect를 사용해 단일 DB에 저장 했서 데이터를 동기화 했는데.그러면 카프카 커넥트를 사용하지 않고는 여러개의 order-service를 단일 db에 저장할 수 없나요?