logservice: use reverse proxy for service discovery (#4449)
Log Service's ClientConfig and HAKeeper's HAKeeperClientConfig both have an optional DiscoveryAddress field which is the service address of a reverse proxy provided by k8s. The reverse proxy redirects requests to a random Log Service node and we use this mechanism to query Log Shard info from such random node. As such shard info is broadcasted to all Log Service nodes via gossip over time, this allows eventual discovery of the details of the interested Log Service shard. This feature is required as replicas of a Log Shard can migrate to a completely different set of nodes over time, a pre determined & fixed address list alone won't be enough to allow clients to connect to the interested Log Shard. Approved by: @aptend, @fengttt, @nnsgmsone
Showing
- pkg/common/moerr/error.go 2 additions, 1 deletionpkg/common/moerr/error.go
- pkg/logservice/client.go 47 additions, 7 deletionspkg/logservice/client.go
- pkg/logservice/client_test.go 50 additions, 0 deletionspkg/logservice/client_test.go
- pkg/logservice/hakeeper_client.go 44 additions, 2 deletionspkg/logservice/hakeeper_client.go
- pkg/logservice/hakeeper_client_test.go 56 additions, 0 deletionspkg/logservice/hakeeper_client_test.go
- pkg/logservice/service.go 13 additions, 0 deletionspkg/logservice/service.go
- pkg/logservice/service_test.go 7 additions, 7 deletionspkg/logservice/service_test.go
- pkg/logservice/shardinfo.go 84 additions, 15 deletionspkg/logservice/shardinfo.go
- pkg/logservice/shardinfo_test.go 53 additions, 0 deletionspkg/logservice/shardinfo_test.go
- pkg/pb/logservice/logservice.pb.go 917 additions, 189 deletionspkg/pb/logservice/logservice.pb.go
- pkg/pb/plan/plan.pb.go 13 additions, 6 deletionspkg/pb/plan/plan.pb.go
- proto/logservice.proto 26 additions, 9 deletionsproto/logservice.proto
Please register or sign in to comment