gpt4 book ai didi

wcf - BizTalk:如何限制 wcf 服务的连接数?

转载 作者:行者123 更新时间:2023-12-04 19:24:25 24 4
gpt4 key购买 nike

我开发了一个 BizTalk 应用程序,它接收一个包含一堆消息的文件作为输入。我使用 BizTalk XML 反汇编器组件在单独的消息中“拆分”文件。这些消息中的每一个都由一个业务流程从 MessageBox 中提取,该业务流程转换消息并调用 wcf 服务。

我现在遇到的问题是每批包含 1000 条消息,而这 1000 条消息似乎都在一次调用 wcf 服务。 wcf 服务被这些消息“轰炸”,并被配置为仅并行处理 10 条消息(每次调用都必须处理数据并将数据放入数据库)并将一堆“Too Busy”异常返回给 BizTalk。我将 wcf 适配器配置为在 1 分钟后再次重试连接。

最终结果是 BizTalk 首先对消息进行 debatches,然后用所有 1000 条消息轰炸 wcf 服务,得到一堆“Too busy”异常,然后等待什么都不做,直到 1 分钟过去,然后再次轰炸它,依此类推在。

如果我可以将 BizTalk 配置为打开与该特定 wcf 服务的最多 10 个连接,则处理效率会更高,但据我所知,这是不可能的。 (wcf 服务配置为使用 net.tcp。)

我确实已经以几种不同的方式尝试了主机的 throttle 设置,但要么没有帮助,要么使应用程序变得无法忍受。此外,BizTalk 中的 throttle 似乎是以这样一种方式实现的:它首先轰炸服务,然后注意到它正在轰炸,然后等待一段时间什么都不做,然后解除 throttle 并再次开始轰炸。细流请求/消息似乎要好得多,以便它们在时间上更均匀地分布。例如,我想将 WCF 适配器配置为每秒最多接收 4 条消息。现在可能的 throttle 是这样说的:在 5 秒的滑动窗口上,如果有超过 20 条消息,我想激活 throttle 。但这不一样,因为它允许“爆发”效果。

任何想法如何提高吞吐量?

最佳答案

使用 BizTalk singleton pattern .这是丑陋的。但是 BizTalk 优雅的架构在遇到现实世界时会产生丑陋。

关于wcf - BizTalk:如何限制 wcf 服务的连接数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3591283/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com