AnyCable 1.6.0 주요 개선 사항
1. anycable-go
컴포넌트의 확장성 강화
- 구독 및 브로드캐스트 어댑터 API 도입: 외부 저장소(예: Redis, PostgreSQL)를 활용하여 구독 및 브로드캐스트 정보를 관리할 수 있는 새로운 API가 추가되었습니다. 이는 AnyCable의 확장성을 크게 향상시켜, 복잡한 분산 환경에서도 유연한 아키텍처를 구축할 수 있도록 지원합니다.
--subscription_adapter_factory
--broadcast_adapter_factory
-
향상된 로깅: 구조화된 JSON 로깅과 구성 가능한 로그 레벨 (
--log_level
)을 통해 모니터링 및 디버깅이 더욱 용이해졌습니다. - 새로운 설정 옵션 추가: 운영 환경에서의 유연성을 높이기 위한 다양한 설정이 도입되었습니다.
--health_check_path
: 헬스 체크 경로를 지정할 수 있습니다.--ws_ping_interval
: WebSocket 핑 간격을 설정하여 연결 안정성을 조절합니다.--rpc_timeout
: Ruby 서버와의 RPC 통신 타임아웃을 설정합니다.--http_mount_path
: HTTP 엔드포인트를 특정 경로에 마운트할 수 있습니다.--max_connections
: 최대 동시 연결 수를 제한합니다.--redis_prefix
: Redis 키 접두사를 설정할 수 있습니다.
2. anycable-rails
통합 및 유연성 증대
-
커스터마이징 가능한 연결 팩토리:
AnyCable::Rails.connection_factory
를 통해 연결 초기화 로직을 개발자가 직접 정의할 수 있게 되어, 복잡한 인증 및 권한 부여 시나리오에 더욱 유연하게 대응할 수 있습니다. -
어댑터 설정:
AnyCable::Rails.broadcast_adapter
및AnyCable::Rails.subscription_adapter
설정을 통해 Ruby 애플리케이션 측에서도 커스텀 어댑터를 구성할 수 있습니다. -
기타 설정 동기화:
AnyCable::Rails.logger
,AnyCable::Rails.rpc_timeout
,AnyCable::Rails.health_check_path
등anycable-go
의 주요 설정들이anycable-rails
에서도 구성 가능해져 일관된 환경 관리가 가능합니다.
3. 기타 개선 사항
anycable-client
(JS/TS)에disconnect
메서드가 추가되었습니다.anycable-go
는 이제go-redis/redis
v8을 사용합니다.anycable-rails
는grpc
v1.38 이상을 지원합니다.