묻고 답해요
141만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결마이크로서비스 아키텍처 와 MSA 패턴 이해
CQRS 6분정도 강의 질문드립니다.
안녕하세요 ~! 인벤트 핸들러라는게 예를 들어서 제품 서비스가 insert가 되면 스프링 이벤트 핸들러를 이용해서 주문 이력 서비스에 insert가 되는건가요? 그후에 view data에서 전체 이력을 호출 하는 방식일까요?
-
해결됨마이크로서비스 아키텍처 와 MSA 패턴 이해
20분정도에 말씀 하신 내용 질문 있습니다.
카프카에 최종 참여자 지원 LPS라는 설정이라는걸 구글링 해봤는데 잘 보이지가 않아서 혹시 어떤 설정이 있어야되나요? 말씀하신 내용으론 큐잉 서비스에서 최종 데이터베이스에 정착에 되는 응답값을 확인후 큐 서비스에서 지워지는 기능이 아주 매력적으로 느껴져서 여쭤봅니다 질문이 많아서 죄송합니다, 회사 프로젝트에 리더급으로 참여를 하여 궁금한걸 전부 물어보게 되네요;;ㅠㅠ 감사합니다.
-
미해결Spring Cloud로 개발하는 마이크로서비스 애플리케이션(MSA)
WebSecurity 설정 질문입니다.
@Bean protected SecurityFilterChain config(HttpSecurity http) throws Exception { http.csrf( (csrf) -> csrf.disable() ); http.authorizeHttpRequests( authorize -> authorize .requestMatchers("/**").permitAll() .anyRequest().authenticated() ); http.headers((headers) -> headers.frameOptions( (frameOptions) -> frameOptions.sameOrigin())); return http.build(); } 이 코드를 @Bean protected SecurityFilterChain config(HttpSecurity http) throws Exception { http.csrf( (csrf) -> csrf.disable() ); http.authorizeHttpRequests( authorize -> authorize .requestMatchers("/**") .access( new WebExpressionAuthorizationManager("hasIpAddress('127.0.0.1') or hasIpAddress('::1') or hasIpAddress('" + MY_IP + "')") ) .anyRequest().authenticated() ); http.headers((headers) -> headers.frameOptions( (frameOptions) -> frameOptions.sameOrigin())); return http.build(); }.access( new WebExpressionAuthorizationManager("hasIpAddress('127.0.0.1') or hasIpAddress('::1') or hasIpAddress('" + MY_IP + "')") ) 이 부분을 추가시키면, 파일 링크로 가는 것이 아니라, info 라는 파일이 다운받아지는데, 어떻게 해결해야 할지 여쭤보고 싶습니다 ㅠㅜ
-
미해결DevOps를 위한 Docker 가상화 기술 (Private Harbor Registry)
강의 자료
pdf 자료랑 명령어 모음 자료 언제 업로드 되나요?
-
미해결Spring Cloud로 개발하는 마이크로서비스 애플리케이션(MSA)
버전이 달라도 진행하는데 큰 차이가 있을까요?
안녕하세요 이제 막 섹션2 들어갔습니다.저는 3.3.3버전을 사용하려 하는데 강의에선 2.4 대 버전을 사용하여 진행하시는데 큰 차이가 있을까요?
-
미해결AWS로 구축하는 MSA와 컨테이너 오케스트레이션
컨테이너 환경에서 MSA 테스트 (실습) 강의에서..
실습 따라해보려는데 기본적으로 앱 빌드에 필요한 파일들은 어떻게 로컬환경에 받아야 하나요? 수업 자체는 잘 이해가 되는데 실습이 안돼서.. 강의에서 놓친게 있나 싶어서 질문드립니다
-
해결됨[DevOps 정석 2] MSA 환경의 로그 분석 기술 구축을 통한 통합로깅
Signoz 사용중에 질문이 있어 남깁니다.
현재 signoz를 https://signoz.io/docs/install/docker/해당 환경으로 구성하여 사용중입니다. 그런데 계속해서 사용하다보면 메모리 및 스왑 메모리 사용량이 증가하여 서버가 죽는 현상이 발생하고 있습니다. 이를 해결하기 위해서 불필요한 데이터 수집 및 로그 저장이 되지 않도록 설정하고 싶은데 어디 부분을 만져야 할까요?
-
미해결마이크로서비스 아키텍처 와 MSA 패턴 이해
질문드립니다,
뒤에 설명 해주실수도 있지만 컨테이너 오케스트레이션 강의를 듣고 궁금한것 질문드립니다. 예를 들어서 k8s로 노드를 3개띄우고 컨테이너를 8개를 띄운다고 하면 8개를 적절히 노드 3개에서 나누나요? 물론 말씀하신 replicas 설정등등는 뒤로 미루고 개념적으로 궁금합니다. 인글레스를 대표적으로 엔진엑스를 사용하는데 그 spring cloud apigateway를 앞단에 둘것 같습니다만인클레스 -> spring cloud apigateway -> 컴포넌트 아마 이런식으로 해야되는게 여러가지 있지만 대표적으로jwt 토근 값을 apigateway에서 검증하는 과정이 있을듯한데결론적으론 인글래스랑 apigateway 중복으로 인해 네트워크 레이턴시가 있을듯하여 질문드립니다. 스케일 아웃 하려면 클러스터 물리 서버 노드를 최대한 많이 붙여두면 쿠버네티스가 알아서 죽이고 살리고 하니 극단적으로 좋을까요? 물론 클라우드 비용 제외하고 말씀드립니다. 폐쇄망에서도 사용 하나요? 구성 할때 그럼 싱글 클러스터도 구축 하겠지만, 마스터 노드 1개 워커 1개 물리적 서버가 최소 필요하다고 생각되는데 그럼 최소 2대 있어야되나요?
-
해결됨Spring Cloud로 개발하는 마이크로서비스 애플리케이션(MSA)
MSA + vue 질문있습니다
강의를 마치고 vue3와 연동을 하고 있는 중입니다.cors 문제를 해결 중인데 gateway와 각각의 서비스마다 security를 이용해 cors설정을 해줘야 하나요?아니면 gateway만 cors 설정을 해줘야 하나요?
-
미해결Spring Cloud로 개발하는 마이크로서비스 애플리케이션(MSA)
DB 분리 관련 질문 드립니다.
강의 보다가 h2로 order-service, user-serivce, catalog-service 각각의 서비스마다 db를 따로 쓰다가 동기화 문제 때문에 하나의 mariadb로 써야 된다는걸 봤는데요. 현업에서는 MSA에서 서비스 마다 다른 db를 쓴다고 알고 있는데, 왜 그렇게 하신건지 궁금해서 질문 남깁니다. 서비스가 작아서 그렇게 해도 된다는 걸까요? 그럼 현업에서는 어떤 방식으로 해결하나요 동기화 문제
-
미해결장애 없는 서비스를 만들기 위한 Resilience4j - CircuitBreaker
Resilience4J 적절한 적용 예시인지 질문드립니다.
안녕하세요 🙂 Resilience4J 를 학습한 후 실무에 적용해보려 하는 주니어 백엔드 개발자입니다.제가 생각하는 예시가 서킷 브레이커를 도입하기 적절한 예시인지 궁금해서 질문을 남깁니다! 현재 제가 고려하는 상황입니다.A 서버 혹은 B 서버로 요청을 보내도 되는 상황 (A서버로 요청 보내는 것이 비용이 저렴하기 때문에 기본적으로 A사 요청)A사로 요청을 보냈지만 장애 발생 -> 서킷 OPEN 상태로 변경 서킷이 OPEN일 때 B 서버로 요청HALF OPEN일 때 A서버로 요청을 보냄A서버에서 정상적인 응답이 올 경우 서킷 CLOSE이러한 방식으로 Resilience4J를 도입하려고 하는데, resilience4J가 개발된 의도에 맞게 사용하는걸까요?혹시 아니라면, 다른 어떤 방법을 사용하면 좋을지 궁금해서 질문 남기게 되었습니다
-
해결됨AWS로 구축하는 MSA와 컨테이너 오케스트레이션
EC2 하나만 운용시 로드밸런서를 설정해야하는지
만약 스프링 부트 서버용 EC2 한 개만 운용한다면 굳이 로드밸런서를 설정하지 않아도 괜찮을까요? 그리고 만약 스프링부트 서버용 EC2를 2, 3개 더 만든다면 프리티어단계에선 탄력적 IP에 대한 요금만 부과되는 것인지, EC2 인스턴스 갯수만큼 요금이 나오는 것인지 궁금합니다.
-
미해결마이크로서비스 아키텍처 와 MSA 패턴 이해
레어어드 아케텍처 스타일 질문드립니다.
21분 쯤에 말씀하신게 mvc 모델에서 M 쪽이 비지니스레이어 아래쪽이 아닌C -> V로 보낼때 즉 dto나 vo가 M이라고 하시는건가요? 그럼 혹시 비즈니스 레이어 mvc 별개로 서비스 계층과퍼시스턴스 레이어는 데이터 엑세스 계층으로 생각해야될까요?
-
미해결AWS로 구축하는 MSA와 컨테이너 오케스트레이션
스크립트 오류
#!/bin/bash git clone -b 5_1_monolithic_s3 https://github.com/burger-2023/aws-operation-prac.git cd /aws-operation-prac ./gradlew build sudo java -jar build/libs/aws-msa-monolithic-prac-0.1.jar \ --spring.datasource.url=jdbc:postgresql://비밀:5432/geonmin_database \ --spring.datasource.username=postgres \ --spring.datasource.password=postgress \ --cloud.aws.s3.bucket=geonmin-bucket-test \ --cloud.aws.region.static=us-east-1빌드까지는 잘되는거 같은데 마지막줄이 오류납니다 ㅜㅠ 원인을 모르겠어요 그리고 강사님이 밑에 써준 스크립트 예시에 버킷 들어가기전에 \ 하나가 빠진거 같아요
-
미해결Spring Cloud로 개발하는 마이크로서비스 애플리케이션(MSA)
RabbitMQ-service.bat start exited with code 1.
제가 강의를 따라하면서 설치를 잘 못하여서 sc delete RabbitMQ명령어를 사용했고 이후 재설치하여 진행을 하는데 아래와 같이 실패를 하고 있습니다.그래서 호환이 문제이가 싶어서 github에서 버전호환으로 다시 시도를 해도 같은 문제가 발생합니다.RabbitMQ 커멘드로 삭제 다운 실행 관련 명령어를 사용해도 권한 문제가 발생을 했고, 관리자 모드로 명령어를 날려도 권한 문제가 발생했습니다. 혹시 몰라서 cmd 관리자 권한으로 날려도, RabbitMQ-server에 sbin이라는 위치로 들어가서 명령어를 날려도 같습니다.https://stackoverflow.com/questions/16001047/rabbitmq-fails-to-start위 stackoverflow에서 관련 정보를 찾아서 진행을 했는데 같은 문제가 발생 됩니다. 지금 한 3시간 정도 삽질을 하니 진이 빠지네요.. 도와주세욥...
-
미해결AWS로 구축하는 MSA와 컨테이너 오케스트레이션
rds 사용자 구성 명령어가 실행이 안되요
영상처럼 시작 템플릿 바꾸고 오토스케일링 그룹 설정 새로운버전으로 바꾸고 로드밸런서 dns 주소로 health체크를 해봤는데 502에러가 뜨고 안되서 여러가지 다 확인해봤는데ec2 만들어지고 git clone 자체가 안되었더라고요 사용자 데이터 명령어 자체가 실행이 안됩니다 직접 들어가서 명령어를 치면 먹습니다 네트워크 문제도아니고 패키지 다운로드 안한것도 아닌데 사용자 데이터 명령어가 git clone 시작도 안되면 어떻게 해결해야될까요? git clone은 되었지만 괜한 root 계정 밑에서만 조회해서 못봤던거... 강사님 해결해주셔서 감사합니다!
-
미해결DevOps를 위한 Docker 가상화 기술 (Private Harbor Registry)
./prepare 이미지가 안 생기는 문제
harbor 디렉토리에서 ./prepare을 실행시키면 prepare base dir is set to /root/harborWARNING: The requested image's platform (linux/amd64) does not match the detected host platform (linux/arm64/v8) and no specific platform was requestedexec /usr/bin/python3: invalid argument이러한 오류 메시지가 발생하여 이미지가 pull이 안되는 문제가 생깁니다.
-
미해결Spring Cloud로 개발하는 마이크로서비스 애플리케이션(MSA)
docker container -> 쿠버네티스 로만 클라우드 환경 구성할 수 있는 것으로 파악하고 있는데요, 수업볼때 2023년 버전만 봐도 될까요?
docker container -> 쿠버네티스 로만 클라우드 환경 구성할 수 있는 것으로 파악하고 있는데요, 수업볼때 2023년 버전만 봐도 될까요?아니면 과거 버전도 모두 봐야지만 2023년 버전을 이해할 수 있나요?
-
미해결Spring Cloud로 개발하는 마이크로서비스 애플리케이션(MSA)
주키퍼 서버 시작 시 포트 중복 오류가 뜹니다
어제 주키퍼 서버, 카프카 서버, 카프카 커넥트까지 정상적으로 동작했고 DB에서 데이터 등록 시 토픽 생성이 안되어 모두 삭제하고 재설치, 그리고 강사님이 올려주신 파일로도 해봤는데 주키퍼 서버 기동하면 포트 중복 오류가 뜹니다. 사용중인 포트도 없고 기본 포트번호를 바꿔봐도 똑같은 오류가 나오고 있습니다..[2024-09-01 22:44:51,121] INFO Server environment:java.io.tmpdir=C:\Users\PC\AppData\Local\Temp\ (org.apache.zookeeper.server.ZooKeeperServer) [2024-09-01 22:44:51,122] INFO Server environment:java.compiler=<NA> (org.apache.zookeeper.server.ZooKeeperServer) [2024-09-01 22:44:51,122] INFO Server environment:os.name=Windows 10 (org.apache.zookeeper.server.ZooKeeperServer) [2024-09-01 22:44:51,123] INFO Server environment:os.arch=amd64 (org.apache.zookeeper.server.ZooKeeperServer) [2024-09-01 22:44:51,127] INFO Server environment:os.version=10.0 (org.apache.zookeeper.server.ZooKeeperServer) [2024-09-01 22:44:51,128] INFO Server environment:user.name=PC (org.apache.zookeeper.server.ZooKeeperServer) [2024-09-01 22:44:51,128] INFO Server environment:user.home=C:\Users\PC (org.apache.zookeeper.server.ZooKeeperServer) [2024-09-01 22:44:51,129] INFO Server environment:user.dir=C:\Work\kafka_2.12-3.4.0 (org.apache.zookeeper.server.ZooKeeperServer) [2024-09-01 22:44:51,130] INFO Server environment:os.memory.free=494MB (org.apache.zookeeper.server.ZooKeeperServer) [2024-09-01 22:44:51,131] INFO Server environment:os.memory.max=512MB (org.apache.zookeeper.server.ZooKeeperServer) [2024-09-01 22:44:51,131] INFO Server environment:os.memory.total=512MB (org.apache.zookeeper.server.ZooKeeperServer) [2024-09-01 22:44:51,132] INFO zookeeper.enableEagerACLCheck = false (org.apache.zookeeper.server.ZooKeeperServer) [2024-09-01 22:44:51,132] INFO zookeeper.digest.enabled = true (org.apache.zookeeper.server.ZooKeeperServer) [2024-09-01 22:44:51,133] INFO zookeeper.closeSessionTxn.enabled = true (org.apache.zookeeper.server.ZooKeeperServer) [2024-09-01 22:44:51,134] INFO zookeeper.flushDelay=0 (org.apache.zookeeper.server.ZooKeeperServer) [2024-09-01 22:44:51,135] INFO zookeeper.maxWriteQueuePollTime=0 (org.apache.zookeeper.server.ZooKeeperServer) [2024-09-01 22:44:51,135] INFO zookeeper.maxBatchSize=1000 (org.apache.zookeeper.server.ZooKeeperServer) [2024-09-01 22:44:51,136] INFO zookeeper.intBufferStartingSizeBytes = 1024 (org.apache.zookeeper.server.ZooKeeperServer) [2024-09-01 22:44:51,138] INFO Weighed connection throttling is disabled (org.apache.zookeeper.server.BlueThrottle) [2024-09-01 22:44:51,140] INFO minSessionTimeout set to 6000 (org.apache.zookeeper.server.ZooKeeperServer) [2024-09-01 22:44:51,140] INFO maxSessionTimeout set to 60000 (org.apache.zookeeper.server.ZooKeeperServer) [2024-09-01 22:44:51,143] INFO Response cache size is initialized with value 400. (org.apache.zookeeper.server.ResponseCache) [2024-09-01 22:44:51,143] INFO Response cache size is initialized with value 400. (org.apache.zookeeper.server.ResponseCache) [2024-09-01 22:44:51,145] INFO zookeeper.pathStats.slotCapacity = 60 (org.apache.zookeeper.server.util.RequestPathMetricsCollector) [2024-09-01 22:44:51,145] INFO zookeeper.pathStats.slotDuration = 15 (org.apache.zookeeper.server.util.RequestPathMetricsCollector) [2024-09-01 22:44:51,146] INFO zookeeper.pathStats.maxDepth = 6 (org.apache.zookeeper.server.util.RequestPathMetricsCollector) [2024-09-01 22:44:51,147] INFO zookeeper.pathStats.initialDelay = 5 (org.apache.zookeeper.server.util.RequestPathMetricsCollector) [2024-09-01 22:44:51,147] INFO zookeeper.pathStats.delay = 5 (org.apache.zookeeper.server.util.RequestPathMetricsCollector) [2024-09-01 22:44:51,148] INFO zookeeper.pathStats.enabled = false (org.apache.zookeeper.server.util.RequestPathMetricsCollector) [2024-09-01 22:44:51,151] INFO The max bytes for all large requests are set to 104857600 (org.apache.zookeeper.server.ZooKeeperServer) [2024-09-01 22:44:51,152] INFO The large request threshold is set to -1 (org.apache.zookeeper.server.ZooKeeperServer) [2024-09-01 22:44:51,153] INFO Created server with tickTime 3000 minSessionTimeout 6000 maxSessionTimeout 60000 clientPortListenBacklog -1 datadir \tmp\zookeeper\version-2 snapdir \tmp\zookeeper\version-2 (org.apache.zookeeper.server.ZooKeeperServer) [2024-09-01 22:44:51,197] INFO Using org.apache.zookeeper.server.NIOServerCnxnFactory as server connection factory (org.apache.zookeeper.server.ServerCnxnFactory) [2024-09-01 22:44:51,199] WARN maxCnxns is not configured, using default value 0. (org.apache.zookeeper.server.ServerCnxnFactory) [2024-09-01 22:44:51,201] INFO Configuring NIO connection handler with 10s sessionless connection timeout, 2 selector thread(s), 24 worker threads, and 64 kB direct buffers. (org.apache.zookeeper.server.NIOServerCnxnFactory) [2024-09-01 22:44:51,208] INFO binding to port 0.0.0.0/0.0.0.0:2181 (org.apache.zookeeper.server.NIOServerCnxnFactory) [2024-09-01 22:44:51,210] ERROR Unexpected exception, exiting abnormally (org.apache.zookeeper.server.ZooKeeperServerMain) java.net.BindException: Address already in use: bind at java.base/sun.nio.ch.Net.bind0(Native Method) at java.base/sun.nio.ch.Net.bind(Net.java:555) at java.base/sun.nio.ch.ServerSocketChannelImpl.netBind(ServerSocketChannelImpl.java:337) at java.base/sun.nio.ch.ServerSocketChannelImpl.bind(ServerSocketChannelImpl.java:294) at java.base/sun.nio.ch.ServerSocketAdaptor.bind(ServerSocketAdaptor.java:89) at java.base/sun.nio.ch.ServerSocketAdaptor.bind(ServerSocketAdaptor.java:81) at org.apache.zookeeper.server.NIOServerCnxnFactory.configure(NIOServerCnxnFactory.java:676) at org.apache.zookeeper.server.ZooKeeperServerMain.runFromConfig(ZooKeeperServerMain.java:158) at org.apache.zookeeper.server.ZooKeeperServerMain.initializeAndRun(ZooKeeperServerMain.java:112) at org.apache.zookeeper.server.ZooKeeperServerMain.main(ZooKeeperServerMain.java:67) at org.apache.zookeeper.server.quorum.QuorumPeerMain.initializeAndRun(QuorumPeerMain.java:140) at org.apache.zookeeper.server.quorum.QuorumPeerMain.main(QuorumPeerMain.java:90) [2024-09-01 22:44:51,214] INFO ZooKeeper audit is disabled. (org.apache.zookeeper.audit.ZKAuditProvider) [2024-09-01 22:44:51,218] ERROR Exiting JVM with code 1 (org.apache.zookeeper.util.ServiceUtils)
-
미해결Spring Cloud로 개발하는 마이크로서비스 애플리케이션(MSA)
spring cloud gateway 에서 eureka의 용도
강사님 강의 잘듣고 있습니다.한가지 궁금점은 유레카 서버를 별도로 올리지 않아도 api-gate-way에서 first-service, secound-service라우팅 및 필터가 가능한데 이떄 유레카의 용도가 무엇인기 궁금합니다. 유레카 서버로 부터 연결된 유레카 클라이언트 정보를 얻는다고 했는데... 유레카 서버를 off해도 routing은 정상적으로 이루어지더라구요 .. 제가 뭔가 잘못 이해하고 있는 부분이 있을까요?