From 2f400f19bd280757f38da6e5e93a00a91678a69d Mon Sep 17 00:00:00 2001 From: xiazen Date: Thu, 10 Nov 2016 18:05:26 -0800 Subject: [PATCH] using azure storage as membership and persistence provider --- .gitignore | 2 ++ src/HelloWorld.Grains/HelloArchiveGrain.cs | 1 + src/OrleansClient/Program.cs | 13 +++++++++++++ src/OrleansClient/project.json | 9 +++++++-- src/SiloHost/Program.cs | 7 +++++-- src/SiloHost/project.json | 11 ++++++++--- 6 files changed, 36 insertions(+), 7 deletions(-) diff --git a/.gitignore b/.gitignore index 1c9a181..9e7ec4d 100644 --- a/.gitignore +++ b/.gitignore @@ -6,6 +6,8 @@ *.user *.userosscache *.sln.docstates +*.lock.json +*.txt # User-specific files (MonoDevelop/Xamarin Studio) *.userprefs diff --git a/src/HelloWorld.Grains/HelloArchiveGrain.cs b/src/HelloWorld.Grains/HelloArchiveGrain.cs index b8a892c..547cb9a 100644 --- a/src/HelloWorld.Grains/HelloArchiveGrain.cs +++ b/src/HelloWorld.Grains/HelloArchiveGrain.cs @@ -6,6 +6,7 @@ namespace HelloWorld.Grains { + [Orleans.Providers.StorageProvider(ProviderName = "AzureStore")] public class HelloArchiveGrain : Grain, IHelloArchive { public async Task SayHello(string greeting) diff --git a/src/OrleansClient/Program.cs b/src/OrleansClient/Program.cs index f08c5bd..e8a5bf8 100644 --- a/src/OrleansClient/Program.cs +++ b/src/OrleansClient/Program.cs @@ -16,6 +16,11 @@ public class Program static int Main(string[] args) { var config = ClientConfiguration.LocalhostSilo(); + config.Gateways.Clear(); + config.DataConnectionString = "Your connection string"; + config.GatewayProvider = ClientConfiguration.GatewayProviderType.AzureTable; + config.DeploymentId = "DeploymentId"; + try { InitializeWithRetries(config, initializeAttemptsBeforeFailing: 5); @@ -64,6 +69,14 @@ private static async Task DoClientWork() var friend = GrainClient.GrainFactory.GetGrain(0); var response = await friend.SayHello("Good morning, my friend!"); Console.WriteLine("\n\n{0}\n\n", response); + var archiveGrain = GrainClient.GrainFactory.GetGrain(1); + response = await archiveGrain.SayHello("I'm ArchiveGrain"); + var greetings = await archiveGrain.GetGreetings(); + foreach(var greeting in greetings) + { + Console.WriteLine("\n\n{0}\n\n", greeting); + } + } } diff --git a/src/OrleansClient/project.json b/src/OrleansClient/project.json index 3318557..407bc20 100644 --- a/src/OrleansClient/project.json +++ b/src/OrleansClient/project.json @@ -9,7 +9,9 @@ "type": "platform", "version": "1.0.1" }, - "Microsoft.Orleans.Core": "2.0.0-beta*" }, + "Microsoft.Orleans.Core": "2.0.0-beta*", + "Microsoft.Orleans.OrleansAzureUtils": "2.0.0-beta*" + }, "frameworks": { "netcoreapp1.0": { @@ -18,7 +20,10 @@ "target": "project" } }, - "imports": "dnxcore50" + "imports": [ + "dnxcore50", + "portable-net451+win8" + ] } } } diff --git a/src/SiloHost/Program.cs b/src/SiloHost/Program.cs index 97d4ff6..8caee97 100644 --- a/src/SiloHost/Program.cs +++ b/src/SiloHost/Program.cs @@ -1,5 +1,6 @@ using System; using Orleans.Runtime.Configuration; +using Orleans.Runtime.Host; namespace OrleansSiloHost { @@ -25,8 +26,10 @@ private static int StartSilo(string[] args) { // define the cluster configuration var config = ClusterConfiguration.LocalhostPrimarySilo(); - config.AddMemoryStorageProvider(); - + config.Globals.DataConnectionString = "Your azure connection string"; + config.Globals.LivenessType = GlobalConfiguration.LivenessProviderType.AzureTable; + config.Globals.DeploymentId = "DeployemtnId"; + config.AddAzureTableStorageProvider("AzureStore"); hostWrapper = new OrleansHostWrapper(config, args); return hostWrapper.Run(); } diff --git a/src/SiloHost/project.json b/src/SiloHost/project.json index b6cc982..bc5f272 100644 --- a/src/SiloHost/project.json +++ b/src/SiloHost/project.json @@ -1,7 +1,8 @@ { "version": "1.0.0-*", "buildOptions": { - "emitEntryPoint": true + "emitEntryPoint": true, + "preserveCompilationContext": true }, "dependencies": { @@ -10,7 +11,8 @@ "version": "1.0.1" }, "Microsoft.Orleans.OrleansProviders": "2.0.0-beta*", - "Microsoft.Orleans.OrleansRuntime": "2.0.0-beta*" + "Microsoft.Orleans.OrleansRuntime": "2.0.0-beta*", + "Microsoft.Orleans.OrleansAzureUtils": "2.0.0-beta*" }, "frameworks": { @@ -23,7 +25,10 @@ "target": "project" } }, - "imports": "dnxcore50" + "imports": [ + "dnxcore50", + "portable-net451+win8" + ] } } }