DB 회원 찾기 메시지 auth check
Redis에서 memberID를 읽는 getMemberIdFromRequest() DB를 타격하지 않고 세션. 대신 getMessages()에서 사용 getCurrentMember() — 회원국은 이제는 null을 체크했습니다. 절대 사용. 모든 채팅 기록로드에서 하나의 DB 라운드 트...
Overhead와 async TTL를 삭제
- k8s configmap (실제 생산 구성) : 낮은 보안 / hikari INFO/DEBUG에서 WARN 로깅, HikariCP 풀 구성 추가 (최대 20) - KSessionService: 스트립 ~60 System.out.println 호출에 화재 128-char 세션 키의 문...
로그 소음 및 튜닝 연결 풀 감소
- TRACE에서 WARN, HikariCP, DEBUG에서 WARN - 비동기 로그의 수십 가지를 요청당 작성 제거 - HikariCP 풀 구성 추가 (최대 20, 최소 5) 방지 concurrent 짐의 밑에 연결 배기 - getCurrentMember에서 14 per-request...
채팅 메시지 endpoint에서 per-message 로깅 제거
시스템 제거.out.println 메시지 스트림 맵 내부 호출 메시지 당 한 번 제출 (100 요청당 I / O 운영), 최종 로그인하여 회원 ID 수집
Cross-subdomain WebSocket auth를 위한 질의 param에서 ***
읽기 *** ID 에서 ? *** = 쿼리 매개 변수 먼저, 다시 떨어지기 제품정보 이것은 internal.kamocrm.com에 프론트엔드를 허용한다. 웹소켓은 크로스 도메인 쿠키없이 media.kamocrm.com에 연결됩니다. Interceptor는 Redis에 직접 세션을 검증합...
독특한 소비자 retry와 결합된 stale NATS 소비자
- createNatsMessageHandler() 메소드로 메시지 핸들러 추출 - "Consumer already bound"일 때 고유한 소비자 이름과 재량 논리 추가 서버 재시작 후 오류 발생 - 동서 debug 로깅 청소
*** 쿠키를 통해 WebSocket 인증 추가
WebSocketAuthInterceptor 를 추가하십시오. KSessionService를 통해 세션을 해결하고, memberId/orgId를 저장합니다. WebSocket 세션 속성. STOMP CONNECT에 대한 Principal 설정 downstream 존재 및 알림 기능.
포트 443에 Traefik을 통해 웹소켓
- service.yaml: 포트 80→8443을 수정하여 pod의 실제 청취 포트와 일치 - ingressroute.yaml : 사용 계획 https + 포트 8443 백엔드 - servertransport.yaml : 백엔드 TLS cert에 insecureSkipVerify 추가 ...
NATS 연결을 위한 클러스터 내부 DNS 사용
WireGuard IPs에서 기본 NATS URL 변경 (100.64.x.x) nats.kamo.svc.cluster.local 서버. 원격 노드 (k0m1, k2m1)는 WireGuard IP에 남아 있습니다.
MediaService 배포에서 TLS 인증서 선택
- 선택 추가 : wildcard-kamocrm-com 비밀 볼륨에 true - cert-converter init 컨테이너를 업데이트하여 누락된 인증서를 안전하게 처리하십시오
기존의 Tailscale IP 대신 WireGuard VPN IPs (10.8.x.x)를 사용하기 위해 kubeconfig 업데이트를 수정하십시오
K1m1 및 k2m1에 대한 병렬 배치
- 분할 빌드 및 별도의 작업으로 배포 - 빌드 완료 후 평행한 k1m1 및 k2m1에 배포 - 총 배포 시간을 크게 감소
Switch to docker-container driver with cache for 최적의 빌드 성능
NATS 구독 오류 처리 수정 - 우아한 핸들 'Consumer already bound' 오류, Cleanup 로깅 개선
동시 통화 감지 및 자동 연결 추가 - 동시 시도를 감지하기 위해 세션 당 호출을 추적 - 동시에 호출 할 때 자동 용해 - 첫 번째 통화의 통화를 사용하여 두 번째 통화를 자동 수락 - 응답 / 종료에 대한 호출을 청소 - 다른 사람의 검색 코드를 제거
JANUS API SECRET, JANUS TOKEN SECRET, JANUS SECRET, JANUS ADMIN SECRET 추가 env vars - configmap 이외에 환경 변수를 통해 비밀을 보장합니다
WebSocket의 봄 보안을 완전히 구성 - CSRF를 완전히 비활성화하고 WebSocket Handhake에 대한 세션 생성 IF REQUIRED를 활성화
/ws/** 엔드포인트에 대한 CSRF를 비활성화하고 SockJS /ws/info 405 오류를 수정하기 위해 보안 구성을 단순화
컴파일 오류가 발생하는 잘못된 메소드 호출 제거 (MediaSession, getStatusCode on ServerHttpResponse)
WebSocketConfig 및 ChatWebSocketController에 EXTENSIVE 로깅을 추가하십시오. - 각 프레임, Handhake, STOMP 및 메시지 로그
WebSocket 미들웨어 및 ServersTransport 추가
- WebSocket 업그레이드 헤더에 대한 Media-websocket-upgrade 미들웨어 추가 - HTTP/2 (WebSocket은 HTTP/1.1을 요구합니다)를 비활성화하는 매체 websocket-transport 추가 - Traefik ingress를 통한 적절한 WebSo...
WebSocket live message delivery - disable ChatMessageHandler subscription, enhance logging
- Disabled ChatMessageHandler subscription to chat.session.> that was consuming messages without forwarding to WebSocket - Enhanced WebSocketConfig logging to t...
