每个 Service Fabric 实例的配置

2024-07-04

我正在设计一个服务结构无状态服务,它需要每个实例的配置数据。我最初的想法是创建命名分区,并使用PartitionInfo获取命名键,使用共享只读字典来加载每个实例的设置。问题是,现在在内部(从其他服务)访问此实例需要分区键。由于使用此方法的所有分区将在内部提供相同的数据,因此我连接到哪个分区并不重要(我希望它是随机的)。所以,这给了我很多可能的方法来解决这个问题:

  • 使用随机访问分区(在我上面的尝试中)ServiceProxy.Create https://learn.microsoft.com/en-us/dotnet/api/microsoft.servicefabric.services.remoting.client.serviceproxy.create--1?view=servicefabricsvcsremoting-2.5.216#Microsoft_ServiceFabric_Services_Remoting_Client_ServiceProxy_Create__1_System_Uri_Microsoft_ServiceFabric_Services_Client_ServicePartitionKey_Microsoft_ServiceFabric_Services_Communication_Client_TargetReplicaSelector_System_String_.

以下不涉及分区的解决方案:

  • 基于每个实例的配置。这个帖子 https://stackoverflow.com/a/36947126/4875631对于提出解决方案没有多大帮助。每个实例唯一的配置部分将是最理想的解决方案。
  • 创建命名实例,并使用名称作为用户名(基本上将字符串附加到非分区实例)
  • 通过索引获取实例,并使用索引针对共享只读字典来获取用户名。
  • 以某种方式使用InitializationData(参见这个帖子 https://feedback.azure.com/forums/293901-service-fabric/suggestions/17287526-allow-service-initializationdata-to-be-set-in-appl)获取用户名字符串(如果 InitializationData 每个实例可以是唯一的)。

以上所有内容都将解决我的问题。这些方法中的任何一个都可能吗?

编辑:我尝试创建的服务示例:

假设我们有一个 stackoverflow 问题服务(简称 SOQS)。在本示例中,假设一个用户可以在任何时候连接到 stackoverflow 的 websocket。 SOQS 内部方法(发布到我的服务结构)有一种方法:GetQuestions()。每个 SOQS 都需要使用唯一的用户名/密码连接到 stackoverflow,并且当新问题通过 websocket 推送时,它们会添加到内部问题列表中。 SOQS的GetQuestions()方法(从我的服务结构内部调用),然后会给出相同的问题列表。然后,我可以通过添加更多实例(只要我有更多用户名/密码)来实现负载平衡,然后可以分配结构内部的负载。我可以打电话ServiceProxy.Create<SOQS>()连接到随机实例以获取我的问题列表。


听起来您正在寻找一种具有多个参与者的服务类型,每个参与者都有自己的配置。它们不会是具有独特配置的同一服务的多个副本,而是作为单例的服务的一个实例(当然还有副本),以及每个实例的单独参与者。

例如,您可以让用户服务(猜猜它是什么,因为您提到了用户名字符串)从某些外部存储机制读取用户名和长整型列表,例如每个用于内部跟踪的实例 ID。然后,该服务将为每个参与者创建一个具有自己的配置信息的参与者。那么用户服务将成为与各个参与者之间发送消息的路由器。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

每个 Service Fabric 实例的配置 的相关文章

  • 在 C 中搜索已排序的数组

    我正在解决 C 语言中的一个问题 我有一个简短的问题 问题如下 我得到了一些已排序的整数数组 比如说 a i 1 2 3 3 3 现在 我应该运行一个程序来搜索给定的整数 返回第一次出现的位置以及该整数在数组中出现的次数 所以 如果我正在寻
  • 在派生虚函数中强制执行正确的参数类型

    我发现很难非常简洁地描述这个问题 所以我附上了演示程序的代码 总的想法是 我们需要一组派生类 它们被迫从基类实现一些抽象 Foo 函数 每个派生的 Foo 调用都必须接受不同的参数作为输入 但所有参数也应该从 BaseInput 类派生 到
  • VSTO 功能区库,看起来像 Word 2010 中的样式选择器

    我正在用 C 编写功能区 COM 加载项 并尝试在新选项卡上创建可用模板文件库 是否可以将图库设置为像 Word ie 中主页选项卡上的样式选择器图库一样打开 显示图库中的所有文件名 MS 不允许其他人使用带内画廊在 Outlook 200
  • 使用蒙特卡罗方法计算 PI 给出的答案不精确

    我正在尝试使用蒙特卡罗方法计算 PI 无论 MAXLEN 有多大 我的代码给出的结果都是 3 000 经过多次调试 我无法明白我做错了什么 include
  • typedef 和 Define 之间的区别[重复]

    这个问题在这里已经有答案了 可能的重复 c中typedef和 define一样吗 https stackoverflow com questions 1666353 is typedef and define the same in c 对
  • 嵌入式Python,导入数学错误

    首先我使用的是 Mac OSX 10 12 6 我想在我的 C 应用程序中嵌入 python 环境 我把 github python 项目放在https github com python cpython https github com
  • 如何知道机器的堆栈在内存中是向上还是向下增长? (JAVA)

    我有一个 C 程序来检查机器堆栈在内存中是向上还是向下增长 事情是这样的 include
  • 测试用户输入数组中的重复项的最有效方法是什么?

    我正在尝试编写一个模拟器来玩强力球彩票 程序会要求5数字 又名白球 并输入到6元素数组和另一个数字 红色强力球 放入6th 元素 我需要弄清楚如何首先测试重复项5元素但6th 不需要是唯一的 我有一个循环 我认为可以工作 但它甚至不执行并且
  • C# 中的新类型定义

    我正在寻找定义新类型并在 C 中使用它的可能性 如下所示 类定义 public class Position public double180 Longitude get set double180 is a type within a r
  • 使用c#在ms access中更新

    有人可以帮助我的代码有什么问题吗 它是一个更新函数 在我的调试过程中它可以正确执行 但它不会更新我的数据库 我已经在寻找这个问题的答案 但仍然没有成功 我还尝试创建一个新的数据库 希望它有问题 但仍然没有效果 private void up
  • 如何使文本框的自动完成列表可编辑?

    我有一个包含很多内容的应用程序TextBox使用自动完成的控件 每个人都使用AutoCompleteMode CustomSource从关联的获取自动完成文本AutoCompleteStringCollection 每当用户在其中输入新值时
  • 您会在哪里使用友元函数与静态成员函数?

    当我们希望非成员函数访问该类的私有成员时 我们将其设为该类的友元函数 这赋予它与静态成员函数相同的访问权限 两种选择都会为您提供一个不与该类的任何实例关联的函数 什么时候我们必须使用友元函数 什么时候必须使用静态函数 如果两者都是解决问题的
  • 在 Xamarin.Forms 中添加方向更改布局

    我需要实现的是 在将屏幕从纵向更改为横向时向现有页面添加布局 我已经成功地使用检测方向变化void OnSizeAllocation 双倍宽度 双倍高度 但我无法为此事件添加布局 我的示例 C 代码是 public class MyLayo
  • SQL 和 Dapper 性能隐式转换

    我们如何防止 Dapper 中的 SQL 隐式转换 我们意识到 我们正在进行 SQL 隐式转换 导致索引扫描和死锁 Dapper 参数是 nvarchar 而 SQL 表列是 varchar 这导致我们所有的 sql 列都转换为 nvarc
  • 使用Swashbuckle ISchemaFilter设置输入参数的默认描述

    我想在文档架构中为所有具有 DateTime 类型的输入参数添加默认描述 这样客户就会了解我们正在使用哪些格式等 我可以为此目的创建 ISchemaFilter 的自定义实现吗 我知道我可以使用 xml 注释添加描述 但在这种情况下 我应该
  • 鱼眼图像不失真的正确方法

    我已经完成了一些示例程序 可以消除棋盘上的镜头失真 如鱼眼图像 并且工作正常 这是屏幕截图 接下来 我想使用鱼眼棋盘图案 上右图 来消除相同的镜头畸变 但从真实图像中去除 但没有运气 曲率仍然保留在未畸变的图像上 因此我得到了这个 the
  • 如何使信号客户端避免表单身份验证?

    我的 MVC 网站在 web config 中有表单授权 现在所有的页面都需要通过授权才能被查看 但是现在我有一个控制台程序 C 控制台程序 这个程序需要发送一些消息到 SignalR 集线器 但是我的 signalR Hub 在我的 MV
  • ncurses 和curses - 编译器未定义的引用

    好吧 我最初一直在尝试使用一些据称仅适用于 Windows 的标头 我的错 但我已经使用curses h 重现了我需要的内容 但是我仍然收到完全相同的错误 usr bin gmake f nbproject Makefile Debug m
  • Windows 窗体应用程序中异常处理的最佳实践?

    我目前正在编写我的第一个 Windows 窗体应用程序 我现在已经阅读了几本 C 书籍 因此对 C 必须处理异常的语言特性有了相对较好的了解 然而 它们都非常理论化 因此我还没有了解如何将基本概念转化为应用程序中良好的异常处理模型 有人愿意
  • 获取非通用任务的结果

    有没有办法得到结果Task

随机推荐

  • 什么是无操作系统裸机 Cortex M3 的开源数据存储

    我正在寻找有关用 C 编写的数据存储的建议 该数据存储将在没有任何操作系统的情况下为 ARM Cortex M3 进行编译 我希望它是 用C写的 最好是免费和 或开源的 可以用GCC编译 适用于裸机处理器 无需操作系统或文件系统支持 可以是
  • 如何更改 PostgreSQL 中的“REFERENCES”?

    当表名更改时 如何更改对 PostgreSQL 中表的引用 假设我有 CREATE TABLE example1 id serial NOT NULL PRIMARY KEY name varchar 100 CREATE TABLE ex
  • pytest 中的分组测试:类与普通函数

    我正在使用 pytest 来测试我的应用程序 pytest 支持两种 据我所知 编写测试的方法 在课堂上 test feature py gt 类 TestFeature gt def test feature sanity 在函数中 te
  • Akka 2.0 RC2 中远程 Actor 部署出现错误

    我正在尝试创建一个 actor 并将其部署到我的计算机的端口 1997 如下所示 在application conf中 akka version 2 0 RC2 event handlers akka event Logging Defau
  • Worksheet_change 无法使用公式,而 Worksheet_Calculate 会出现编译错误

    我正在尝试使图表根据单元格中的特定值 阶段门 1 5 改变颜色 这是我的测试代码 Private Sub Worksheet Change ByVal Target As Range If Target Address M 2 Then I
  • 如何将十六进制字符串转换为普通文本字符串 C#

    我们有一个 keyMaterial 十六进制字符串 看起来像这样 453F1287225ED9971D389A35F8D1032E7748DD0B88302F7C6C194626D4C8659B000000000E8000000002000
  • 从 C++ 设置 OLE 请求超时

    我正在使用 CoCreateInstance 实例化本地 COM 服务器 有时 提供服务器的应用程序需要很长时间才能启动 发生这种情况时 Windows 会弹出一个对话框 如下所示 服务器繁忙 由于其他程序正忙 因此该操作无法完成 选择 切
  • HTTP 缓存标头设置 weblogic

    有谁知道如何修改 weblogic 设置以将 HTTP 缓存标头设置为遥远的未来日期 例如 在我当前的设置中 weblogic 将 http 缓存标头设置为在 5 小时后过期 作为 HTTP 1 1 304 Not Modified 的响应
  • .gitattributes 文件对于 git 真的有必要吗?

    我最近读了一些关于 gitattributes 的文章 也发现了像这样的地方 https github com alexkaratarakis gitattributes https github com alexkaratarakis g
  • 无法运行 com.android.ide.eclipse.adt.internal.build.AidlProcessor

    我从一位开发人员那里得到了一个项目 该项目已经完成并且在他的计算机上运行良好 当我尝试在 Eclipse 中在我的计算机上构建该项目时 我收到以下错误消息 无法运行 com android ide eclipse adt internal
  • Matplotlib 图例帮助

    我正在写一个脚本 其中包含几个要点 我也试图从这些点上创造一个传奇 总结我的脚本 我正在绘制几种 类型 的点 称为 a b c 这些点具有不同的颜色和形状 a go b rh c k 这是我的脚本相关部分的缩短版本 lbl the type
  • 如何查询我的 Subversion 存储库?

    目前 我只想找到过去 X 天内未修改的所有文件 但最终我希望能够对我的 subversion 存储库进行更复杂的查询 是否有我可以使用的某种 Subversion 查询语言或 API 您可以使用 SvnQuery 项目 http svnqu
  • Kotlin:在构造函数中初始化类属性

    我创建了一个带有类属性的 Kotlin 类 我想在构造函数中对其进行初始化 public class TestClass private var context Context null Nullable attribute public
  • 如何使用大量脚本文件管理 AngularJS 工作流程

    我研究了 gruntjs 但我不确定它是否是解决我的工作流程问题的正确工具 我正在开发一个巨大的 Angular 项目 其中已经有 30 多个 js 文件 每次添加新的 js 文件时 我都必须转到索引文件并在其中添加引用 有没有办法用 gr
  • 如何通过鼠标点击使一个对象移动并与另一个对象交换位置

    到目前为止 我有一个脚本 可以在单击鼠标时将对象移动一小段距离 但是我想更改它 以便当我单击该对象时 它会与旁边的另一个对象交换位置 而不仅仅是它所在的小距离现在搬家了 我对如何做到这一点有点困惑 因为我对统一很陌生 using Unity
  • 使用 ETag 进行 Volley 缓存

    我正在使用 Volley 库 但无法正确设置缓存 服务器向我发送 json 对象 过期时间和 ETag 我想将此对象保存在缓存中 并在下一个对该对象的请求中使用向服务器发送的请求 在标头中包含 ETag 如果响应为 304 Not Modi
  • 使用 Sublime Text 和正则表达式匹配行上的第一个空格

    所以正则表达式对我来说一直很困难 我试图找到一个正则表达式来选择一行上的第一个空格 这让我感到沮丧 那么我可以使用 sublime text 将其替换为 如果你能给出一个快速的解释 这将有助于 本着 edi 回答的精神 但对正在发生的事情进
  • 在挑选多个补丁时如何跳过一个补丁?

    我已经开始使用如下命令进行挑选 git cherry pick A B C D 假设补丁 A 和 B 有一些合并冲突 但我最终将它们全部修复并且git cherry pick continue 当我最终到达 C 时 我意识到一定已经应用了相
  • scala.tools.nsc.Interpreter -- 如何执行解释器语句以便在全局范围内定义结果? (Scala 2.7.7final)

    我正在尝试在 Scala 中解释字符串来定义类和方法 我使用了来自的例子http scala programming language 1934581 n4 nabble com Compiling a Scala Snippet at r
  • 每个 Service Fabric 实例的配置

    我正在设计一个服务结构无状态服务 它需要每个实例的配置数据 我最初的想法是创建命名分区 并使用PartitionInfo获取命名键 使用共享只读字典来加载每个实例的设置 问题是 现在在内部 从其他服务 访问此实例需要分区键 由于使用此方法的