19,800원
다른 수강생들이 자주 물어보는 질문이 궁금하신가요?
- 미해결재고시스템으로 알아보는 동시성이슈 해결방법
네임드락을 활용할 때 데이터소스를 분리해야하는 이유가 궁금해요!
안녕하세요 최상용 엔지니어님~~ 강의 너무 잘 보고 있어요! 다음강의도 기대기대됩니당 답변 부탁드립니다~~~
- 미해결재고시스템으로 알아보는 동시성이슈 해결방법
synchronized 쓰지 않는 이유는 해당 서버가 스케일 아웃(분산처리 하기 위해) 경우 동시성을 보장 못 하기 때문이라고 해주셨는데요
이와 같이 동시성 보장하기 위해 Redisson, Lettuce 를 사용한다고 가정하겠습니다. 하지만 해당 Redis 서버에서도 스케일 아웃을 하게된다면 이때 synchronized 처럼 동시성 보장 얻기 힘든거 아닌가요? Thread A 가 Redis A Server 에 Lock 을 걸었는데동시에 Thread B 가 Redis B Server 에 Lock 을 걸고 동시에 호출이 가능하지 않을까 해서요. 사실 대규모 서비스를 운영해본적이 없어서 이렇게 엉뚱한? 질문을 드리네요...
- 미해결재고시스템으로 알아보는 동시성이슈 해결방법
선생님이 프로젝트 spring 버전 기준으로 실무 통해 Redisson 적용시 문제
강의 영상 그대로 spring boot 버전 2.7.2 기준으로 Redisson 적용시 implementation group: 'org.redisson', name: 'redisson-spring-boot-starter', version: '3.17.5' 더불어서 implementation 'io.springfox:springfox-boot-starter:3.0.0' implementation 'io.springfox:springfox-swagger-ui:3.0.0' swagger 도 적용 보통 하는데요. 문제는 해당 swagger 라이브러리를 추가 하고 프로세스 올리면 org.springframework.context.ApplicationContextException: Failed to start bean 'documentationPluginsBootstrapper'; nested exception is java.lang.NullPointerException at org.springframework.context.support.DefaultLifecycleProcessor.doStart(DefaultLifecycleProcessor.java:181) ~[spring-context-5.3.22.jar:5.3.22] at org.springframework.context.support.DefaultLifecycleProcessor.access$200(DefaultLifecycleProcessor.java:54) ~[spring-context-5.3.22.jar:5.3.22] at org.springframework.context.support.DefaultLifecycleProcessor$LifecycleGroup.start(DefaultLifecycleProcessor.java:356) ~[spring-context-5.3.22.jar:5.3.22] at java.base/java.lang.Iterable.forEach(Iterable.java:75) ~[na:na] at org.springframework.context.support.DefaultLifecycleProcessor.startBeans(DefaultLifecycleProcessor.java:155) ~[spring-context-5.3.22.jar:5.3.22] at org.springframework.context.support.DefaultLifecycleProcessor.onRefresh(DefaultLifecycleProcessor.java:123) ~[spring-context-5.3.22.jar:5.3.22] at org.springframework.context.support.AbstractApplicationContext.finishRefresh(AbstractApplicationContext.java:935) ~[spring-context-5.3.22.jar:5.3.22] at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:586) ~[spring-context-5.3.22.jar:5.3.22] at org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.refresh(ServletWebServerApplicationContext.java:147) ~[spring-boot-2.7.2.jar:2.7.2] at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:734) ~[spring-boot-2.7.2.jar:2.7.2] at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:408) ~[spring-boot-2.7.2.jar:2.7.2] at org.springframework.boot.SpringApplication.run(SpringApplication.java:308) ~[spring-boot-2.7.2.jar:2.7.2] at org.springframework.boot.SpringApplication.run(SpringApplication.java:1306) ~[spring-boot-2.7.2.jar:2.7.2] at org.springframework.boot.SpringApplication.run(SpringApplication.java:1295) ~[spring-boot-2.7.2.jar:2.7.2] at com.example.demo.SynchronizedApplication.main(SynchronizedApplication.java:10) ~[classes/:na] Caused by: java.lang.NullPointerException: null at springfox.documentation.spring.web.WebMvcPatternsRequestConditionWrapper.getPatterns(WebMvcPatternsRequestConditionWrapper.java:56) ~[springfox-spring-webmvc-3.0.0.jar:3.0.0] .... 생략.... 해당 에러가 발생되네요.ㅠ.ㅠ 개인적으로 구글링 해서 검색해보니 방법1 application.yml 에서 spring: mvc: pathmatch: matching-strategy: ant_path_matcher 추가한다. (실패....) 방법2 spring boot 버전을 2.5.x 로 낮춘다. (성공...) swagger 하고 spring boot, Redisson 버전 호환이 안되는거 같습니다. 다른 방법으로 Redisson 버전을 낮추다던가... swagger 버전을 낮추는거? (3.0 보다 낮은것은 없는거 같네요...) 해당 방법은 안되는거 같네요... spring boot 버전을 2.5.x 으로 낮추는 방법 밖에 길이 없는걸까요? spring boot 버전을 낮추는것은 하책인거 같은데 ㅠ,ㅠ 방법이 혹시 있을까요... TEST 한 프로젝트는 선생님이 강의 영상에 직접 만드신 프로젝트 기준으로 한것 입니다! ㅜㅜ
- 미해결재고시스템으로 알아보는 동시성이슈 해결방법
synchronized 문의
안녕하세요. 강의에서는 트랜잭션이 필요한 곳에서 @Transactional 어노테이션을 적용하게 되면 synchronized 를 사용해도 올바른 결과가 나오지 못함을 설명해주셨는데요. 그래서 @Transactional 을 제외시키고 synchronized 를 적용해서 테스트를 돌리셨습니다. 이후 끝맺음이 다소 부족했던 것 같은데요. 그래서 결과적으로 트랜잭션 AOP 를 적용하는 곳에서는 syncronized 는 무쓸모한 옵션이다라는 말씀일까요? 트랜잭션 내에서 해당 기능을 사용할 수 있는 방법같은 건 없는 것인지요?
- 미해결재고시스템으로 알아보는 동시성이슈 해결방법
화면이 작아서 글자가 안보이네요......
너무 보기가 힘들어요.....