sofastack / sofa-rpc

SOFARPC is a high-performance, high-extensibility, production-level Java RPC framework.
https://www.sofastack.tech/sofa-rpc/docs/Home
Apache License 2.0
3.82k stars 1.17k forks source link

Consumer Filter 在 invoker 之后无法立即获取 ResponseBaggage #1207

Closed StringKe closed 2 years ago

StringKe commented 2 years ago

Your question

Consumer Filter 在 invoker 之后无法立即获取 ResponseBaggage

在 filter invoke 之后立即获取返回的 ResponseBaggage 是没有更新的, 但是在整个rpc调度之后去获取 ResponseBaggage 的数据是正确的

复现仓库 https://github.com/StringKe/test-sofa-rpc-filter-provider

Your scenes

2022-05-26 10:44:50.100  INFO 3399 --- [nio-5800-exec-1] com.test.gateway.TestController          : gateway handle after request = {}
2022-05-26 10:44:50.100  INFO 3399 --- [nio-5800-exec-1] com.test.gateway.TestController          : gateway handle after response = {}
2022-05-26 10:44:50.100  INFO 3399 --- [nio-5800-exec-1] com.test.gateway.TestController          : gateway SaToken after request = {}
2022-05-26 10:44:50.100  INFO 3399 --- [nio-5800-exec-1] com.test.gateway.TestController          : gateway SaToken after response = {}
2022-05-26 10:44:50.129  INFO 3399 --- [nio-5800-exec-1] com.test.rpc.model.SaStorageForSofaRpc   : set key:JUST_CREATED_,value:8a0c38dc-18e5-4d87-915a-94deeb9c9f46
2022-05-26 10:44:50.129  INFO 3399 --- [nio-5800-exec-1] com.test.rpc.model.SaStorageForSofaRpc   : set key:JUST_CREATED_NOT_PREFIX_,value:8a0c38dc-18e5-4d87-915a-94deeb9c9f46
addHeader = Set-Cookie,satoken=8a0c38dc-18e5-4d87-915a-94deeb9c9f46; Max-Age=2592000; Expires=Sat, 25 Jun 2022 10:44:50 +0800; Path=/
2022-05-26 10:44:50.131  INFO 3399 --- [nio-5800-exec-1] com.test.gateway.TestController          : gateway SaToken before request = {JUST_CREATED_NOT_PREFIX_=8a0c38dc-18e5-4d87-915a-94deeb9c9f46, JUST_CREATED_=8a0c38dc-18e5-4d87-915a-94deeb9c9f46}
2022-05-26 10:44:50.131  INFO 3399 --- [nio-5800-exec-1] com.test.gateway.TestController          : gateway SaToken before response = {JUST_CREATED_NOT_PREFIX_=8a0c38dc-18e5-4d87-915a-94deeb9c9f46, JUST_CREATED_=8a0c38dc-18e5-4d87-915a-94deeb9c9f46}
2022-05-26 10:44:50.137  INFO 3399 --- [nio-5800-exec-1] c.t.r.f.SaTokenSofaRpcConsumerFilter     : consumer invoke after request = {JUST_CREATED_NOT_PREFIX_=8a0c38dc-18e5-4d87-915a-94deeb9c9f46, JUST_CREATED_=8a0c38dc-18e5-4d87-915a-94deeb9c9f46}
2022-05-26 10:44:50.137  INFO 3399 --- [nio-5800-exec-1] c.t.r.f.SaTokenSofaRpcConsumerFilter     : consumer invoke after response = {JUST_CREATED_NOT_PREFIX_=8a0c38dc-18e5-4d87-915a-94deeb9c9f46, JUST_CREATED_=8a0c38dc-18e5-4d87-915a-94deeb9c9f46}
2022-05-26 10:44:50.232  INFO 3399 --- [nio-5800-exec-1] c.t.r.f.SaTokenSofaRpcConsumerFilter     : consumer invoke before request = {JUST_CREATED_NOT_PREFIX_=8a0c38dc-18e5-4d87-915a-94deeb9c9f46, JUST_CREATED_=8a0c38dc-18e5-4d87-915a-94deeb9c9f46}
2022-05-26 10:44:50.232  INFO 3399 --- [nio-5800-exec-1] c.t.r.f.SaTokenSofaRpcConsumerFilter     : consumer invoke before response = {JUST_CREATED_NOT_PREFIX_=8a0c38dc-18e5-4d87-915a-94deeb9c9f46, JUST_CREATED_=8a0c38dc-18e5-4d87-915a-94deeb9c9f46}
2022-05-26 10:44:50.235  INFO 3399 --- [nio-5800-exec-1] com.test.gateway.TestController          : gateway handle after request = {JUST_CREATED_NOT_PREFIX_=8a0c38dc-18e5-4d87-915a-94deeb9c9f46, JUST_CREATED_=8a0c38dc-18e5-4d87-915a-94deeb9c9f46}
2022-05-26 10:44:50.235  INFO 3399 --- [nio-5800-exec-1] com.test.gateway.TestController          : gateway handle after response = {JUST_CREATED_NOT_PREFIX_=36b4a785-4fdc-49f2-bbac-e0ba12d41995, JUST_CREATED_=36b4a785-4fdc-49f2-bbac-e0ba12d41995}

Your advice

希望在这里 https://github.com/StringKe/test-sofa-rpc-filter-provider/blob/main/test-filter/src/main/java/com/test/rpc/filter/SaTokenSofaRpcConsumerFilter.java#L37 可以获取到

Environment

EvenLjj commented 2 years ago

@StringKe You can refer to providerbaggagefilter to write.