inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

묻고 답해요

176만명의 커뮤니티!! 함께 토론해봐요.

장애 격리 관련해서 궁금한 부분이 있어요

미해결

Spring Cloud로 개발하는 마이크로서비스 애플리케이션(MSA)

강사님, MSA의 장애 격리에 대해 강의를 듣다가 궁금한 점이 생겨 질문드립니다. 제가 이해하기로는 모놀리식은 하나의 애플리케이션 안에 여러 도메인/서비스가 함께 구성되어 있고, MSA는 각 도메인별로 서비스를 분리하여 구성하는 것으로 알고 있습니다. 강의에서 MSA의 장점 중 하나로 장애 격리를 말씀해 주셨는데, 실제로는 한 서비스의 장애가 해당 서비스를 의존하고 있는 다른 서비스로 전파될 수도 있지 않을까 하는 생각이 들었습니다. 예를 들어 여러 서비스에서 회원 정보나 회원 상태를 검증하기 위해 회원 서비스에 요청을 보내야 하고, 회원 서비스의 검증 결과가 정상이어야만 해당 서비스를 이용할 수 있는 구조라고 가정하겠습니다. 이 경우 회원 서비스에 장애가 발생하면 회원 서비스에 의존하고 있는 여러 서비스에서도 요청 처리가 불가능해지기 때문에, 결국 장애가 다른 서비스로 전파되는 것처럼 보입니다. 그래서 제가 생각한 것은 MSA의 장애 격리가 '장애가 다른 서비스로 전혀 전파되지 않는다'는 의미보다는, 모놀리식에 비해 장애가 발생했을 때 영향을 받는 범위를 제한할 수 있다는 의미에 더 가깝지 않을까? 하는 것입니다. 예를 들어 모놀리식에서는 하나의 애플리케이션에 장애가 발생하면 전체 기능에 영향을 줄 수 있지만, MSA에서는 특정 서비스의 장애가 해당 서비스 및 이를 직접적으로 의존하는 서비스 정도로 영향 범위를 제한할 수 있다는 의미인지 궁금합니다. 그리고 실제 MSA 환경에서는 이러한 장애 전파를 막기 위해 Circuit Breaker, Timeout, Retry, Fallback, 비동기 메시징 등의 방법을 사용해서 장애 격리 수준을 높이는 것으로 이해하고 있는데, 제가 이해한 방향이 맞는지도 궁금합니다. 결국 MSA에서 말하는 장애 격리의 핵심이 '완전한 장애 격리'라기보다는 '장애 영향 범위를 줄이고 장애 전파를 제어할 수 있다'는 점에 있다고 이해하면 될까요?

  • spring-boot
  • jpa
  • 아키텍처
  • spring-cloud
  • kafka
  • msa
  • rabbitmq
감바스 댓글 2 좋아요 0 조회수 63

configserver 설정에러

미해결

빠르게 배우는 Spring Cloud 기초(MSA)

org.springframework.amqp.rabbit.listener.BlockingQueueConsumer$DeclarationException: Failed to declare queue(s):[springCloudBus.anonymous.GYptJUJaSVqhPwPextvd6A] at org.springframework.amqp.rabbit.listener.BlockingQueueConsumer.attemptPassiveDeclarations(BlockingQueueConsumer.java:773) ~[spring-rabbit-3.2.2.jar:3.2.2] at org.springframework.amqp.rabbit.listener.BlockingQueueConsumer.passiveDeclarations(BlockingQueueConsumer.java:650) ~[spring-rabbit-3.2.2.jar:3.2.2] at org.springframework.amqp.rabbit.listener.BlockingQueueConsumer.start(BlockingQueueConsumer.java:637) ~[spring-rabbit-3.2.2.jar:3.2.2] at org.springframework.amqp.rabbit.listener.SimpleMessageListenerContainer$AsyncMessageProcessingConsumer.initialize(SimpleMessageListenerContainer.java:1484) ~[spring-rabbit-3.2.2.jar:3.2.2] at org.springframework.amqp.rabbit.listener.SimpleMessageListenerContainer$ AsyncMessageProcessingConsumer.run (SimpleMessageListenerContainer.java:1324) ~[spring-rabbit-3.2.2.jar:3.2.2] at java.base/ java.lang.Thread.run (Thread.java:842) ~[na:na] Caused by: java.io .IOException: null at com.rabbitmq.client.impl.AMQChannel.wrap(AMQChannel.java:140) ~[amqp-client-5.22.0.jar:5.22.0] at com.rabbitmq.client.impl.AMQChannel.wrap(AMQChannel.java:136) ~[amqp-client-5.22.0.jar:5.22.0] at com.rabbitmq.client.impl.AMQChannel.exnWrappingRpc(AMQChannel.java:158) ~[amqp-client-5.22.0.jar:5.22.0] at com.rabbitmq.client.impl.ChannelN.queueDeclarePassive(ChannelN.java:1033) ~[amqp-client-5.22.0.jar:5.22.0] at com.rabbitmq.client.impl.ChannelN.queueDeclarePassive(ChannelN.java:47) ~[amqp-client-5.22.0.jar:5.22.0] at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:na] at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77) ~[na:na] at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:na] at java.base/java.lang.reflect.Method.invoke(Method.java:568) ~[na:na] at org.springframework.amqp.rabbit.connection.CachingConnectionFactory$CachedChannelInvocationHandler.invoke(CachingConnectionFactory.java:1201) ~[spring-rabbit-3.2.2.jar:3.2.2] at jdk.proxy2/jdk.proxy2.$Proxy135.queueDeclarePassive(Unknown Source) ~[na:na] at org.springframework.amqp.rabbit.listener.BlockingQueueConsumer.attemptPassiveDeclarations(BlockingQueueConsumer.java:751) ~[spring-rabbit-3.2.2.jar:3.2.2] ... 5 common frames omitted Caused by: com.rabbitmq.client.ShutdownSignalException: channel error; protocol method: #method<channel.close>(reply-code=404, reply-text=NOT_FOUND - no queue 'springCloudBus.anonymous.GYptJUJaSVqhPwPextvd6A' in vhost '/', class-id=50, method-id=10) at com.rabbitmq.utility.ValueOrException.getValue(ValueOrException.java:66) ~[amqp-client-5.22.0.jar:5.22.0] at com.rabbitmq.utility.BlockingValueOrException.uninterruptibleGetValue(BlockingValueOrException.java:36) ~[amqp-client-5.22.0.jar:5.22.0] at com.rabbitmq.client.impl.AMQChannel$BlockingRpcContinuation.getReply(AMQChannel.java:552) ~[amqp-client-5.22.0.jar:5.22.0] at com.rabbitmq.client.impl.AMQChannel.privateRpc(AMQChannel.java:316) ~[amqp-client-5.22.0.jar:5.22.0] at com.rabbitmq.client.impl.AMQChannel.exnWrappingRpc(AMQChannel.java:152) ~[amqp-client-5.22.0.jar:5.22.0] ... 14 common frames omitted Caused by: com.rabbitmq.client.ShutdownSignalException: channel error; protocol method: #method<channel.close>(reply-code=404, reply-text=NOT_FOUND - no queue 'springCloudBus.anonymous.GYptJUJaSVqhPwPextvd6A' in vhost '/', class-id=50, method-id=10) at com.rabbitmq.client.impl.ChannelN.asyncShutdown(ChannelN.java:528) ~[amqp-client-5.22.0.jar:5.22.0] at com.rabbitmq.client.impl.ChannelN.processAsync(ChannelN.java:349) ~[amqp-client-5.22.0.jar:5.22.0] at com.rabbitmq.client.impl.AMQChannel.handleCompleteInboundCommand(AMQChannel.java:193) ~[amqp-client-5.22.0.jar:5.22.0] at com.rabbitmq.client.impl.AMQChannel.handleFrame(AMQChannel.java:125) ~[amqp-client-5.22.0.jar:5.22.0] at com.rabbitmq.client.impl.AMQConnection.readFrame(AMQConnection.java:761) ~[amqp-client-5.22.0.jar:5.22.0] at com.rabbitmq.client.impl.AMQConnection.access$400(AMQConnection.java:48) ~[amqp-client-5.22.0.jar:5.22.0] at com.rabbitmq.client.impl.AMQConnection$ MainLoop.run (AMQConnection.java:688) ~[amqp-client-5.22.0.jar:5.22.0] ... 1 common frames omitted 2026-08-30T23:22:44.382+09:00 WARN 14368 --- [VqhPwPextvd6A-1] o.s.a.r.listener.BlockingQueueConsumer : Failed to declare queue: springCloudBus.anonymous.GYptJUJaSVqhPwPextvd6A 2026-08-30T23:22:44.382+09:00 WARN 14368 --- [VqhPwPextvd6A-1] o.s.a.r.listener.BlockingQueueConsumer : Queue declaration failed; retries left=2 org.springframework.amqp.rabbit.listener.BlockingQueueConsumer$DeclarationException: Failed to declare queue(s):[springCloudBus.anonymous.GYptJUJaSVqhPwPextvd6A] at org.springframework.amqp.rabbit.listener.BlockingQueueConsumer.attemptPassiveDeclarations(BlockingQueueConsumer.java:773) ~[spring-rabbit-3.2.2.jar:3.2.2] at org.springframework.amqp.rabbit.listener.BlockingQueueConsumer.passiveDeclarations(BlockingQueueConsumer.java:650) ~[spring-rabbit-3.2.2.jar:3.2.2] at org.springframework.amqp.rabbit.listener.BlockingQueueConsumer.start(BlockingQueueConsumer.java:637) ~[spring-rabbit-3.2.2.jar:3.2.2] at org.springframework.amqp.rabbit.listener.SimpleMessageListenerContainer$AsyncMessageProcessingConsumer.initialize(SimpleMessageListenerContainer.java:1484) ~[spring-rabbit-3.2.2.jar:3.2.2] at org.springframework.amqp.rabbit.listener.SimpleMessageListenerContainer$ AsyncMessageProcessingConsumer.run (SimpleMessageListenerContainer.java:1324) ~[spring-rabbit-3.2.2.jar:3.2.2] at java.base/ java.lang.Thread.run (Thread.java:842) ~[na:na] Caused by: java.io .IOException: null at com.rabbitmq.client.impl.AMQChannel.wrap(AMQChannel.java:140) ~[amqp-client-5.22.0.jar:5.22.0] at com.rabbitmq.client.impl.AMQChannel.wrap(AMQChannel.java:136) ~[amqp-client-5.22.0.jar:5.22.0] at com.rabbitmq.client.impl.AMQChannel.exnWrappingRpc(AMQChannel.java:158) ~[amqp-client-5.22.0.jar:5.22.0] at com.rabbitmq.client.impl.ChannelN.queueDeclarePassive(ChannelN.java:1033) ~[amqp-client-5.22.0.jar:5.22.0] at com.rabbitmq.client.impl.ChannelN.queueDeclarePassive(ChannelN.java:47) ~[amqp-client-5.22.0.jar:5.22.0] at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:na] at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77) ~[na:na] at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:na] at java.base/java.lang.reflect.Method.invoke(Method.java:568) ~[na:na] at org.springframework.amqp.rabbit.connection.CachingConnectionFactory$CachedChannelInvocationHandler.invoke(CachingConnectionFactory.java:1201) ~[spring-rabbit-3.2.2.jar:3.2.2] at jdk.proxy2/jdk.proxy2.$Proxy135.queueDeclarePassive(Unknown Source) ~[na:na] at org.springframework.amqp.rabbit.listener.BlockingQueueConsumer.attemptPassiveDeclarations(BlockingQueueConsumer.java:751) ~[spring-rabbit-3.2.2.jar:3.2.2] ... 5 common frames omitted Caused by: com.rabbitmq.client.ShutdownSignalException: channel error; protocol method: #method<channel.close>(reply-code=404, reply-text=NOT_FOUND - no queue 'springCloudBus.anonymous.GYptJUJaSVqhPwPextvd6A' in vhost '/', class-id=50, method-id=10) at com.rabbitmq.utility.ValueOrException.getValue(ValueOrException.java:66) ~[amqp-client-5.22.0.jar:5.22.0] at com.rabbitmq.utility.BlockingValueOrException.uninterruptibleGetValue(BlockingValueOrException.java:36) ~[amqp-client-5.22.0.jar:5.22.0] at com.rabbitmq.client.impl.AMQChannel$BlockingRpcContinuation.getReply(AMQChannel.java:552) ~[amqp-client-5.22.0.jar:5.22.0] at com.rabbitmq.client.impl.AMQChannel.privateRpc(AMQChannel.java:316) ~[amqp-client-5.22.0.jar:5.22.0] at com.rabbitmq.client.impl.AMQChannel.exnWrappingRpc(AMQChannel.java:152) ~[amqp-client-5.22.0.jar:5.22.0] ... 14 common frames omitted Caused by: com.rabbitmq.client.ShutdownSignalException: channel error; protocol method: #method<channel.close>(reply-code=404, reply-text=NOT_FOUND - no queue 'springCloudBus.anonymous.GYptJUJaSVqhPwPextvd6A' in vhost '/', class-id=50, method-id=10) at com.rabbitmq.client.impl.ChannelN.asyncShutdown(ChannelN.java:528) ~[amqp-client-5.22.0.jar:5.22.0] at com.rabbitmq.client.impl.ChannelN.processAsync(ChannelN.java:349) ~[amqp-client-5.22.0.jar:5.22.0] at com.rabbitmq.client.impl.AMQChannel.handleCompleteInboundCommand(AMQChannel.java:193) ~[amqp-client-5.22.0.jar:5.22.0]

  • spring-cloud
  • msa
  • api-gateway
  • configserver
  • eureka
진달래 댓글 2 좋아요 0 조회수 78

Inner class로 Config를 지정하는 이유

미해결

Spring Cloud로 개발하는 마이크로서비스 애플리케이션(MSA)

안녕하세요. 우선 좋은 강의 만들어주셔서 감사합니다! 강의를 듣다가 CustomFilter Class 자체를 Config로 사용하지 않고, 따로 Inner Class를 Config로 설계하셨는지 궁금합니다!

  • spring-boot
  • jpa
  • 아키텍처
  • spring-cloud
  • kafka
  • msa
  • rabbitmq
nick 댓글 2 좋아요 0 조회수 64

service-discovery 프로세스 가동 이유

미해결

Spring Cloud로 개발하는 마이크로서비스 애플리케이션(MSA)

안녕하세요 강사님 양질의 강의 제공해주셔서 감사합니다 api-gateway yml 파일에 micro-service url에 매핑된 host 정보를 기입하셨는데요 이러면 service-discovery 프로세스를 가동시키신 이유가 뭘까요? 제가 이해하기론 service-discovery는 dns정도로 이해하고 있습니다

  • spring-boot
  • jpa
  • 아키텍처
  • spring-cloud
  • kafka
  • msa
  • rabbitmq
hotalibi 댓글 2 좋아요 0 조회수 86

rabbitmq에 configservice 연결에 대해 질문있습니다.

미해결

Spring Cloud로 개발하는 마이크로서비스 애플리케이션(MSA)

안녕하세요 강사님 강의 잘 듣고 있습니다. 섹션 9에서 강의대로 docker에 rabbitmq를 올린 뒤 configservice를 실행했는데 오류가 발생합니다. org.springframework.amqp.rabbit.listener.BlockingQueueConsumer$DeclarationException: Failed to declare queue(s):[springCloudBus.anonymous.PswTKgDeT12hTiCFa33hLw] at org.springframework.amqp.rabbit.listener.BlockingQueueConsumer.attemptPassiveDeclarations(BlockingQueueConsumer.java:772) ~[spring-rabbit-3.2.5.jar:3.2.5] at org.springframework.amqp.rabbit.listener.BlockingQueueConsumer.passiveDeclarations(BlockingQueueConsumer.java:649) ~[spring-rabbit-3.2.5.jar:3.2.5] at org.springframework.amqp.rabbit.listener.BlockingQueueConsumer.start(BlockingQueueConsumer.java:636) ~[spring-rabbit-3.2.5.jar:3.2.5] at org.springframework.amqp.rabbit.listener.SimpleMessageListenerContainer$AsyncMessageProcessingConsumer.initialize(SimpleMessageListenerContainer.java:1482) ~[spring-rabbit-3.2.5.jar:3.2.5] at org.springframework.amqp.rabbit.listener.SimpleMessageListenerContainer$ AsyncMessageProcessingConsumer.run (SimpleMessageListenerContainer.java:1322) ~[spring-rabbit-3.2.5.jar:3.2.5] at java.base/ java.lang.Thread.run (Thread.java:1447) ~[na:na] Caused by: java.io .IOException: null at com.rabbitmq.client.impl.AMQChannel.wrap(AMQChannel.java:140) ~[amqp-client-5.25.0.jar:5.25.0] at com.rabbitmq.client.impl.AMQChannel.wrap(AMQChannel.java:136) ~[amqp-client-5.25.0.jar:5.25.0] at com.rabbitmq.client.impl.AMQChannel.exnWrappingRpc(AMQChannel.java:158) ~[amqp-client-5.25.0.jar:5.25.0] at com.rabbitmq.client.impl.ChannelN.queueDeclarePassive(ChannelN.java:1033) ~[amqp-client-5.25.0.jar:5.25.0] at com.rabbitmq.client.impl.ChannelN.queueDeclarePassive(ChannelN.java:47) ~[amqp-client-5.25.0.jar:5.25.0] at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:104) ~[na:na] at java.base/java.lang.reflect.Method.invoke(Method.java:565) ~[na:na] at org.springframework.amqp.rabbit.connection.CachingConnectionFactory$CachedChannelInvocationHandler.invoke(CachingConnectionFactory.java:1201) ~[spring-rabbit-3.2.5.jar:3.2.5] at jdk.proxy2/jdk.proxy2.$Proxy140.queueDeclarePassive(Unknown Source) ~[na:na] at org.springframework.amqp.rabbit.listener.BlockingQueueConsumer.attemptPassiveDeclarations(BlockingQueueConsumer.java:750) ~[spring-rabbit-3.2.5.jar:3.2.5] ... 5 common frames omitted Caused by: com.rabbitmq.client.ShutdownSignalException: channel error; protocol method: #method<channel.close>(reply-code=404, reply-text=NOT_FOUND - no queue 'springCloudBus.anonymous.PswTKgDeT12hTiCFa33hLw' in vhost '/', class-id=50, method-id=10) at com.rabbitmq.utility.ValueOrException.getValue(ValueOrException.java:66) ~[amqp-client-5.25.0.jar:5.25.0] at com.rabbitmq.utility.BlockingValueOrException.uninterruptibleGetValue(BlockingValueOrException.java:36) ~[amqp-client-5.25.0.jar:5.25.0] at com.rabbitmq.client.impl.AMQChannel$BlockingRpcContinuation.getReply(AMQChannel.java:552) ~[amqp-client-5.25.0.jar:5.25.0] at com.rabbitmq.client.impl.AMQChannel.privateRpc(AMQChannel.java:316) ~[amqp-client-5.25.0.jar:5.25.0] at com.rabbitmq.client.impl.AMQChannel.exnWrappingRpc(AMQChannel.java:152) ~[amqp-client-5.25.0.jar:5.25.0] ... 12 common frames omitted Caused by: com.rabbitmq.client.ShutdownSignalException: channel error; protocol method: #method<channel.close>(reply-code=404, reply-text=NOT_FOUND - no queue 'springCloudBus.anonymous.PswTKgDeT12hTiCFa33hLw' in vhost '/', class-id=50, method-id=10) at com.rabbitmq.client.impl.ChannelN.asyncShutdown(ChannelN.java:528) ~[amqp-client-5.25.0.jar:5.25.0] at com.rabbitmq.client.impl.ChannelN.processAsync(ChannelN.java:349) ~[amqp-client-5.25.0.jar:5.25.0] at com.rabbitmq.client.impl.AMQChannel.handleCompleteInboundCommand(AMQChannel.java:193) ~[amqp-client-5.25.0.jar:5.25.0] at com.rabbitmq.client.impl.AMQChannel.handleFrame(AMQChannel.java:125) ~[amqp-client-5.25.0.jar:5.25.0] at com.rabbitmq.client.impl.AMQConnection.readFrame(AMQConnection.java:761) ~[amqp-client-5.25.0.jar:5.25.0] at com.rabbitmq.client.impl.AMQConnection.access$400(AMQConnection.java:48) ~[amqp-client-5.25.0.jar:5.25.0] at com.rabbitmq.client.impl.AMQConnection$ MainLoop.run (AMQConnection.java:688) ~[amqp-client-5.25.0.jar:5.25.0] ... 1 common frames omitted 깃허브의 프로젝트를 그대로 가져오고 어떻게 해도 해결이 안되네요ㅠㅠ 도움 부탁드립니다..

  • spring-boot
  • jpa
  • 아키텍처
  • spring-cloud
  • kafka
  • msa
  • rabbitmq
전윤미 댓글 1 좋아요 0 조회수 114

pg사가 있다고 가정하면

미해결

마이크로서비스 디자인 패턴 완벽 가이드

제공되는 예제 파일에 대한 실행에 관련 질문을 해 주실 때는, 자신이 사용하는 운영체제(OS), 운영체제 버전, JDK 버전, IDE와 같은 개발 도구의 버전 등을 상세알려 주시면, 답변을 드리는데 도움이 됩니다. 안녕하세요. 강의를 보고 있는 개발자입니다. 질문이 있어 문의드립니다. 만약 pg사 연동이 들어간다고 가정하면 어떤 식으로 사가를 구성해야할까요? 주문서버, 결제서버, 재고서버가 있다고 가정하면 대략적인 결제 흐름이 대부분 아래와 같을텐데 장바구니에서 구매하기 누르면 주문서페이지로 감 주문서 페이지에서 쿠폰 등을 선택하고 결제하기를 누르면 pg결제창이 뜸 pg결제를 하면 결제 승인 api를 서버가 호출 아래와 같이 해도 되나요. 장바구니에서 구매하기 누르면 주문서버에 주문서를 생성 주문서페이지에서 결제하기 누르면 주문서를 검증하고 임시결제 생성 및 pg사 url 생성 (주문서버 -> 결제서버 -> pg사 동기식으로 호출 해야할 거 같음) pg결제가 승인되면 결제서버의 결제 승인 api 호출 (임시결제를 결제완결상태로 만들고 pg사의 승인 api 호출) 결제 완료되면 결제 완료 이벤트 발행하여 재고 줄인다. 제가 생각하기에 pg사 결제 url 만드는 2번이 주문서버 -> 결제서버 동기식으로 호출하는게 맞는게 아닌가 싶어서 저렇게 했는데 혹시나 비동기로 할수 있는 방법이 있을까요? 아니면 제가 생각한 방식말고 다른 방식이 있을까요? 강의에서는 pg사 관련된 내용이 안나와 궁금하여 질문드립니다.

  • java
  • spring-cloud
  • 디자인-패턴
  • msa
  • patterns
김재연 댓글 2 좋아요 0 조회수 83

user-service jwt

미해결

비전공자도 이해할 수 있는 MSA 입문/실전 (feat. Spring Boot)

frontend 와 backend jwt 주고 받을때 controller 에서 @User 라는 데코레이션 혹은 그냥 @AuthenticationPrincipal AuthenticatedUser authenticatedUser, 만들어두고 사용하곤 했었는데 레파지토리를 나눠버렸을때는 어떻게 관리를 하게 되나요 ??

  • 아키텍처
  • spring-cloud
  • kafka
  • msa
  • devops
SJ 댓글 2 좋아요 0 조회수 98

프로젝트 환경세팅 파일 왜 안보일까요...

해결됨

빠르게 배우는 Spring Cloud 기초(MSA)

강의 관리가 안된느 것 같아 아쉽습니다.신속하게 답변 부탁드립니다..

  • spring-cloud
  • msa
  • api-gateway
  • configserver
  • eureka
엄준승 댓글 2 좋아요 0 조회수 109

MSA에서 서비스별 DB 작성에 관해

해결됨

비전공자도 이해할 수 있는 MSA 입문/실전 (feat. Spring Boot)

안녕하세요. 언제나 좋은 강의 만들어주셔서 감사합니다. 강의에서 MSA는 서비스별로 DB를 구축하는 것으로 설명해주셨는데요. 이 경우, 서비스 수가 늘어날수록 데이터베이스도 함께 증가하게 되어 고정비용이 기하급수적으로 늘어날 것 같습니다. 실제로 기업에서 사용하는 MSA 구조에서도 이와 같이 서비스별로 별도의 데이터베이스를 구축하는지 궁금합니다.

  • 아키텍처
  • spring-cloud
  • kafka
  • msa
  • devops
팀비 댓글 2 좋아요 0 조회수 130

Microservice 에 DB 띄우기

미해결

비전공자도 이해할 수 있는 MSA 입문/실전 (feat. Spring Boot)

Microservice 에 DB 를 띄우게 될때 DB 를 여러대 띄우는것 같은데 저렇게 하지않고 하나의 DB 를 띄우고 스키마로 분리하는 경우도 있나요 ?? 너무 낭비가 되지 않나 ?? 생각도 들어서요

  • 아키텍처
  • spring-cloud
  • kafka
  • msa
  • devops
SJ 댓글 2 좋아요 0 조회수 117

MSA 프로젝트 요구사항 및 설계 에서의 FK

미해결

비전공자도 이해할 수 있는 MSA 입문/실전 (feat. Spring Boot)

안녕하세요 강의 잘 듣고있습니다. MSA 프로젝트 요구사항 및 설계 부분에서 모놀로식으로 설계하게 될때는 FK 를 걸지만 MSA 에서는 DB가 독립적으로 분리되어 있어서 FK 를 걸 수 없을것 같습니다 . Application 단에서도 하지않나요 ?? 예를들어서 @ManyToOne user: User;

  • 아키텍처
  • spring-cloud
  • kafka
  • msa
  • devops
SJ 댓글 2 좋아요 0 조회수 122

kafka 업데이트 강의 듣고 시포요

미해결

Spring Cloud로 개발하는 마이크로서비스 애플리케이션(MSA)

선생님 kafka 업데이트 강의 듣고 싶어요 ♥

  • spring-boot
  • jpa
  • 아키텍처
  • spring-cloud
  • kafka
  • msa
  • rabbitmq
magicsof 댓글 2 좋아요 0 조회수 188

강의 교안

미해결

Spring Cloud로 개발하는 마이크로서비스 애플리케이션(MSA)

강의 교안 지금은 받을수있을까요

  • spring-boot
  • jpa
  • 아키텍처
  • spring-cloud
  • kafka
  • msa
  • rabbitmq
jyoung7988 댓글 2 좋아요 0 조회수 160

마이크로서비스간 통신 시, 인증 처리

미해결

Spring Cloud로 개발하는 마이크로서비스 애플리케이션(MSA)

유저서비스에서 주문서비스로 주문 목록을 rest api 로 요청을 보내는데, 주문 서비스에서 주문 목록에 대한 api 는 유저서비스 의 IP만 접근하도록 방어 처리도 따로 필요 한가요 ??

  • spring-boot
  • jpa
  • 아키텍처
  • spring-cloud
  • kafka
  • msa
  • rabbitmq
jyoung7988 댓글 2 좋아요 0 조회수 173

api gateway 에서 인증 처리

미해결

Spring Cloud로 개발하는 마이크로서비스 애플리케이션(MSA)

api gateway 에서 jwt 검증을 해서 분기를 시키는데, 세션-쿠키 방식일때도 api-gateway에서 처리 하나요 ? 만약 세션-쿠키 방식일 때,user-service 에서 인증 처리한다고 하면, order 서비스에서 인증이 필요한 경우, user-service로 http 통신으로 인증을 확인하나요 ?

  • spring-boot
  • jpa
  • 아키텍처
  • spring-cloud
  • kafka
  • msa
  • rabbitmq
jyoung7988 댓글 1 좋아요 0 조회수 115

섹션 19 질문드립니다

미해결

Spring Cloud로 개발하는 마이크로서비스 애플리케이션(MSA)

섹션 19 부분은 예전에 강의하셨을 때 쓰신 스프링부트 2점대 버전을 3점대 버전으로 업그레이드하는 강의인가요? 최신 강의 기준 업데이트 하신 3점대 버전으로 강의를 듣고 있는데 섹션 19에서 강의가 정확히 어떤 강의인지 궁금합니다. 만약 2점대 버전을 3점대 버전으로 업그레이드 하는 강의라면, 섹션 19에서 분산 트레이싱, swagger, kubernates 부분만 들어도 되는걸까요?

  • spring-boot
  • jpa
  • 아키텍처
  • spring-cloud
  • kafka
  • msa
  • rabbitmq
댓글 2 좋아요 0 조회수 137

보상 트랜잭션을 위한 catch 문 안에서 에러가 발생한다면 어떻게 되는 건가요?

미해결

비전공자도 이해할 수 있는 MSA 입문/실전 (feat. Spring Boot)

만약 에러가 나서 보상 트랜잭션이 발생했는데 거기서 또 에러가 난다면 따로 모니터링 시스템 같은 걸 구축해서 추후에 수동으로 롤백을 시켜주어야하는 방식일까요? (동기식 일때 입니다!)

  • 아키텍처
  • spring-cloud
  • kafka
  • msa
  • devops
김준환 댓글 2 좋아요 0 조회수 116

강의 자료 업데이트

미해결

Spring Cloud로 개발하는 마이크로서비스 애플리케이션(MSA)

섹션12부터는 아직 update가 안된거죠?

  • spring-boot
  • jpa
  • 아키텍처
  • spring-cloud
  • kafka
  • msa
  • rabbitmq
ABBCD 댓글 2 좋아요 0 조회수 152

부하분산 강의 섹션

미해결

Spring Cloud로 개발하는 마이크로서비스 애플리케이션(MSA)

Spring Cloud Gateway + Eureka 연동 강의에서 '부하분산'에 대한 내용은 바로 다음에 다룬다고 하는데 해당 강의가 섹션 4에는 안보여서요.. 더 뒤 섹션에 나오는걸까요?

  • spring-boot
  • jpa
  • 아키텍처
  • spring-cloud
  • kafka
  • msa
  • rabbitmq
최근호 댓글 1 좋아요 0 조회수 103

강의자료는 어디에서?

미해결

Spring Cloud로 개발하는 마이크로서비스 애플리케이션(MSA)

강의자료 pdf는 어디에서 볼 수 있을까요???

  • spring-boot
  • jpa
  • 아키텍처
  • spring-cloud
  • kafka
  • msa
  • rabbitmq
최근호 댓글 2 좋아요 0 조회수 140

인기 태그

인프런 TOP Writers

주간 인기글