Configuration-based discovery client
The simplest way to use service discovery is by storing the list of app instances in .NET configuration.
Configuration settings
An app instance in configuration contains the following keys:
| Key | Description |
|---|---|
ServiceId |
The app friendly name |
Host |
The hostname or IP address of the service instance |
Port |
The port number the service instance is listening on |
IsSecure |
Whether to use HTTP or HTTPS to access the service instance |
For example, the appsettings.json file shown here adds one instance of billingService and two instances of shippingService.
{
"Discovery": {
"Services": [
{
"ServiceId": "billingService",
"Host": "192.168.0.1",
"Port": "5000",
"IsSecure": false
},
{
"ServiceId": "shippingService",
"Host": "one.internal.shipping.company.com",
"Port": "888",
"IsSecure": true
},
{
"ServiceId": "shippingService",
"Host": "two.internal.shipping.company.com",
"Port": "999",
"IsSecure": true
}
]
}
}
Using the preceding configuration, sending an HTTP request to http://shippingService/api?id=123 with Steeltoe service discovery
activated sends the request to either:
https://one.internal.shipping.company.com:888/api?id=123https://two.internal.shipping.company.com:999/api?id=123
The chosen instance depends on the load balancer strategy, which defaults to random.