@@ -610,6 +610,25 @@ Endpoint --> EndpointState
610
610
style Endpoint fill:#8a1874
611
611
```
612
612
613
+ The relevant routing plugins need to implement these abstract request objects. Using Dubbo3 as an example:
614
+
615
+ ``` mermaid
616
+ classDiagram
617
+ direction BT
618
+ class AbstractEndpoint
619
+ class DubboEndpoint~T~ {
620
+ # computeWeight(ServiceRequest) int
621
+ + getTimestamp() Long
622
+ + getLabel(String) String
623
+ + getInvoker() Invoker~T~
624
+ + getPort() int
625
+ + getHost() String
626
+ + getState() EndpointState
627
+ + of(Invoker~?~) DubboEndpoint~?~$
628
+ }
629
+
630
+ DubboEndpoint~T~ --> AbstractEndpoint
631
+ ```
613
632
### 2.3 Processing Chain
614
633
615
634
``` mermaid
@@ -914,6 +933,43 @@ LiveCluster~R, O, E, T~ --|> StickyRequest
914
933
ClusterInvoker --> LiveCluster
915
934
916
935
```
936
+
937
+ The relevant routing plugins need to implement multi-active cluster objects. Using Dubbo3 as an example:
938
+
939
+ ``` mermaid
940
+ classDiagram
941
+ direction BT
942
+ class DubboCluster3 {
943
+ - getRetries(String) int
944
+ - getError(Throwable, DubboOutboundRequest, DubboEndpoint~?~) String
945
+ + invoke(DubboOutboundRequest, DubboEndpoint~?~) CompletionStage~DubboOutboundResponse~
946
+ + createResponse(Throwable, DubboOutboundRequest, DubboEndpoint~?~) DubboOutboundResponse
947
+ + isRetryable(Response) boolean
948
+ + setStickyId(String) void
949
+ + route(DubboOutboundRequest) CompletionStage~List~DubboEndpoint~?~~~
950
+ + isDestroyed() boolean
951
+ + getStickyId() String
952
+ + getDefaultPolicy(DubboOutboundRequest) ClusterPolicy
953
+ + createRetryExhaustedException(RetryExhaustedException, OutboundInvocation~DubboOutboundRequest~) RpcException
954
+ + createNoProviderException(DubboOutboundRequest) RpcException
955
+ + createException(Throwable, DubboOutboundRequest, DubboEndpoint~?~) RpcException
956
+ + createRejectException(RejectException, DubboOutboundRequest) RpcException
957
+ + createUnReadyException(DubboOutboundRequest) RpcException
958
+ + createUnReadyException(String, DubboOutboundRequest) RpcException
959
+ }
960
+ class LiveCluster~R, O, E, T~ {
961
+ <<Interface>>
962
+
963
+ }
964
+ class StickyRequest {
965
+ <<Interface>>
966
+
967
+ }
968
+
969
+ DubboCluster3 ..|> LiveCluster~R, O, E, T~
970
+ LiveCluster~R, O, E, T~ --|> StickyRequest
971
+ ```
972
+
917
973
### 2.6 Inbound Traffic
918
974
919
975
#### 2.6.1 Interception Points
0 commit comments