GossNet.Discovery.Consul
0.5.0
See the version list below for details.
dotnet add package GossNet.Discovery.Consul --version 0.5.0
NuGet\Install-Package GossNet.Discovery.Consul -Version 0.5.0
<PackageReference Include="GossNet.Discovery.Consul" Version="0.5.0" />
<PackageVersion Include="GossNet.Discovery.Consul" Version="0.5.0" />
<PackageReference Include="GossNet.Discovery.Consul" />
paket add GossNet.Discovery.Consul --version 0.5.0
#r "nuget: GossNet.Discovery.Consul, 0.5.0"
#:package GossNet.Discovery.Consul@0.5.0
#addin nuget:?package=GossNet.Discovery.Consul&version=0.5.0
#tool nuget:?package=GossNet.Discovery.Consul&version=0.5.0
GossNet.Discovery.Consul
Consul-based node discovery for GossNet.Protocol.
Ships separately so the core package stays free of the Consul client dependency.
Installation
dotnet add package GossNet.Discovery.Consul
Usage
Register each gossip node with Consul under a shared service name, then point discovery at it:
using GossNet.Discovery.Consul;
using GossNet.Protocol;
var consulOptions = new ConsulDiscoveryOptions
{
ServiceName = "gossnet",
Address = new Uri("http://consul.internal:8500"),
PassingOnly = true
};
var configuration = new GossNetConfiguration
{
Hostname = "10.0.0.1",
Port = 9055,
DiscoveryProviderFactory = cfg => new ConsulNodeDiscovery(cfg, consulOptions)
};
using var node = new GossNetNode<MyMessage>(configuration);
node.Start();
DiscoveryProviderFactory is used rather than DiscoveryProvider because the provider
needs the node's own hostname and port to exclude itself from its own results — a node
registered in Consul always appears in its own service query.
Options
| Option | Default | Description |
|---|---|---|
ServiceName |
required | Consul service name the nodes register under |
Address |
http://localhost:8500 |
Consul agent address |
Token |
none | ACL token |
Datacenter |
agent's own | Datacenter to query |
Tag |
none | Only return instances carrying this tag |
PassingOnly |
true |
Only return instances whose health checks pass |
CacheDuration |
30 seconds | How long a resolved neighbour list is reused |
Discovery runs on the message path, so results are cached. If Consul cannot be reached,
a NodeDiscoveryException is thrown rather than returning an empty neighbour list —
an unreachable agent must never be mistaken for a network of one.
License
MIT. See LICENSE.
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net5.0 was computed. net5.0-windows was computed. net6.0 was computed. net6.0-android was computed. net6.0-ios was computed. net6.0-maccatalyst was computed. net6.0-macos was computed. net6.0-tvos was computed. net6.0-windows was computed. net7.0 was computed. net7.0-android was computed. net7.0-ios was computed. net7.0-maccatalyst was computed. net7.0-macos was computed. net7.0-tvos was computed. net7.0-windows was computed. net8.0 is compatible. net8.0-android was computed. net8.0-browser was computed. net8.0-ios was computed. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. net9.0 was computed. net9.0-android was computed. net9.0-browser was computed. net9.0-ios was computed. net9.0-maccatalyst was computed. net9.0-macos was computed. net9.0-tvos was computed. net9.0-windows was computed. net10.0 is compatible. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. |
| .NET Core | netcoreapp2.0 was computed. netcoreapp2.1 was computed. netcoreapp2.2 was computed. netcoreapp3.0 was computed. netcoreapp3.1 was computed. |
| .NET Standard | netstandard2.0 is compatible. netstandard2.1 was computed. |
| .NET Framework | net461 was computed. net462 was computed. net463 was computed. net47 was computed. net471 was computed. net472 was computed. net48 was computed. net481 was computed. |
| MonoAndroid | monoandroid was computed. |
| MonoMac | monomac was computed. |
| MonoTouch | monotouch was computed. |
| Tizen | tizen40 was computed. tizen60 was computed. |
| Xamarin.iOS | xamarinios was computed. |
| Xamarin.Mac | xamarinmac was computed. |
| Xamarin.TVOS | xamarintvos was computed. |
| Xamarin.WatchOS | xamarinwatchos was computed. |
-
.NETStandard 2.0
- Consul (>= 1.8.0)
- GossNet.Protocol (>= 0.5.0)
-
net10.0
- Consul (>= 1.8.0)
- GossNet.Protocol (>= 0.5.0)
-
net8.0
- Consul (>= 1.8.0)
- GossNet.Protocol (>= 0.5.0)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.