Akka.Discovery.Azure
1.0.0
Prefix Reserved
See the version list below for details.
dotnet add package Akka.Discovery.Azure --version 1.0.0
NuGet\Install-Package Akka.Discovery.Azure -Version 1.0.0
<PackageReference Include="Akka.Discovery.Azure" Version="1.0.0" />
paket add Akka.Discovery.Azure --version 1.0.0
#r "nuget: Akka.Discovery.Azure, 1.0.0"
// Install Akka.Discovery.Azure as a Cake Addin #addin nuget:?package=Akka.Discovery.Azure&version=1.0.0 // Install Akka.Discovery.Azure as a Cake Tool #tool nuget:?package=Akka.Discovery.Azure&version=1.0.0
Azure Table Storage Based Discovery
This module can be used as a discovery method for any cluster that has access to an Azure Table Storage service.
Configuring Using Akka.Hosting
You can programmatically configure Akka.Discovery.Azure
using Akka.Hosting
.
using var host = new HostBuilder()
.ConfigureServices((hostContext, services) =>
{
services.AddAkka("actorSystem", (builder, provider) =>
{
builder.WithAzureDiscovery("your-azure-conection-string");
});
})
.Build();
await host.RunAsync();
Configuring Using HOCON
You will need to include these HOCON settings in your HOCON configuration:
akka.discovery {
method = azure
azure {
# The service name assigned to the cluster.
service-name = "default"
# The connection string used to connect to Azure Table hosting the cluster membership table
# MANDATORY FIELD: MUST be provided, else the discovery plugin WILL throw an exception.
connection-string = "<connection-string>"
}
}
Notes
- The
akka.discovery.azure.connection-string
setting is mandatory - For
Akka.Discovery.Azure
to work with multiple clusters, each cluster will have to have differentakka.discovery.azure.service-name
settings.
Configuring Using ActorSystemSetup
You can programmatically configure Akka.Discovery.Azure
using the AzureDiscoverySetup
class.
var config = ConfigurationFactory.ParseString(File.ReadAllText("app.conf"));
var bootstrap = BootstrapSetup.Create()
.WithConfig(config) // load HOCON
.WithActorRefProvider(ProviderSelection.Cluster.Instance); // launch Akka.Cluster
var azureSetup = new AzureDiscoverySetup()
.WithConnectionString(connectionString);
var actorSystemSetup = bootstrap.And(azureSetup);
var system = ActorSystem.Create("my-system", actorSystemSetup);
Using Discovery Together with Akka.Management and Cluster.Bootstrap
All discovery plugins are designed to work with Cluster.Bootstrap to provide an automated way to form a cluster that is not based on hard wired seeds configuration.
Configuring using Akka.Hosting
With Akka.Hosting, you can wire them together like this:
using var host = new HostBuilder()
.ConfigureServices((hostContext, services) =>
{
services.AddAkka("actorSystem", (builder, provider) =>
{
builder
// Add Akka.Remote support
.WithRemoting(hostname: "", port: 4053)
// Add Akka.Cluster support
.WithClustering()
// Add Akka.Management.Cluster.Bootstrap support
.WithClusterBootstrap()
// Add Akka.Discovery.Azure support
.WithAzureDiscovery("your-azure-conection-string");
});
})
.Build();
await host.RunAsync();
Configuring using HOCON configuration
Some HOCON configuration is needed to make discovery work with Cluster.Bootstrap:
akka.discovery.method = azure
akka.discovery.azure.connection-string = "UseDevelopmentStorage=true"
akka.management.http.routes = {
cluster-bootstrap = "Akka.Management.Cluster.Bootstrap.ClusterBootstrapProvider, Akka.Management.Cluster.Bootstrap"
}
You then start the cluster bootstrapping process by calling:
await AkkaManagement.Get(system).Start();
await ClusterBootstrap.Get(system).Start();
A more complete example:
var config = ConfigurationFactory
.ParseString(File.ReadAllText("app.conf""))
.WithFallback(ClusterBootstrap.DefaultConfiguration())
.WithFallback(AkkaManagementProvider.DefaultConfiguration());
var bootstrap = BootstrapSetup.Create()
.WithConfig(config) // load HOCON
.WithActorRefProvider(ProviderSelection.Cluster.Instance); // launch Akka.Cluster
var azureSetup = new AzureDiscoverySetup()
.WithConnectionString(connectionString);
var actorSystemSetup = bootstrap.And(azureSetup);
var system = ActorSystem.Create("my-system", actorSystemSetup);
var log = Logging.GetLogger(system, this);
await AkkaManagement.Get(system).Start();
await ClusterBootstrap.Get(system).Start();
var cluster = Cluster.Get(system);
cluster.RegisterOnMemberUp(() => {
var upMembers = cluster.State.Members
.Where(m => m.Status == MemberStatus.Up)
.Select(m => m.Address.ToString());
log.Info($"Current up members: [{string.Join(", ", upMembers)}]")
});
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 was computed. 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. |
.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
- Akka.Cluster (>= 1.4.48)
- Akka.Discovery (>= 1.4.48)
- Akka.Hosting (>= 1.0.1)
- Azure.Data.Tables (>= 12.7.1)
- Azure.Identity (>= 1.8.1)
- Google.Protobuf (>= 3.21.12)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.
Version | Downloads | Last updated |
---|---|---|
1.5.31 | 551 | 11/11/2024 |
1.5.30 | 3,763 | 10/3/2024 |
1.5.29 | 112 | 10/1/2024 |
1.5.27 | 3,948 | 7/30/2024 |
1.5.26.1 | 2,182 | 7/16/2024 |
1.5.26 | 128 | 7/15/2024 |
1.5.26-beta3 | 880 | 7/2/2024 |
1.5.26-beta2 | 287 | 6/28/2024 |
1.5.26-beta1 | 103 | 6/27/2024 |
1.5.25.1 | 1,157 | 6/25/2024 |
1.5.25 | 577 | 6/17/2024 |
1.5.24 | 410 | 6/11/2024 |
1.5.19 | 3,040 | 4/17/2024 |
1.5.18-beta2 | 100 | 3/27/2024 |
1.5.18-beta1 | 112 | 3/20/2024 |
1.5.17.1 | 3,157 | 3/4/2024 |
1.5.15 | 4,870 | 1/12/2024 |
1.5.7 | 13,064 | 5/23/2023 |
1.5.5 | 400 | 5/8/2023 |
1.5.0 | 2,859 | 3/2/2023 |
1.5.0-beta6 | 142 | 3/1/2023 |
1.5.0-alpha4 | 138 | 2/17/2023 |
1.0.3 | 406 | 2/13/2023 |
1.0.2 | 265 | 2/8/2023 |
1.0.1 | 349 | 1/31/2023 |
1.0.0 | 409 | 1/18/2023 |
1.0.0-beta2 | 200 | 1/7/2023 |
1.0.0-beta1 | 127 | 1/6/2023 |
0.3.0-beta4 | 818 | 12/2/2022 |
0.3.0-beta3 | 319 | 11/7/2022 |
0.3.0-beta2 | 751 | 10/20/2022 |
0.3.0-beta1 | 186 | 10/6/2022 |
0.2.5-beta4 | 850 | 8/31/2022 |
0.2.5-beta3 | 379 | 8/16/2022 |
0.2.5-beta2 | 177 | 8/8/2022 |
0.2.5-beta1 | 176 | 8/1/2022 |
This version 1.0.0 release is the RTM release for `Akka.Management`; all public API will be frozen from this point forward and backed by our backward compatibility promise.
[[Management] Change Hosting extension method argument from Setup to Options](https://github.com/akkadotnet/Akka.Management/pull/1211)
[[Discovery.AWS] Change Hosting extension method argument from Setup to Options](https://github.com/akkadotnet/Akka.Management/pull/1211)
[[Discovery.Azure] Change Hosting extension method argument from Setup to Options](https://github.com/akkadotnet/Akka.Management/pull/1205)
[[Discovery.Kubernetes] Change Hosting extension method argument from Setup to Options](https://github.com/akkadotnet/Akka.Management/pull/1200)
[Clean up Setup class internals](https://github.com/akkadotnet/Akka.Management/pull/1226)
Update dependency NuGet package versions
[Bump Akka.Hosting from 1.0.0 to 1.0.1](https://github.com/akkadotnet/Akka.Management/pull/1199)
[Bump AWSSDK.CloudFormation from 3.7.102.11 to 3.7.102.36](https://github.com/akkadotnet/Akka.Management/pull/1223)
[Bump AWSSDK.ECS from 3.7.102.11 to 3.7.104.15](https://github.com/akkadotnet/Akka.Management/pull/1222)
[Bump AWSSDK.EC2 from to 3.7.113 to 3.7.115.1](https://github.com/akkadotnet/Akka.Management/pull/1224)
[Bump Azure.Identity from 1.8.0 to 1.8.1](https://github.com/akkadotnet/Akka.Management/pull/1217)
All Akka.Hosting extension methods now takes a POCO Options class instead of a Setup class; they can now be bound directly using `Microsoft.Extensions.Configuration` `IConfiguration.Get<T>()` and `IConfiguration.Bind()` methods.
You can still use Setup classes by using the `Akka.Hosting` `.AddSetup()` extension method.