instanceId
미해결
Spring Cloud로 개발하는 마이크로서비스 애플리케이션(MSA)
instanceId 설정할때 ${spring.application.instanc_id:${random.value}}로 들여쓰는 이유가 뭔가요? 그냥 ${random.value}로도 생성이 되는것은 확인을 했는데요.. 이유를 모르겠습니다.
- spring-boot
- jpa
- 아키텍처
- spring-cloud
- kafka
- msa
173만명의 커뮤니티!! 함께 토론해봐요.
미해결
Spring Cloud로 개발하는 마이크로서비스 애플리케이션(MSA)
instanceId 설정할때 ${spring.application.instanc_id:${random.value}}로 들여쓰는 이유가 뭔가요? 그냥 ${random.value}로도 생성이 되는것은 확인을 했는데요.. 이유를 모르겠습니다.
해결됨
[자바/Java] 문과생도 이해하는 DFS 알고리즘! - 입문편
안녕하세요 저는 강사님 강의로 공부하고 파이썬으로 코테를 준비하고 있습니다. 저와 같은 상황에 계신분들과 공유하고 싶어 글을 올립니다. 파이썬 풀이에서 부족한 부분 알려주시면 수정하겠습니다.~ import sys sys.setrecursionlimit(10 ** 6) N, M = map(int, sys.stdin.readline().split()) MAX = 1000 + 10 graph = [[False for in range(MAX)] for in range(MAX)] visited = [False for in range(MAX)] for in range(M): x, y = map(int, sys.stdin.readline().split()) graph[x][y] = True graph[y][x] = True def dfs(idx): visited[idx] = True for j in range(1, N + 1): if not visited[j] and graph[idx][j]: dfs(j) cnt = 0 for i in range(1, N + 1): if not visited[i]: dfs(i) cnt += 1 print(cnt)
미해결
재고시스템으로 알아보는 동시성이슈 해결방법
사용자가 많지 않고 일반 커뮤니티 같은 경우에는 좋아요 개수가 많이 몰릴 일이 없다고 생각해서 PessimisticLock을 적용하려고 합니다. 제가 생각했을 땐 인스타나 그런 대규모 사이트의 좋아요는 PessimisticLock을 적용하면 성능 저하가 뚜렷하게 나타난다고 생각합니다. -> 레디스 사용이 베스트 토이프로젝트 규모의 SNS는 PessimisticLock으로 구현하는게 비용도 들지 않고 데이터 정합성이 보장된다고 판단했습니다. 혹시 제가 틀린 거나 더 나은 방법이 있을까요? 항상 감사합니다! 아 추가로 newFixedThreadPool은 왜 32로 설정하는지도 궁금합니다!!
미해결
실습으로 배우는 선착순 이벤트 시스템
org.apache.kafka.clients.NetworkClient : [Producer clientId=producer-1] Error connecting to node f9ffc2ed14a4:9092 (id: 1001 rack: null) 에러 메시지는 위와 같습니다. 현재 m2 노트북을 사용하고 있어 호스트가 arm64 플랫폼입니다. arm64를 지원하는 주키퍼, 카프카 이미지를 설치하였습니다. 도커 컴포즈 파일입니다. version: '2' services: zookeeper: image: docker.io/bitnami/zookeeper:3.8 container_name: zookeeper ports: - "2181:2181" environment: ZOOKEEPER_CLIENT_PORT: 2181 ZOOKEEPER_TICK_TIME: 2000 ALLOW_ANONYMOUS_LOGIN: yes kafka: image: docker.io/bitnami/kafka:3.4 container_name: kafka ports: - "9092:9092" environment: KAFKA_ADVERTISED_HOST_NAME: 127.0.0.1 KAFKA_ZOOKEEPER_CONNECT: zookeeper:2181 volumes: - /var/run/docker.sock:/var/run/docker.sock 나머지 코드는 동일합니다.
미해결
실습으로 배우는 선착순 이벤트 시스템
nGrinder test script도 혹시 공유가능하실까요?
미해결
2주만에 통과하는 알고리즘 코딩테스트 (2024년)
완전탐색 강의 마지막 문제 1090번 문제 풀이 방법에 의문이 생겨서 질문 올려봅니다. 강의에서는 우리의 집 중에서 한 곳에 모이면 된다고 풀이를 하셨는데, 예시에 나온 4 15 14 15 16 14 15 16 15 4명이 모이기 위한 최적의 장소는 (15,15)입니다. 백준에서도 이것이 정답 좌표이고. 그래서 혹시 제가 1번 2번 3번 아이디어를 이해하는데에서 잘못 이해한 부분이 있을까 싶어 질문을 올립니다. (15 14) (15 16) (14 15) (16 15) 중에 하나에 모인다는 말이 아닌것인가요?
미해결
Spring Cloud로 개발하는 마이크로서비스 애플리케이션(MSA)
구분에 대해 명확히 이해가 되지 않는데요, SOA 경우도 서비스 단위 개발이고 Microservice도 그렇지 않나요? 그 규모의 차이가 둘을 구분 짓는 건가요? ex) SOA의 서비스 단위가 숙박 예약 기능이라고 하면 Microservice는 숙박조회, 결제 ... 으로 더 세분화 그리고 SOA에서 직접 서비스간에 데이터 교환을 하는 것에서 발생하는 의존 문제로 인해 ESB를 도입했다고 봤는데요, Microservice에서는 API를 통해 서비스 간 통신 시 이런 의존문제가 없을 수 있는건가요? 뭔가 구체적인 예시로 비교해주시면 감사하겠습니다.
미해결
Spring Cloud로 개발하는 마이크로서비스 애플리케이션(MSA)
구동시킨 클라이언트를 모두 중지하였는데 유레카에서 삭제가 안되네요.. 캐시가 남는걸까요?
미해결
실습으로 배우는 선착순 이벤트 시스템
안녕하세요. kafka 동시성 테스트 시 컨슈머가 비동기로 데이터를 처리하니까 컨슈머가 모든 데이터를 polling하기 전에 이미 메인 스레드가 종료되어 테스트 케이스가 실패로 끝나는 경우에서요. Thread.sleep으로 일정 시간을 멈추는 방법 말고는 처리할 수 있는 또 다른 방법이 있을까요?
미해결
자바 ORM 표준 JPA 프로그래밍 - 기본편
fetch join 시 alias를 사용해서 필터링하는게 왜 안되는걸까요? 이거에 대한 답변으로 디비상태와 객체상태의 일관성이 깨지게 됨을 보통 얘기하시는것같아요 alias를 사용해서 필터링해버리면 실제 디비에 있는 데이터보다 적은 개수가 나오게 되니까요. 근데 어차피 그 필터링된 결과만을 결과로 리턴해주어야한다면 사용해도 괜찮을 것 같은데 디비상태와 객체상태의 일관성이 깨지는게 왜 문제가될까요? 그래서 생각을 해봤는데 크게 다음인것같아요 - 유지관리어려울 수 있음 - 캐싱문제 근데 저 두 문제가 정말 큰 문제가 되는지를 잘 모르겠어요...; 유지관리 어려울수야 있겠지만 그렇게 까지 어려울지도 잘 모르겠고, 캐싱문제(쿼리결과캐싱)도 저 코드에 의해 영향이 얼마나 많이 갈지..도 잘 모르겠어요 저 유지관리/캐싱 문제가 아니라.. 2차캐시때문인가요? 예를들어서 team과 member가 일대다 연관이고 team을 select해온다는 sql이 있다고 가정 1. fetch join + on 절 : 디비에 있는 일부 데이터 불러옴 2. fetch join 만있어서 디비에있는 모든 데이터 불러옴 하나의 트랜잭션에서 1호출 뒤에 2를 호출하면 디비에 쿼리를 날리긴하지만 이미 team_id에 해당하는 객체가 영속성 컨텍스트에있어서 가져온거버림 그래서 추후에 문제가생길 수 있음 --- 인건가요?
미해결
[아파치 카프카 애플리케이션 프로그래밍] 개념부터 컨슈머, 프로듀서, 커넥트, 스트림즈까지!
... [order-join-application-05b24bf4-65d2-4fda-83be-a754a4988a43-StreamThread-1] INFO org.apache.kafka.streams.processor.internals.StreamThread - stream-thread [order-join-application-05b24bf4-65d2-4fda-83be-a754a4988a43-StreamThread-1] State transition from PARTITIONS_ASSIGNED to PENDING_SHUTDOWN [order-join-application-05b24bf4-65d2-4fda-83be-a754a4988a43-StreamThread-1] INFO org.apache.kafka.streams.processor.internals.StreamThread - stream-thread [order-join-application-05b24bf4-65d2-4fda-83be-a754a4988a43-StreamThread-1] Shutting down [order-join-application-05b24bf4-65d2-4fda-83be-a754a4988a43-StreamThread-1] INFO org.apache.kafka.clients.consumer.KafkaConsumer - [Consumer clientId=order-join-application-05b24bf4-65d2-4fda-83be-a754a4988a43-StreamThread-1-restore-consumer, groupId=null] Unsubscribed all topics or patterns and assigned partitions [order-join-application-05b24bf4-65d2-4fda-83be-a754a4988a43-StreamThread-1] INFO org.apache.kafka.clients.producer.KafkaProducer - [Producer clientId=order-join-application-05b24bf4-65d2-4fda-83be-a754a4988a43-StreamThread-1-producer] Closing the Kafka producer with timeoutMillis = 9223372036854775807 ms. [order-join-application-05b24bf4-65d2-4fda-83be-a754a4988a43-StreamThread-1] INFO org.apache.kafka.streams.processor.internals.StreamThread - stream-thread [order-join-application-05b24bf4-65d2-4fda-83be-a754a4988a43-StreamThread-1] State transition from PENDING_SHUTDOWN to DEAD [order-join-application-05b24bf4-65d2-4fda-83be-a754a4988a43-StreamThread-1] INFO org.apache.kafka.streams.KafkaStreams - stream-client [order-join-application-05b24bf4-65d2-4fda-83be-a754a4988a43] State transition from REBALANCING to ERROR [order-join-application-05b24bf4-65d2-4fda-83be-a754a4988a43-StreamThread-1] ERROR org.apache.kafka.streams.KafkaStreams - stream-client [order-join-application-05b24bf4-65d2-4fda-83be-a754a4988a43] All stream threads have died. The instance will be in error state and should be closed. [order-join-application-05b24bf4-65d2-4fda-83be-a754a4988a43-StreamThread-1] INFO org.apache.kafka.streams.processor.internals.StreamThread - stream-thread [order-join-application-05b24bf4-65d2-4fda-83be-a754a4988a43-StreamThread-1] Shutdown complete Exception in thread "order-join-application-05b24bf4-65d2-4fda-83be-a754a4988a43-StreamThread-1" java.lang.UnsatisfiedLinkError: /private/var/folders/16/xqv9hsq91sn7glvzckc__r100000gn/T/librocksdbjni3612565276450787735.jnilib: dlopen(/private/var/folders/16/xqv9hsq91sn7glvzckc__r100000gn/T/librocksdbjni3612565276450787735.jnilib, 0x0001): tried: '/private/var/folders/16/xqv9hsq91sn7glvzckc__r100000gn/T/librocksdbjni3612565276450787735.jnilib' (mach-o file, but is an incompatible architecture (have 'x86_64', need 'arm64e')) 샘플 코드 실행 시 해당 에러가 계속 발생하고 있습니다. 원인을 알 수 있을까요?
미해결
카프카 완벽 가이드 - 코어편
mac os 환경에서 utm에 ubuntu 설치해서 사용중입니다. 고정 IP할당하는 부분에서, 강의는 virtual box로 설명되어 세팅값 설정하는데 어려움이 있습니다 구글링 해봐도 "utm ubuntu 수동 ip 설정" 관련해서는 따로 자료가 없어서요! ㅠㅠ utm > edit selected vm > Devices > 네트워크 > 고급 설정 보기 다음에 어떤걸 설정해야되는지 모르겠습니다!
미해결
[아파치 카프카 애플리케이션 프로그래밍] 개념부터 컨슈머, 프로듀서, 커넥트, 스트림즈까지!
consume lag 모니터링 툴로 prometheus + grafana는 어떻게 생각하시나 궁금합니다~! prometheus에서 슬라이딩 윈도우를 지원하는 것으로 아는데, 블로그를 보다 kafka jmx exporter를 prometheus jmx metrics를 봐서요!
미해결
실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
테스트용 데이터를 추가하기 위해 아래와 같은코드를 만들었습니다. @Component @RequiredArgsConstructor public class TestDataInit { private final ItemService itemService; private final ItemRepository itemRepository; /** * 테스트용 데이터 추가 */ @PostConstruct public void init() { itemService.saveItem(new Book("김영한","츨핀시한빛")); itemService.saveItem(new Book("호날두","출판사멩구")); //오류 발생// itemRepository.save(new Book("a","출판사a")); itemRepository.save(new Book("b","출판사b")); } } 한번은 itemService를 이용하여 값을 넣었고 다른 한번은 itemRepository를 이용하여 값을 넣었습니다. 제 단순한 생각으로는 '어차피 itemService는 itemRepository에 바로 위임을하니 바로 itemRepository로 저장하자' 여서 실행했더니 localhost에서 연결을 거부했습니다. 오류가 나왔습니다. <질문> 왜 itemRepository로 저장하면 안되고 itemService로만 저장해야 데이터가 추가되는 지 궁금합니다.
미해결
실습으로 배우는 선착순 이벤트 시스템
안녕하세요. 궁금한 점이 있어서 질문드립니다. 강의에서는 redis로 동시성 제어를 하고 있는데, 만약에 여기서 쿠폰발급로직이 추가 되어 발급과 취소가 동시에 일어난다면 문제가 되지 않나요??
미해결
Spring Cloud로 개발하는 마이크로서비스 애플리케이션(MSA)
마이크로서비스 양질의 내용을 수강중인 학생입니다. 지금 kafka source connector와 mariadb를 연결하는 과정에서 database url을 찾을 수 없다는 에러가 계속 발생중입니다. 혹시 동일한 현상을 해결하신 선배님이 계시거나, 아시는분의 도움을 얻고자 글 올립니다. 일단 db는 정상 실행되고 있습니다. url/user/password/table name까지의 정보는 완전 일치합니다. 증상은 아래와 같습니다. data source 생성 과정 source connector 상태 정보 url 정상 유무
해결됨
[아파치 카프카 애플리케이션 프로그래밍] 개념부터 컨슈머, 프로듀서, 커넥트, 스트림즈까지!
안녕하세요 강의 잘 듣고 있습니다. 강의 [섹션 5 카프카 프로듀서 애플리케이션 개발 > 메시지 키를 가진 프로듀서 애플리케이션] 에서의 질문 드립니다.. 질문 1. 강의를 따라가며 실습을 그대로 진행해보고 있는데.. 아래와 같이 kafka-console-consumer 명령어에 --from-beginning 옵션을 주고 실행했을 때.. 보낸 순서대로 출력이 이루어지지 않는것으로 보여서 이유가 무엇인지 궁금합니다.. 질문 2. 애플리케이션에서 key1-value1 을 먼저 send 하고 key2-value2 를 send 하는 순서로 실행을하면.. kafka-console-consumer 명령어로 실시간으로 출력되는 것을 보았을 때.. key2 가 먼저 출력되고 key1 이 출력됩니다.. 이 경우 무엇이 잘못 된건지 궁금합니다. 실습환경 Kafka 2.5.0 코드는 3.4.1 kafka-producer 의 ProducerWithKeyValue 를 key value 값만 변경하였습니다. 감사합니다.
미해결
[아파치 카프카 애플리케이션 프로그래밍] 개념부터 컨슈머, 프로듀서, 커넥트, 스트림즈까지!
하나의 서버에 하나의 브로커가 설치 되어 있다고 말씀해 주셨는데 복제 옵션이 3일 때, 적어도 3개의 서버를 실행되고 있어야 하는 건가요?
미해결
자바와 스프링 부트로 생애 최초 서버 만들기, 누구나 쉽게 개발부터 배포까지! [서버 개발 올인원 패키지]
강의 코드를 그대로 따라가고 있지는 않고 기존에 알고 있던 내용이랑 합쳐서 코드를 작성하고 있습니다. Controller @PutMapping("/user") public void updateUserName(@RequestBody UpdateUserDto updateDto) { userService.updateUserName(updateDto.getId(), updateDto.getName()); } Dto public class UpdateUserDto { private long id; private String name; public long getId() { return id; } public String getName() { return name; } Repository @Override public void updateUserName(long id, String name) { String sql = "update user set name = ? where id = ?"; jdbcTemplate.update(sql, name, id); } Service @Override public void updateUserName(long id, String name) { userRepository.updateUserName(id, name); } 수정을 눌렀을 때 name은 정상적으로 값이 넘어오는데 id가 계속 0으로 넘어옵니다,, 등록 시에는 DB에 id가 정상적으로 입력되고 있는데 뭐가 문제일까요?
해결됨
스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
[질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 회원 리포지토리 테스트 케이스 작성 강의에서 assertEquals(A, B), assertThat(A).isEqualTo(B)에 대한 질문이 있습니다. 두가지 메서드 모두 A와 B의 순서가 크게 중요하지 않아보이는데 그런가요? 다르다면, 첫번째 메서드는 member를 앞에 넣으시고, 뒤에 메서드는 member1을 뒤에 넣으셨는데, 메서드를 어떻게 해석해야할까요? junit 문서를 찾아보아도 그런 설명이 없네요..