Spring Boot: RSocket
RSocket - это двоичный протокол для использования в транспортных потоках байтов. Это позволяет симметричные модели взаимодействия через асинхронную передачу сообщений по одному соединению.
Модуль spring-messaging Spring Framework поддерживает запросы и ответчики RSocket как на стороне клиента, так и на стороне сервера.
Автоконфигурация RSocket Strategies
Spring Boot автоматически конфигурирует bean-компонент RSocketStrategies, который предоставляет всю необходимую инфраструктуру для кодирования и декодирования полезных нагрузок RSocket. По умолчанию автоконфигурация будет пытаться настроить следующее (по порядку):
- CBOR кодеки с Jackson
- JSON кодеки с Jackson
Стартер spring-boot-starter-rsocket обеспечивает обе зависимости.
Разработчики могут настроить компонент RSocketStrategies, создав beans, которые реализуют интерфейс RSocketStrategiesCustomizer. Обратите внимание, что их @Order важен, так как он определяет порядок кодеков.
Автоконфигурация сервера RSocket
Spring Boot обеспечивает автоматическую настройку RSocket-сервера. Необходимые зависимости обеспечиваются spring-boot-starter-rsocket.
Spring Boot позволяет выставить RSocket поверх WebSocket с сервера WebFlux или установить независимый сервер RSocket. Это зависит от типа приложения и его конфигурации.
Для приложения WebFlux (то есть типа WebApplicationType.REACTIVE) сервер RSocket будет подключен к веб-серверу, только если соответствуют следующие свойства:
spring.rsocket.server.mapping-path=/rsocket # определен путь отображения
spring.rsocket.server.transport=websocket # websocket выбран в качестве транспорта
#spring.rsocket.server.port= # порт не определен
Подключение RSocket к веб-серверу поддерживается только в Reactor Netty, так как сам RSocket построен с этой библиотекой.
В качестве альтернативы, сервер RSocket TCP или websocket запускается как независимый встроенный сервер. Помимо требований к зависимостям, единственной необходимой конфигурацией является определение порта для этого сервера:
spring.rsocket.server.port=9898 # единственная необходимая конфигурация
spring.rsocket.server.transport=tcp # вы можете настраивать другие свойства
Читайте также:
- Spring Boot: веб-приложения с Spring WebFlux Framework
- Spring Boot: поддержка встроенного реактивного сервера
- Spring Boot стартеры
Комментарии
Отправить комментарий