你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
用于 .NET 的 Azure Service Fabric 库
概述
Azure Service Fabric 是一种分布式系统平台,可借助它轻松打包、部署和管理可缩放且可靠的微服务和容器。 有关详细信息,请参阅 Azure Service Fabric CLI 文档。
客户端库
使用 Service Fabric 客户端库可与现有 Service Fabric 群集交互。 该库包含三个类别的 API:
- 客户端 API 用于管理、缩放和回收群集以及部署应用程序包。
- 运行时 API 供正在运行的应用程序用来与其托管群集交互。
- 公用 API 包含在客户端 API 和运行时 API 中使用的类型。
直接从 Visual Studio 包管理器控制台或使用 .NET Core CLI 安装 NuGet 包。
Visual Studio 包管理器
Install-Package Microsoft.ServiceFabric
dotnet add package Microsoft.ServiceFabric
代码示例
以下示例使用 Service Fabric 客户端 API 将应用程序包复制到映像存储、预配应用程序类型,并创建应用程序实例。
/* Include these dependencies
using System.Fabric;
using System.Fabric.Description;
*/
// Connect to the cluster.
FabricClient fabricClient = new FabricClient(clusterConnection);
// Copy the application package to a location in the image store
fabricClient.ApplicationManager.CopyApplicationPackage(imageStoreConnectionString, packagePath, packagePathInImageStore);
// Provision the application.
fabricClient.ApplicationManager.ProvisionApplicationAsync(packagePathInImageStore).Wait();
// Create the application instance.
ApplicationDescription appDesc = new ApplicationDescription(new Uri(appName), appType, appVersion);
fabricClient.ApplicationManager.CreateApplicationAsync(appDesc).Wait();
此示例从托管的应用程序中使用 Service Fabric 运行时 API 和公用 API,以在运行时更新 Reliable Collection。
using System.Fabric;
using Microsoft.ServiceFabric.Data.Collections;
using Microsoft.ServiceFabric.Services.Communication.Runtime;
using Microsoft.ServiceFabric.Services.Runtime;
/// <summary>
/// This is the main entry point for your service replica.
/// This method executes when this replica of your service becomes primary and has write status.
/// </summary>
/// <param name="cancellationToken">Canceled when Service Fabric needs to shut down this service replica.</param>
protected override async Task RunAsync(CancellationToken cancellationToken)
{
var myDictionary = await this.StateManager.GetOrAddAsync<IReliableDictionary<string, long>>("myDictionary");
while (true)
{
cancellationToken.ThrowIfCancellationRequested();
using (var tx = this.StateManager.CreateTransaction())
{
var result = await myDictionary.TryGetValueAsync(tx, "Counter");
await myDictionary.AddOrUpdateAsync(tx, "Counter", 0, (key, value) => ++value);
// If an exception is thrown before calling CommitAsync, the transaction aborts, all changes are
// discarded, and nothing is saved to the secondary replicas.
await tx.CommitAsync();
}
await Task.Delay(TimeSpan.FromSeconds(1), cancellationToken);
}
}
管理库
管理库用于创建、更新和删除 Service Fabric 群集。
直接从 Visual Studio 包管理器控制台或使用 .NET Core CLI 安装 NuGet 包。
Visual Studio 包管理器
Install-Package Microsoft.Azure.Management.ServiceFabric
dotnet add package Microsoft.Azure.Management.ServiceFabric