Closed zhenjunMa closed 1 year ago
@OrezzerO @EvenLjj 有时间帮忙review下哈🙏
Merging #1249 (08be3c8) into master (d53562a) will decrease coverage by
0.26%
. The diff coverage is49.51%
.
@@ Coverage Diff @@
## master #1249 +/- ##
============================================
- Coverage 72.21% 71.95% -0.27%
+ Complexity 782 780 -2
============================================
Files 412 413 +1
Lines 17467 17555 +88
Branches 2723 2739 +16
============================================
+ Hits 12614 12631 +17
- Misses 3466 3531 +65
- Partials 1387 1393 +6
Impacted Files | Coverage Δ | |
---|---|---|
...sofa/rpc/transport/triple/TripleClientInvoker.java | 61.65% <44.00%> (-26.02%) |
:arrow_down: |
.../sofa/rpc/message/triple/TripleResponseFuture.java | 50.00% <50.00%> (ø) |
|
...fa/rpc/transport/triple/TripleClientTransport.java | 71.66% <72.22%> (+0.79%) |
:arrow_up: |
...java/com/alipay/sofa/rpc/module/LookoutModule.java | 52.38% <0.00%> (-33.34%) |
:arrow_down: |
...ipay/sofa/rpc/server/bolt/BoltServerProcessor.java | 64.86% <0.00%> (-4.73%) |
:arrow_down: |
...n/java/com/alipay/sofa/rpc/common/SofaConfigs.java | 84.90% <0.00%> (-1.89%) |
:arrow_down: |
.../alipay/sofa/rpc/metrics/lookout/RpcLookoutId.java | 87.30% <0.00%> (-1.59%) |
:arrow_down: |
...om/alipay/sofa/rpc/server/triple/TripleServer.java | 74.86% <0.00%> (-1.07%) |
:arrow_down: |
.../com/alipay/sofa/rpc/context/RpcInvokeContext.java | 81.48% <0.00%> (-0.93%) |
:arrow_down: |
...ipay/sofa/rpc/tracer/sofatracer/RpcSofaTracer.java | 90.32% <0.00%> (-0.75%) |
:arrow_down: |
... and 3 more |
Help us with your feedback. Take ten seconds to tell us how you rate us. Have a feature suggestion? Share it here.
背景
目前SOFA-RPC的triple协议不支持callback调用,该RP预期增加该能力
实现思路
整体上希望基于gRPC本身的Observer机制实现,如下:
用户在使用callback方式时,仍旧按照现有的编程界面,设置callbackhandler且仍然按照同步方法发起调用
当用户设置callback时,请求会到TripleClientTransport中的asyncSend方法,这里实现方案仿造syncSend方法,把请求交给TripleInvoker的asyncInvoke方法
在TripleInvoker的asyncInvoke中做了方法切换,比如用户调用的是test(request)方法,这里会转换成调test(request, StreamObserver)方法,然后让StreamObserver的实现是调用用户设置的callbackhandler
其他
请首先评估一下上述实现思路是否合理,如果合适的话再补充测试用例