3
环境:
jdk:19
dubbo:3.2.0.beta-5
springboot: 3.0.4
这是我的dubbo过滤器
@Activate(group = CommonConstants.CONSUMER, value = "cookieValidationFilter")
public class CookieValidationFilter implements Filter {
@Override
public Result invoke(Invoker<?> invoker, Invocation invocation) throws RpcException {
RpcContext context = RpcContext.getServerContext();
return invoker.invoke(invocation);
}
}
这是我的controller:
@DubboReference
UserService userService;
@PostMapping(value = "/sign_in", consumes = MediaType.APPLICATION_FORM_URLENCODED_VALUE)
public ServerResponseEntity<Object> loginController(ServerHttpRequest serverHttpRequest) {
RpcContext context = RpcContext.getServerContext();
System.out.println("rest接口");
System.out.println(context.getProtocol());
System.out.println(context.getRemoteAddressString());
System.out.println("-----------------------------------------");
String userInfo = serverHttpRequest.getHeaders().getFirst(USERINFO);
return userService.loginService(userInfo);
}
这是我的service:
@Override
public ServerResponseEntity<Object> loginService(String userInfo) {
try {
responseEntity = new ServerResponseEntity<>(0, "login success!", Decryptor.decrypt(userInfo));
} catch (Exception e) {
logger.info(e.toString());
}
return responseEntity;
}
这是我的consumer配置文件:
server.port=8081
spring.application.name=consumer
spring.cloud.nacos.discovery.server-addr=192.168.220.128:8848
dubbo.application.name=consumer
dubbo.registry.address=nacos://192.168.220.128:8848
dubbo.protocol.port=-1
dubbo.consumer.protocol=tri
dubbo.consumer.filter=appended
dubbo.application.qos-port=22223
这是打印结果:
这是客户端连续两次调用/sign_in的打印结果
rest接口
null
null:0
-----------------------------------------
rest接口
tri
null:0
-----------------------------------------
问:为什么前后两次协议打印结果不一样,第一次null,第二次是tri