【问题标题】:How do you add reactive interceptors to Spring Boot annotated controllers?如何将响应式拦截器添加到 Spring Boot 注释控制器?
【发布时间】:2021-10-22 20:15:30
【问题描述】:

我已经在 CLIENT 端使用 rsocket-micrometer 设置 rsocket 指标,方法是使用拦截器配置 RSocketConnector,如下所示 (Kotlin):

    rSocketReqesterBuilder.rsocketConnector { configureConnector(it) }

   // ...

    private fun configureConnector(rSocketConnector: RSocketConnector) {
        rSocketConnector.interceptors { iRegistry ->
            // This gives us the rsocket.* counter metrics, like rsocket.frame
            iRegistry.forResponder(MicrometerRSocketInterceptor(registry, *localTags.toArray()))
            iRegistry.forRequester(MicrometerRSocketInterceptor(registry, *localTags.toArray()))
            iRegistry.forConnection(MicrometerDuplexConnectionInterceptor(registry, *localTags.toArray()))
        }
    }

但在 SERVER 方面,我使用的是带注释的 (@MessageMapping) Spring Boot RSocket 控制器,如下所示 (Java):

    @MessageMapping("replace-channel-controller")
    public Flux<TransformResponse> replace(Flux<String> texts) ...

在这里,我没有明确控制连接器。
如何在服务器端添加拦截器?

【问题讨论】:

    标签: spring-boot spring-messaging rsocket spring-rsocket


    【解决方案1】:
    @Configuration
    public class RSocketConfig implements RSocketServerCustomizer {
    
        private final MeterRegistry registry;
    
        public RSocketConfig(MeterRegistry registry) {
            this.registry = registry;
        }
    
        @Override
        public void customize(RSocketServer rSocketServer) {
            rSocketServer.interceptors(
                    iRegistry -> {
                        log.info("Adding RSocket interceptors...");
                        iRegistry.forResponder(new MicrometerRSocketInterceptor(registry, tags));
                        iRegistry.forRequester(new MicrometerRSocketInterceptor(registry, tags));
                        iRegistry.forConnection(new MicrometerDuplexConnectionInterceptor(registry, tags));
                    }
            );
        }
    }
    

    【讨论】:

      猜你喜欢
      • 2018-06-24
      • 2020-01-21
      • 2018-08-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-08-22
      • 2011-08-04
      相关资源
      最近更新 更多