环境:
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, ServerHttpResponse serverHttpResponse) {
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);
ServerResponseEntity<Object> responseEntity = userService.loginService(userInfo);
serverHttpResponse.addCookie(ResponseCookie.from("COOKIE_ID", String.valueOf(responseEntity.getData())).build());
return responseEntity;
}
这是我的 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
1
v2e0xAdmin2 2023-03-05 13:53:41 +08:00
是不是服务端有 2 个节点? 2 个节点的代码不一样导致的?
|
2
shayang888 OP @v2e0xAdmin2 应该不是这个,nacos 里就 3 个,一个映射的 UserService ,一个 provider ,一个 consumer
|