我创建了一个在开发集群上运行的actor服务.ASP.NET应用程序(通过IIS单独托管)连接到群集并使用actor.这很好用.
但是,当我将所有内容部署到生产环境时,ASP.NET应用程序无法连接到具有以下异常的群集.群集是内部托管的(Windows 2012 R2).
The type initializer for 'Microsoft.ServiceFabric.Services.ServiceTrace' threw an exception.
Stacktrace:
at Microsoft.ServiceFabric.Services.Common.FabricServiceConfig.TryGetConfigPackageObject(String configPackageName, ConfigurationPackage& package)
at Microsoft.ServiceFabric.Services.Common.FabricServiceConfig.GetSettingsFilePath(String configPackageName)
at Microsoft.ServiceFabric.Services.Common.FabricServiceConfig.GetConfig()
at Microsoft.ServiceFabric.Services.Common.FabricServiceConfigSection.Initialize()
at Microsoft.ServiceFabric.Services.Communication.FabricTransport.Common.FabricTransportSettings.LoadFrom(String sectionName, String filepath, String configPackageName)
at Microsoft.ServiceFabric.Services.Communication.FabricTransport.Common.FabricTransportSettings.TryLoadFrom(String sectionName, FabricTransportSettings& settings, String filepath, String configPackageName)
at Microsoft.ServiceFabric.Services.Communication.FabricTransport.Common.FabricTransportSettings.GetDefault(String sectionName)
at Microsoft.ServiceFabric.Actors.Remoting.FabricTransport.FabricTransportActorRemotingProviderAttribute.CreateServiceRemotingClientFactory(IServiceRemotingCallbackClient callbackClient)
at Microsoft.ServiceFabric.Actors.Client.ActorProxyFactory.CreateServiceRemotingClientFactory(Type actorInterfaceType)
at Microsoft.ServiceFabric.Actors.Client.ActorProxyFactory.GetOrCreateServiceRemotingClientFactory(Type actorInterfaceType)
at Microsoft.ServiceFabric.Actors.Client.ActorProxyFactory.CreateActorProxy[TActorInterface](Uri serviceUri, ActorId actorId, String listenerName)
at Microsoft.ServiceFabric.Actors.Client.ActorProxy.Create[TActorInterface](ActorId actorId, Uri serviceUri, String listenerName)
Inner Exception:
innerExceptionType: System.DllNotFoundException
innerStacktrace:
at System.Fabric.Interop.NativeCommon.FabricGetConfigStore(Guid& riid, IFabricConfigStoreUpdateHandler updateHandler)
at System.Fabric.Common.NativeConfigStore.CreateHelper(IFabricConfigStoreUpdateHandler updateHandler) …Run Code Online (Sandbox Code Playgroud) 根据Service Fabric文档(https://azure.microsoft.com/en-us/documentation/articles/service-fabric-reliable-actors-introduction/),以这种方式创建一个actor代理:
ActorId actorId = ActorId.NewId();
IMyActor myActor = ActorProxy.Create<IMyActor>(actorId, new Uri("fabric:/MyApp/MyActorService"));
await myActor.DoWorkAsync();
Run Code Online (Sandbox Code Playgroud)
好的,这可以工作并连接到我的本地群集.但我无法弄清楚如何创建远程集群的代理?(我有一个三节点集群,IP为10.0.10.10,10.0.11.10,10.0.12.10.)
我还尝试使用ServicePartitionResolver,这里有解释:https://azure.microsoft.com/en-us/documentation/articles/service-fabric-reliable-services-communication/,但没有成功.
我们通过快照为 Cassandra 生产环境设置了备份/恢复程序。快照文件、架构和令牌环信息复制到 S3。
生产集群是一个 3 节点集群,复制因子为 3。
为了开发和测试,我想将生产中的快照恢复到单独的集群中。为了节省资金并方便维护,最好只从一个生产节点恢复快照。由于我们在 3 节点集群中使用复制因子 3,因此每个快照都应包含所有行。一致性对于我们的用例来说也不重要。
是否可以(以及如何)仅恢复单个快照?