定义 WCF 服务的 SLA

2024-02-13

我必须对一堆相互依赖的服务进行性能/负载测试。它们都使用 net.tcp,并且大多数使用双工合约和内部队列。 [使用 lock(syncRoot) 手卷 POCO 队列类 { if(queue.Empty) Thread.Wait(); }]

这是我想出的方法:

  1. 确定要进行性能测试的 WCF 服务
  2. 确定每项服务的相关性能计数器
  3. 确定将执行正在测试的服务的逻辑起点
  4. 使用 VS.Net 为每个服务自动生成单元测试
  5. 编写特定的功能测试(例如,我可以采用一个用例 - “下订单” - 并编写对相关服务进行所有调用并通常执行几乎所有所需功能的测试)
  6. 使用运行 #5 中的跟踪文件生成单元测试 [使用 CodePlex 中的 WCF 负载测试](在我看来,这在某种程度上是在调试环境中重现生产/现场中的用户错误的理想工具。免责声明:未使用该工具。印象从阅读项目描述)
  7. 可以调整上面的测试以使用自动生成的输入数据进行调用
  8. 引入输入变化,以便执行不同的代码路径
  9. 来自性能计数器的日志数据
  10. 分析并识别瓶颈

问题:

  1. 有更好的方法吗?
  2. 对于使用内部队列的服务,使用标准性能计数器测量性能是一个问题。我可能需要定制计数器?
  3. 如果#1 为真,是否有办法在不更改正在测试的服务代码的情况下引入客户计数器?
  4. 我应该关心功能测试的结果吗?
  5. 有没有一种方法可以[非侵入式]为 WCF 服务实施 SLA? (我认为,如果我的计数器有足够的数据,例如服务的请求、发生的异常、响应时间等,我应该能够验证我的 SLA - 在 5 分钟内服务 200,000 个请求,每个请求的响应时间为 2 秒 -对照这些数字。我的问题也许是我是否可以只指定我的 SLA,并且产品/工具可以完成幕后的所有工作并为我提供表格答案?我知道...我知道...我在做白日梦:))
  6. 旁白:在 WCF 服务内部对请求进行排队的最佳方法是什么?

哇……标题绝对是冰山一角!希望我的回答不会离谱! :)

  1. WCF 服务的性能测试可以通过多种不同的方式完成:使用 Microsoft Team Test、Borland Silk Performer、Mercury LoadRunner 等测试工具,或者 LoadGen 或自定义测试工具等工具。我的偏好是尝试采用您在创建某种功能单元测试中所做的方法,然后将数据输入到该测试中,同时使用测试工具启动该测试的多个并发实例(虚拟“用户”) 。大多数商业测试工具的工具确实促进了这种类型的测试,因此这里很难出错。最大的挑战通常来自维护测试用例和测试数据以支持测试应用程序。

  2. WCF 没有任何与性能相关的内置计数器。这实际上是一个盲点。当然,您可以看到与服务器建立的连接数量,但这是粗略信息,您可能想知道哪些服务正在为这些请求提供服务。有传言称,作为为 WCF/WF 提供丰富的托管环境的一部分,Microsoft 的“Dublin”将包含托管服务的性能计数器。我们将不得不等待,看看到底会发生什么。

  3. 如果我需要在不影响现有代码库的情况下检测 WCF 服务,我会研究可以从可以应用于该服务的 WCF 行为中获得多少里程。此自定义行为可能会显示您可能想要的性能计数器。

  4. 是的。我会关心功能测试的结果(意味着性能?)。需要注意的是,可能存在一些可以忽略的启动(JIT)。我可能希望分析功能测试的执行以获得执行指标 - 但我不会在性能运行期间打开代码分析。

  5. 对于 SLA 来说,自定义行为可能就是答案。您可以将运营指标记录到数据库中,然后进行报告。 Amberpoint 和 SOA Software 等商业产品也将为此提供支持(包括性能计数器)。

  6. 将请求排队到 wcf 服务?我立即想到 net.msmq 绑定,特别是如果您希望使请求持久。

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

定义 WCF 服务的 SLA 的相关文章

  • 使用 Eclipse 的 JAX-RPC 规范不支持数据类型的大错误

    这以前从未发生过 我从未见过任何这些警告 一定有一个我遗漏的小修复 我无法像它所说的那样取出类 对象 映射等的所有实例 我之前在同一个网络服务中使用过这些 没有任何问题 我添加了一种与其他方法类似的方法 我得到这个 S 有人可以帮忙吗 Th
  • REST Web 服务 - 动态查询参数

    我需要将动态查询参数发送到 REST Web 服务 GET 方法 如下所示 主机 端口 应用程序 field1 XXX value1 VVV field2 XXX value2 XXX 消费者可以发送参数最多为字段和值 每个字段都映射到值
  • 使用 PHP 调用涉及枚举的 Web 服务 (SOAP)

    我希望使用 SOAP 从 PHP 调用 Web 服务 使用包含的 SOAP 扩展 有问题的网络服务是http www webservicex net CurrencyConvertor asmx http www webservicex n
  • 使用 asyncore 读取网站

    我想异步阅读一个网站 据我所知 这是不可能的 urllib 现在我尝试使用普通套接字进行阅读 但是 HTTP 给我带来了麻烦 我遇到了各种时髦的编码 例如传输编码 分块 必须手动解析所有这些东西 我现在想编码 C 而不是 python 难道
  • JAXB 是否支持 xsd:restriction?

  • Web 服务无法使用 GAC 中的类型创建类型错误

    遇到一个不寻常的问题时 我似乎喜欢做一些不常见的事情 我有一个复合控件 它检查给定的 Web 服务文件是否存在于我的应用程序的根目录中 如果不存在 它会在标记中创建带有必要指令的文件以进行滚动 如下所示 反过来 它被保存到输出中 完成此步骤
  • 世界CF。服务通用方法

    如何在 wcf 服务中使用通用方法 我写了这段代码 OperationContract void AddItem
  • 强制 WcfSvcHost.exe 使用我的自定义服务主机

    是否可以强制 WcfSvcHost 当我执行 F5 或在解决方案中调试另一个项目时自动执行 使用自定义 ustom 服务 通过使用服务工厂 我的自定义服务主机在我的 asp net 主机容器中运行良好 该服务工厂又调用自定义服务库 但是当
  • WCF:配置已知类型

    我想知道如何在 WCF 中配置已知类型 例如 我有一个Person类和一个Employee班级 这Employee类是 的子类Person班级 两个类都标有 DataContract 属性 我不想对类的已知类型进行硬编码 例如将 Servi
  • 捕获通信异常而不是自定义故障异常 - WCF

    在服务器上我抛出这样的异常 catch SqlException exception if exception Message Contains Custom error from stored proc Exception to be t
  • WCF服务契约上的数据注释

    我有一个 WCF 服务 其中定义了一个 DataContract 类 每个属性都有 DataMember 属性 并且我已向其中几个属性添加了几个数据注释属性 Required 和 StringLength 然后 我在 ASP NET MVC
  • Restful服务参数不匹配异常

    我有服务 POST Path post Consumes application json public Response createProductInJSON Product product String result Product
  • .NET Web 服务 (asmx) 超时问题

    我正在连接到供应商提供的 Web ASMX 服务并通过线路发送一组数据 当您向项目添加服务引用时 我的第一次尝试遇到了 Visual Studio 默认在 app config 文件中引发的 1 分钟超时 我把它增加到 10 分钟 又是一次
  • 是否可以将 WPF Combobox.SelectedValue 绑定到多个 ObjectDataProvider?

    尝试确定是否可以使用 XAMAL 绑定将 ComboBox 的 SelectedValue 绑定到多个 ObjectDataProvider 的输入 我查看了 MultiBinding 但这似乎将多个控件组合在一起 这并不完全是我今天想要的
  • Asp.Net Web 服务:我想返回错误 403 禁止

    我有一个用 c asp net 编程的网络服务 WebService Namespace http example com WebServiceBinding ConformsTo WsiProfiles BasicProfile1 1 S
  • WCF 数据契约/序列化

    我创建了一个简单的 WCF 应用程序 它公开一个操作 此操作采用复合数据类型作为参数 我没有用 DataContract 属性修饰这个复合数据类型 但这是有效的 我可以在 WSDL 中看到它的架构 现在我的理解是 这个新的自定义类型应该用
  • WCF - 进行多次调用时随机客户端超时

    我有一个WPF客户端通过以下方式请求数据WCF服务托管于IIS 7 服务方法调用存储过程 SQL 2012 using EF检索一些数据 由于需要加载大量数据 因此客户端会多次调用服务方法 以 分解 数据加载并避免大量负载和超时 我们使用生
  • 信任所有将文件发送到 https Web 服务的 java 类

    我需要编写自己的类来告诉 mule 与服务 wsdl 的 https 连接已验证 我的 mule 项目已经接近完成 但最后一块丢失了 在特定的 url 发送文件 我想要实现的目标 建立连接并将 xml 发送到目标 url 读取 xml 格式
  • 在 Mono 2.8.2 中创建 WCF 服务

    我安装了 mono 2 6 7 和 WCF 服务
  • 手动将 ClientBase 集合类型从 Array[] 更改为 List<>

    我将自己的 WCF 代理与 Client Base 一起使用 我想做一些类似于 svc util 中的 ct 属性的操作 并告诉代理返回 List 集合类型 我不能使用 List 因为实体由 nhibernate 管理 所以我必须使用 IL

随机推荐

  • 如何使用boto读取S3上的二进制文件?

    我在 S3 文件夹 私人部分 中有一系列 Python 脚本 Excel 文件 如果它们是公开的 我可以通过 HTTP URL 读取访问它们 想知道如何以二进制方式访问它们以执行它们 FileURL URL of the File host
  • Android Phonegap:$.ajax 不会触发未经授权的回调(401)

    我正在使用 PhoneGap 构建 Android 应用程序 使用 jQuery 或 Zepto 我可以使用 ajax 调用来调用网站 API 然而 当网站返回 401 未经授权 响应时 ajax 调用似乎没有回调 没有调用 成功 错误 或
  • 在 Angular 的 Bower 组件中包含 html 模板

    我正在为我的角度应用程序制作一些可重用的指令 方法是将它们放入单独的 Bower 组件中 我想使用 templateUrl 作为指令 这样我就不会被迫执行本文中的三个选项之一 如何在我的 Angular 指令 Bower 包中使用单独的模板
  • SQL Server 条件 JOIN 语句

    是否可以执行以下操作 IF a 1234 THEN JOIN ON TableA ELSE JOIN ON TableB 如果是这样 正确的语法是什么 我认为您所要求的通过加入Initial两个表Option A and Option B
  • 如何准确读取一行?

    我有一个 Linux 文件描述符 来自套接字 我想读取一行 如何在 C 中做到这一点 如果您正在从 TCP 套接字读取数据 您无法假设何时到达行尾 因此你需要这样的东西 std string line char buf 1024 int n
  • 如何以编程方式向 iOS 地址簿添加“自定义标签”?

    在 iOS 地址簿中手动添加联系人的电话 IMS 时 您可以添加自定义标签 而不是 家庭 工作 其他 在 IMS 中 如何以编程方式在AddressBook中创建 自定义标签 我也有同样的问题 我找不到答案 所以我只是尝试猜测和检查方法 以
  • 获取matlab中fit函数的函数句柄并分配fit参数

    我正在将自定义函数拟合到我的数据中 获得拟合后 我想获得类似拟合函数的函数句柄之类的东西 包括设置为拟合找到的参数的参数 我知道我可以得到模型 formula fit 我可以通过以下方式获取参数 coeffvalues fit 但有没有什么
  • 为每个文件调用 Inno Setup AfterInstall 函数

    我想在安装文件夹后调用一个函数 但是InstallEnv函数似乎被调用了几次 也许每个文件都是文件夹 待确认 有没有办法在安装所有这些文件后只调用一次 我无法使用Run部分 因为我想用返回代码进行错误捕获 Source InputFiles
  • 使用 useRef 响应滚动导航

    我正在尝试制作一个单页应用程序 您单击链接 它会向下滚动到与菜单项对应的部分 我花了几天时间研究适合我标准的修复方案 不幸的是 我运气不佳 我的标准如下 无外部依赖 地址栏中必须包含 URL 以允许直接链接到特定部分 不能是 hacky 即
  • 关于默认捕获模式和 C++ lambda 表达式中的“this”的限制

    我想知道为什么 捕获默认值模式禁止this in 捕获列表 of C 拉姆达表达式 That is this error this OK 这是由 C 11 5 1 2 8 指定的 如果 lambda capture 包含捕获默认值 则 la
  • Firebase Functions 1.0.0 迁移:使用 Google 服务帐户凭据自定义initializeApp() 时出现问题

    我刚刚从 beta v0 9 1 更新到 v1 0 0 并遇到了一些初始化问题 根据迁移指南 https firebase google com docs functions beta v1 diff new initialization
  • 操作栏徽标左内边距

    操作栏在徽标左侧显示一个空格 我认为这个空间是为upindicator保留的 例如 我想给这个空间指定 20dp 的距离 我怎样才能做到这一点 我可以将图标的内边距设置为 0 但这不会消除徽标和屏幕左侧之间的空间 我尝试通过使用自定义布局来
  • SQL Server Express 2017 安装失败 [0x851A001A]

    安装 SQL Server 已经让我痛苦了好几个小时了 我无法得到任何工作 我设置了一个全新安装的 Windows Server 2016 虚拟机 并尝试安装 SQL Server Express 我按照建议将用户设置为网络服务here h
  • 为什么在未提供祖先的情况下查询不返回结果?

    为什么在未指定祖先时过滤器不起作用 无论祖先如何 它是否都应该适用于实体类型 我的用例 我已经设置了多个带有父键的实体 该键与另一个实体 主实体 相对应 以便我可以通过祖先 主实体键 获取子级 然而问题似乎是我无法再查询实体属性 除非我指定
  • Lucene 通配符匹配在化学符号上失败(?)

    使用 Hibernate 搜索注释 大部分只是 Field index Index TOKENIZED 我已经索引了一些与我的名为 Compound 的持久类相关的字段 我已经使用以下命令对所有索引字段设置了文本搜索MultiFieldQu
  • 当公式重新计算中仅特定 Excel 单元格发生更改时调用函数

    据我所知 Worksheet Calculate当工作表中任何单元格的值因公式重新计算而发生更改时调用 有没有办法让我只需要在公式重新计算中特定单元格发生更改时调用函数 要在更改特定单元格时发生某些事情 您需要在文件中嵌入相关的选择更改事件
  • 如何在 PowerShell 中正确/全局地对 UTF-8(无 BOM)文件进行分类? (到另一个文件)

    创建文件utf8 txt 确保编码为 UTF 8 无 BOM 将其内容设置为 In cmd exe type utf8 txt gt out txt 内容out txt is 在 PowerShell v4 中 cat utf8 txt g
  • 是否可以在 SAFEARRAY 中编组 ref 参数

    这是我的 C 服务器方法 public void Exec out int status string output status 3 Console WriteLine Exec 0 status output string Format
  • Android:如何通过 Http Post 将歌曲文件以及其他变量发送到服务器

    我要通过 HttpPost 向服务器发送歌曲文件 目前我正在使用此代码将数据发送到服务器 HttpPost postRequest new HttpPost try List
  • 定义 WCF 服务的 SLA

    我必须对一堆相互依赖的服务进行性能 负载测试 它们都使用 net tcp 并且大多数使用双工合约和内部队列 使用 lock syncRoot 手卷 POCO 队列类 if queue Empty Thread Wait 这是我想出的方法 确