Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion docs/docs/v3/messaging/rabbitmq-reference.md
Original file line number Diff line number Diff line change
Expand Up @@ -3280,7 +3280,7 @@ To use this classifier for retry, you can use a `PollyRetryPolicy` created with

## Further Reading

For those who are not familiar with AMQP, the [specification](https://www.amqp.org/resources/download) is actually quite readable.
For those who are not familiar with AMQP, the [AMQP 0-9-1 specification (PDF)](https://www.rabbitmq.com/resources/specs/amqp0-9-1.pdf) is actually quite readable.
It is, of course, the authoritative source of information, and the Spring AMQP code should be easy to understand for anyone who is familiar with the spec.
Our current implementation of the RabbitMQ support is based on their 2.8.x version, and it officially supports AMQP 0.8 and 0.9.1.
We recommend reading the 0.9.1 document.
Expand Down
22 changes: 12 additions & 10 deletions docs/docs/v4/discovery/hashicorp-consul.md
Original file line number Diff line number Diff line change
Expand Up @@ -61,28 +61,30 @@ All of these settings must start with `Consul:Discovery:`.
| `UseNetworkInterfaces` | Query the operating system for network interfaces to determine `HostName` and `IPAddress` | `false` |
| `PreferIPAddress` | Register the running app with IP address instead of hostname | `false` |
| `Port` | Port number with which to register the running app | |
| `UseAspNetCoreUrls` | Register with the port number ASP.NET Core is listening on | `true` |
| `UseAspNetCoreUrls` | Register with the port number and scheme ASP.NET Core is listening on [^ASPNETUrls] | `true` |
| `InstanceId` | The unique ID under which to register the running app | computed |
| `Tags` | Array of tags used when registering the running app | |
| `Meta` | Metadata key/value pairs used when registering the running app | see [Configuring metadata](#configuring-metadata) |
| `InstanceGroup` | Metadata `group` value to use when registering the running app | |
| `InstanceZone` | Metadata zone value to use when registering the running app | |
| `DefaultZoneMetadataName` | Metadata key name for `InstanceZone` | `zone` |
| `RegisterHealthCheck` | Whether to enable periodic health checking for the running app | `true` |
| `HealthCheckCriticalTimeout` | Duration after which Consul deregisters the running app when in state `critical` [^1] | `30m` |
| `Heartbeat:Enabled` | Whether the running app periodically sends TTL (time-to-live) heartbeats [^1] | `true` |
| `HealthCheckCriticalTimeout` | Duration after which Consul deregisters the running app when in state `critical` [^RegisterHealthCheckTrue] | `30m` |
| `Heartbeat:Enabled` | Whether the running app periodically sends TTL (time-to-live) heartbeats [^RegisterHealthCheckTrue] | `true` |
| `Heartbeat:TtlValue` | How often a TTL heartbeat must be sent to be considered healthy | `30` |
| `Heartbeat:TtlUnit` | Unit for `TtlValue` (`ms`, `s`, `m` or `h`) | `s` |
| `Heartbeat:IntervalRatio` | Rate at which the running app sends TTL heartbeats, relative to `TtlValue` with `TtlUnit` | `0.66` |
| `HealthCheckPath` | Relative URL to the health endpoint of the running app [^2] | `/actuator/health` |
| `HealthCheckUrl` | Absolute URL to the health endpoint of the running app (overrides `HealthCheckPath`) [^2] | |
| `HealthCheckTlsSkipVerify` | Whether Consul should skip TLS verification for HTTP health checks [^2] | `false` |
| `HealthCheckInterval` | How often Consul should perform HTTP health checks [^2] | `10s` |
| `HealthCheckTimeout` | The timeout Consul should use for HTTP health checks [^2] | `10s` |
| `HealthCheckPath` | Relative URL to the health endpoint of the running app [^HealthCheckSettings] | `/actuator/health` |
| `HealthCheckUrl` | Absolute URL to the health endpoint of the running app (overrides `HealthCheckPath`) [^HealthCheckSettings] | |
| `HealthCheckTlsSkipVerify` | Whether Consul should skip TLS verification for HTTP health checks [^HealthCheckSettings] | `false` |
| `HealthCheckInterval` | How often Consul should perform HTTP health checks [^HealthCheckSettings] | `10s` |
| `HealthCheckTimeout` | The timeout Consul should use for HTTP health checks [^HealthCheckSettings] | `10s` |

[^1]: This setting only affects operation when `RegisterHealthCheck` is `true`
[^ASPNETUrls]: When `UseAspNetCoreUrls` is `true` (the default), Steeltoe sets `Port` and `Scheme` to match the address ASP.NET Core is listening on (the host portion is not used), preferring HTTPS. However, if there are configured values for `Port` or `Scheme` or if `UseNetworkInterfaces` is `true`, ASP.NET Core addresses are not used. See [8 ways to set the URLs for an ASP.NET Core app](https://andrewlock.net/8-ways-to-set-the-urls-for-an-aspnetcore-app/) for how to influence ASP.NET Core listen addresses.

[^2]: This setting only affects operation when `RegisterHealthCheck` is `true` and `Heartbeat:Enabled` is `false`
[^RegisterHealthCheckTrue]: This setting only affects operation when `RegisterHealthCheck` is `true`

[^HealthCheckSettings]: This setting only affects operation when `RegisterHealthCheck` is `true` and `Heartbeat:Enabled` is `false`

This section pertains to querying for app instances.
All of these settings must start with `Consul:Discovery:`.
Expand Down
25 changes: 12 additions & 13 deletions docs/docs/v4/discovery/netflix-eureka.md
Original file line number Diff line number Diff line change
Expand Up @@ -78,37 +78,36 @@ All of these settings must start with `Eureka:Instance:`.
| `IPAddress` | IP address on which the instance is registered | computed |
| `UseNetworkInterfaces` | Query the operating system for network interfaces to determine `HostName` and `IPAddress` | `false` |
| `PreferIPAddress` | Whether to register with `IPAddress` instead of `HostName` | `false` |
| `UseAspNetCoreUrls` | Register with the port number and scheme ASP.NET Core is listening on [^ASPNETUrls] | `true` |
| `VipAddress` | Comma-separated list of VIP addresses for the instance | computed |
| `SecureVipAddress` | Comma-separated list of secure VIP addresses for the instance | computed |
| `Port` | Non-secure port number on which the instance should receive traffic | computed |
| `NonSecurePortEnabled` | Whether the non-secure port should be enabled [^1] | computed |
| `NonSecurePortEnabled` | Whether the non-secure port should be enabled [^PreferSecure] | computed |
| `SecurePort` | Secure port on which the instance should receive traffic | computed |
| `SecurePortEnabled` | Whether the secure port should be enabled [^1] | computed |
| `RegistrationMethod` | How to register on Cloud Foundry; can be `route`, `direct`, or `hostname` [^2] | |
| `InstanceEnabledOnInit` | Whether the instance should take traffic as soon as it is registered [^3] | `true` |
| `SecurePortEnabled` | Whether the secure port should be enabled [^PreferSecure] | computed |
| `RegistrationMethod` | How to register on Cloud Foundry; can be `route`, `direct`, or `hostname` [^RegistrationMethod] | |
| `InstanceEnabledOnInit` | Whether the instance should take traffic as soon as it is registered [^EnabledOnInit] | `true` |
| `LeaseRenewalIntervalInSeconds` | How often (in seconds) the client sends heartbeats to Eureka to indicate that it is still alive | `30` |
| `LeaseExpirationDurationInSeconds` | Time (in seconds) that the Eureka server waits after receiving the last heartbeat before it marks the instance as down | `90` |
| `StatusPageUrlPath` | Relative path to the status page for the instance [^4] | `/info` |
| `StatusPageUrlPath` | Relative path to the status page for the instance [^ManagementRef] | `/info` |
| `StatusPageUrl` | Absolute URL to the status page for the instance (overrides `StatusPageUrlPath`) | computed |
| `HomePageUrlPath` | Relative path to the home page URL for the instance | `/` |
| `HomePageUrl` | Absolute URL to the home page for the instance (overrides `HomePageUrlPath`) | computed |
| `HealthCheckUrlPath` | Relative path to the health check endpoint of the instance [^4] | `/health` |
| `HealthCheckUrlPath` | Relative path to the health check endpoint of the instance [^ManagementRef] | `/health` |
| `HealthCheckUrl` | Absolute URL for health checks of the instance (overrides `HealthCheckUrlPath`) | computed |
| `SecureHealthCheckUrl` | Secure absolute URL for health checks of the instance (overrides `HealthCheckUrlPath`) | computed |
| `AsgName` | AWS auto-scaling group name associated with the instance | |
| `DataCenterInfo` | Data center the instance is deployed to (`Netflix`, `Amazon`, or `MyOwn`) | `MyOwn` |

[^1]: When both non-secure and secure ports are enabled, the secure port is preferred during service discovery.
[^PreferSecure]: When both non-secure and secure ports are enabled, the secure port is preferred during service discovery.

[^2]: Specify `direct` to use container-to-container networking on Cloud Foundry. Specify `hostname` to force using `HostName`.
[^RegistrationMethod]: Specify `direct` to use container-to-container networking on Cloud Foundry. Specify `hostname` to force using `HostName`.

[^3]: When set to `false`, call `EurekaApplicationInfoManager.UpdateInstance()` after initialization to mark the instance as `UP`.
[^EnabledOnInit]: When set to `false`, call `EurekaApplicationInfoManager.UpdateInstance()` after initialization to mark the instance as `UP`.

[^4]: Add a NuGet package reference to `Steeltoe.Management.Endpoint` to use its `health` and `info` actuator paths.
[^ManagementRef]: Add a NuGet package reference to `Steeltoe.Management.Endpoint` to use its `health` and `info` actuator paths.

The values for `Port` and `SecurePort`, and whether they are enabled, are automatically determined from the ASP.NET address bindings. [^1]
See [8 ways to set the URLs for an ASP.NET Core app](https://andrewlock.net/8-ways-to-set-the-urls-for-an-aspnetcore-app/)
for how to influence them using environment variables.
[^ASPNETUrls]: When `UseAspNetCoreUrls` is `true` (the default), Steeltoe sets `Port`, `SecurePort`, `NonSecurePortEnabled`, and `SecurePortEnabled` using the addresses ASP.NET Core is listening on (the host portion is not used). However, if `Port` or `SecurePort` is configured (and the matching `*PortEnabled` flag is set to `true`), ASP.NET Core addresses are not used. See [8 ways to set the URLs for an ASP.NET Core app](https://andrewlock.net/8-ways-to-set-the-urls-for-an-aspnetcore-app/) for how to influence ASP.NET Core listen addresses. On Cloud Foundry, the default registration method (`route`) uses ports 80 and 443.

It is also possible to use dynamic port bindings (by setting the port number to `0` in ASP.NET).
In that case, Steeltoe adds a random number (outside the valid port range) to the `InstanceId` to make it unique.
Expand Down
Loading