问题标签 [azure-service-fabric]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
azure - Service Fabric 可靠服务:通信和分区要点
在发现 SF Reliable Services 时,我想确保接下来的基本陈述是正确的。
Reliable Services 默认通信栈(DefaultStack)和 Reliable Actors 通信栈(使用 ServiceProxy/ActorProxy)只能用于 SF Cluster 内部的通信。外部客户必须使用 WebAPI/WCF 堆栈。
ServicePartitionResolver、CommunicationClientFactory、ServicePartitionClient 是已经在 DefaultStack 中实现的东西。如果我只使用 DefaultStack,我不必担心。
一些有状态的服务有不止一个分区,我想例如发布一个项目来处理它。SF 不负责通过发布客户来决定应该使用哪个分区。我需要手动实现解析分区键或名称的算法,并在 ServiceProxy 构造函数(用于 DefaultStack)中使用它。
microservices - 版本控制服务
我们正在尝试使用 MS 的 ServiceFabric 来做微服务。
场景:我们有一个 Service1 运行 version1 并准备升级到 v2。
其他三个服务依赖于 Service1 的接口。我们希望能够发布 Service1 的 v2,但保持 v1 运行,直到我们针对 v2 升级和测试这三个服务。
我找到的所有示例,v2 立即替换了 v1。这个可以配置吗?有没有一种方法可以告诉服务发现机制我依赖于给定服务的特定版本?
c# - Service Fabric:具有分区负载平衡的可靠服务管道
在尝试实现 Service Fabric 的 Reliable Services 管道时,我有以下三种方法可供选择:
看起来C是一个不错的选择。详情在这里。
在这种情况下,我需要在工作服务之间实现某种消息泵。
例如,我有 2 种工人服务。第一个是 IO-bound 并且不需要可扩展性。其次是受 CPU 限制,需要可扩展性,因此它使用分区。我不关心究竟将使用什么分区来处理具体项目,因此消息泵必须充当负载平衡器,并将项目排入 CPU 绑定服务,输入队列中的项目最少。现在我已经为此目的创建了一个有状态的服务。
在这种形式中,这看起来与 TPL 数据流管道非常相似。
我的问题是我是否正确使用了 Service Fabric?这里有过度工程吗?
Reliable Actors 是否更适合这种管道?(或管道的一部分)
azure-service-fabric - 本地集群安装 .\DevClusterSetup.ps1 失败等待命名服务准备好
尝试设置本地集群时,powershell
脚本出现以下错误:
有没有办法继续安装或修复此错误的原因?
干杯,
麦克风
我已经完全删除了 SDK 并重新开始,但我仍然遇到同样的问题。一切都归结为“Connect-ServiceFabricCluster”根本不起作用(我已遵循提供的所有建议)。
当然,关于命名服务的警告必须指向某些东西吗?
每次尝试我都会看到以下内容:
警告:无法联系命名服务。正在尝试联系故障转移管理器服务... 2>警告:无法连接故障转移管理器服务,正在尝试联系 FMM... 2>Connect-ServiceFabricCluster:通信错误导致操作失败。2>在 D:\Source\Play\ServiceFabricApplication\ServiceFabricApplication\Scripts\Deploy-FabricApplication.ps1:158 char:16 2>+ ... [void](Connect-ServiceFabricCluster @ClusterConnectionParameters ... 2>+ ~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~ 2> + CategoryInfo : InvalidOperation: (:) [Connect-ServiceFabricCluster], FabricTransientException 2> + FullyQualifiedErrorId : CreateClusterConnectionErrorId,Microsoft.ServiceFabric.Powershell.ConnectCluster
尝试从纸盘重置: 纸盘输出
azure - Service Fabric - 有状态的服务持久性
我是服务结构的新手,首先查看涵盖该主题的 MSDN 文章。我首先在这里实现 Hello World 示例。
我将他们原来的 RunAsync 实现更改为:
我还介绍了一个 DataObject 类型并在该类型上公开了一个 UpdateDate 属性。
当我运行应用程序(Visual Studio 2015 中的 F5)时,在字典中找不到一个dataObject实例(键为 1),所以我创建一个,设置 UpdateDate,将其添加到字典并提交事务。在下一个循环中,它找到dataObject(键为 1)并设置 UpdateDate,更新字典中的对象并提交事务。完美的。
这是我的问题。当我停止并重新启动服务项目(Visual Studio 2015 中的 F5)时,我希望在我第一次迭代 RunAsync 时会找到 dataObject(键入为 1),但事实并非如此。我希望所有状态都被刷新到它的副本。
我是否必须为有状态服务执行任何操作才能将其内部状态刷新到其主副本?
从我读过的内容来看,这听起来好像所有这些都是由服务结构处理的,并且调用提交(在事务上)就足够了。如果我找到主副本(在 Service Fabric Explorer-> 应用程序视图中),我可以看到 RemoteReplicator_xxx LastACKProcessedTimeUTC 在我提交事务后更新(单步执行时)。
任何帮助是极大的赞赏。
谢谢!
-标记
azure-service-fabric - 找不到 Service Fabric FabricRuntime.dll
我尝试升级到 Service Fabric 预览代码的新版本 - 1.4.87-preview - 一切似乎都正常,但是当我尝试部署服务时,运行时出现异常,告诉我找不到FabricRuntime.dll。这适用于我的升级项目、新创建的测试项目和所有示例。
我可以看到该 DLL 存在于机器上,并且系统 PATH 已设置为包含它的目录。
我的应用程序本身似乎没有任何问题,因为它们可以很好地部署到派对集群。
任何人都知道发生了什么。当我运行旧的 Service Fabric 安装时,一切正常。我已尝试卸载服务结构并再次安装,但没有帮助。
azure-service-fabric - Service Fabric .Net Framework 4.5.1 和 4.6
将目标框架从 4.5.1 更改为 4.6 后,Auzure Fail 中的服务,本地部署工作正常。
我需要添加 .Net 4.6 支持吗?- 我无法找到可以在 Azure 集群中看到可用框架的位置。
谢谢
应用程序名称:结构:/Lending20.Service.IdentityManagement AggregatedHealthState
:错误 UnhealthyEvaluations:不健康的服务:100% (1/1),ServiceType='IdentityManagementServiceType',MaxPercentUnhealthyServices=0%。不健康的服务:ServiceName='fabric:/Lending20.Service.IdentityManagement/Identity ManagementService',AggregatedHealthState='Error'。
不健康分区:100% (1/1),MaxPercentUnhealthyPartitionsPerService=0%。
不健康的分区:PartitionId='7c68b397-fda3-491d-9e17-921cd24217ca', AggregatedHealthState='Error'。
错误事件:SourceId='System.FM',Property='State'。
ServiceHealthStates:ServiceName:fabric:/Lending20.Service.IdentityManagement/IdentityManagementService AggregatedHealthState:错误
DeployedApplicationHealthStates:ApplicationName:fabric:/Lending20.Service.IdentityManagement NodeName:_lending1 AggregatedHealthState:OK
HealthEvents:SourceId:System.CM 属性:状态 HealthState:Ok SequenceNumber:3464 SentAt:11/21/2015 12:38:08 PM ReceivedAt:11/21/2015 12:38:08 PM TTL:无限说明:应用程序已创建的。RemoveWhenExpired : False IsExpired : False 过渡 : 警告-> OK = 11/21/2015 12:38:
azure - Azure Service Fabric 单个虚拟机
在 Azure 目前我使用“云服务”来构建可销售的应用程序。“Azure Service Fabric”看起来像是在云上构建应用程序的最新方法。它非常好,但是我无法使用单个虚拟机创建它。它显示每种类型至少有 5 个 VM。由于我正在创建一个启动应用程序,因此我无法使用 5 个虚拟机。那么使用“云服务”可以吗?我担心它在新门户中被标记为“经典”。
azure-service-fabric - 按部署位置配置 Service Fabric 参与者和服务逻辑
Azure Service Fabric 应用程序有一个 ApplicationParameters 文件夹,其中包含针对不同部署位置的 XML 配置文件。这些文件中的设置似乎处理了所包含的参与者和服务的实例/分区的数量;我还没有看到这些设置影响参与者或服务逻辑的示例。
此外,可靠服务和可靠参与者可以在 ServiceManifest.xml 文件中指定配置包,该文件指向包含 Settings.xml 文件的文件夹。您可以在 Settings.xml 中创建自定义配置部分,并通过 ServiceInitializationParameters.CodePackageActivationContext.GetConfigurationPackageObject() 通过服务/参与者的 ConfigurationPackage 访问它们。与应用程序级别的配置不同,这些配置文件似乎并不容易针对特定的部署位置。
通过针对部署位置的配置文件来定制参与者/服务逻辑的正确方法是什么?例如,如果您的服务依赖于具有不同 URL 的外部 API 用于开发环境和生产环境,那么如何使用配置文件轻松建立这些 API?如果 ApplicationParameters 文件是答案,您如何以编程方式从参与者或服务访问此信息?如果 Settings.xml 文件中的自定义部分是答案,那么参与者/服务如何知道它在哪个环境中?
azure - 您在哪里为 Service Fabric 设置和访问每个环境的运行时配置参数?
对于本地和云这两种环境,我将如何为 Sql 数据库、存储帐户等资源设置自定义设置或参数......理想情况下,它是在代码中调用的一个参数名称,将 DbContext 指向特定的数据库,本地或云环境的配置不同。谢谢你。