회원가입을 진행하는데 회원이름이 겹치지 않게 unique 조건을 걸어두었습니다. 그리고 간단히 중복되는 이름으로 가입하는 테스트를 만들어 중복될 경우 어떤 Exception이 발생하는지 해보았습니다. 결과는 아무 예외도 일어나지 않았습니다. 쿼리를 보면 두번의 회원가입 모두 정상처리가 되어있습니다. ??? 분명히 중복인데 ??? unique 설정이 잘못 되었나 싶어 MySQL DB를 확인해 보았습니다. member_name 기준으로 Unique가 True인 인덱스가 잘 생성되어 있습니다. 그렇다면 문제는 JPA에 있다는 것 테스트에서 @Transaction을 제거한 결과 DataIntegrityViolationException이 발생하였습니다. 객체를 저장하는 JPA 영속성 컨텍스트에서는 unique속성..
Flutter에서 STOMP프로토콜을 사용한 채팅기능입니다. 참고하여 사용하시기 바랍니다. import 'package:stomp_dart_client/stomp.dart'; import 'package:stomp_dart_client/stomp_config.dart'; import 'package:stomp_dart_client/stomp_frame.dart'; // 채팅 목록을 저장할 리스트 List messages = []; int chatRoomId = 1; class StompScreen extends StatefulWidget { const StompScreen({super.key}); @override State createState() => _StompScreenState(); } clas..
이번에는 MSA(Micro-Service Architecture)를 구성하는데 있어 하나의 서비스에 해당하는 채팅기능을 개발해봅니다. 가용성을 위해 서버를 여러대로 확장하는 Scale-Out 을 하고 다양한 기술들을 활용해 볼텐데 사용될 기술의 사용 목적을 간단히 설명하고 시작하겠습니다. 구독/발행 기반의 STOMP 채팅 MessageBroker로 Kafka 채팅내역을 저장하기 위한 MongoDB 여러대의 서버관리, 트래픽 분산처리와 장애복구를 위한 Kubernetes Kafka와 MongoDB는 kubernetes 내부가 아닌 외부IP 에서 사용한다고 가정합니다. 대략적인 구조 데이터 처리 과정 사용자가 Stomp 커넥션을 요청 Kubernetes LoadBalancing으로 여러대의 서버중 하나와 연..
이전에 Spring Cloud Loadbalancing을 사용해 로드밸런싱 환경을 구성하고 RabbitMQ 메세지 브로커를 사용해 가용성을 높이는 아키텍처 구조를 설계하고 구현해보았습니다. 2023.07.25 - [Spring/채팅앱] - [Spring 채팅앱 성능 개선기 5] Spring Cloud LoadBalancing 적용 [Spring 채팅앱 성능 개선기 5] Spring Cloud LoadBalancing 적용 이전게시글 2023.07.13 - [Spring/채팅앱] - [Spring 채팅앱 성능 개선기 4] Redis Cache 적용 [Spring 채팅앱 성능 개선기 4] Redis Cache 적용 이전 게시글 2023.07.06 - [Spring/채팅앱] - [Spring 채팅앱 성능 개선..
이전 포스트 2023.07.25 - [Spring/채팅앱] - [Spring 채팅앱 성능 개선기 5] Spring Cloud LoadBalancing 적용 [Spring 채팅앱 성능 개선기 5] Spring Cloud LoadBalancing 적용 이전게시글 2023.07.13 - [Spring/채팅앱] - [Spring 채팅앱 성능 개선기 4] Redis Cache 적용 [Spring 채팅앱 성능 개선기 4] Redis Cache 적용 이전 게시글 2023.07.06 - [Spring/채팅앱] - [Spring 채팅앱 성능 개선기 3] Cac wans1027.tistory.com 로드밸런싱을 적용하면서 문제가 생겼습니다. 현재는 발행(pub)과 구독(sub)의 서버 포트가 같아야만 통신이 가능합니다. ..
이전게시글 2023.07.13 - [Spring/채팅앱] - [Spring 채팅앱 성능 개선기 4] Redis Cache 적용 [Spring 채팅앱 성능 개선기 4] Redis Cache 적용 이전 게시글 2023.07.06 - [Spring/채팅앱] - [Spring 채팅앱 성능 개선기 3] Cache 설계 전략 [Spring 채팅앱 성능 개선기 3] Cache 설계 전략 이전글 보러가기 2023.07.04 - [Spring/채팅앱] - [Spring 채팅앱 성능개선 wans1027.tistory.com 서비스와 트래픽 규모가 커진다면 가용성을 보장하기 위해 Scale-Out이 반드시 필요합니다. 이번에는 서버의 가용성을 높이는 가장효과적인 방법인 LoadBalancing을 적용해보겠습니다. LoadB..
이전 게시글 2023.07.06 - [Spring/채팅앱] - [Spring 채팅앱 성능 개선기 3] Cache 설계 전략 [Spring 채팅앱 성능 개선기 3] Cache 설계 전략 이전글 보러가기 2023.07.04 - [Spring/채팅앱] - [Spring 채팅앱 성능개선기 2] Cache를 이용한 속도향상 [Spring 채팅앱 성능개선기 2] Cache를 이용한 속도향상 성능개선기 1편을 이어나가 2편 시작합니다. 20 wans1027.tistory.com 남은 문제점을 되짚어 봅시다. 로컬 캐시를 사용하므로, Scale-Out에 적합하지 않다. RAM용량은 제한적인데, 채팅방이 늘어남에 따라 캐시가 무한정으로 늘어날 수 있어 제한이 필요하다. 오늘은 REDIS를 활용해 남은 문제점들을 한번에 ..
- Total
- Today
- Yesterday
- Vmmem종료
- 로컬캐시
- Stomp RabbitMQ
- 웹소켓 채팅
- 푸시알림동작원리
- Spring Stomp
- Spring 채팅
- authorization
- FCM
- Spring RabbitMQ
- loadbalancing
- Kubernetes
- Flutter
- MessageBroker
- ERD설계
- Spring WebSocket
- Cache
- ChattingApp
- Stomp Kafka
- nativeQuery
- 게시판 채팅
- Spring 대댓글
- bcrypt
- Spring
- springboot
- Authentication
- Vmmem
- spring orphan
- Security
- Bcypt
| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | 5 | 6 | |
| 7 | 8 | 9 | 10 | 11 | 12 | 13 |
| 14 | 15 | 16 | 17 | 18 | 19 | 20 |
| 21 | 22 | 23 | 24 | 25 | 26 | 27 |
| 28 | 29 | 30 | 31 |