Consul is a distributed, highly available, and data center aware solution to connect and configure applications across dynamic, distributed infrastructure.
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

44 lines
1.4 KiB

// Copyright (c) HashiCorp, Inc.
// SPDX-License-Identifier: MPL-2.0
// Package serverdiscovery provides a service on Consul servers to discover the set of servers
// currently able to handle incoming requests.
syntax = "proto3";
package hashicorp.consul.serverdiscovery;
import "annotations/ratelimit/ratelimit.proto";
service ServerDiscoveryService {
// WatchServers will stream back sets of ready servers as they change such as
// when new servers are added or older ones removed. A ready server is one that
// should be considered ready for sending general RPC requests towards that would
// catalog queries, xDS proxy configurations and similar services.
rpc WatchServers(WatchServersRequest) returns (stream WatchServersResponse) {
option (hashicorp.consul.internal.ratelimit.spec) = {
operation_type: OPERATION_TYPE_READ,
operation_category: OPERATION_CATEGORY_SERVER_DISCOVERY
};
}
}
message WatchServersRequest {
// Wan being set to true will cause WAN addresses to be sent in the response
// instead of the LAN addresses which are the default
bool wan = 1;
}
message WatchServersResponse {
// Servers is the list of server address information.
repeated Server servers = 1;
}
message Server {
// id is the unique string identifying this server for all time.
string id = 1;
// address on the network of the server
string address = 2;
// the consul version of the server
string version = 3;
}