biztalk - 在高音量期间禁用/阻止 BizTalk WCF 发送端口
问题描述
我有一个非关键/可选的 WCF 发送端口,它在正常操作期间很有用,但需要在一定的消息吞吐量下自动禁用。当连接的系统执行数据加载(每小时 100 000 条消息或更多)时,就会出现这种高容量。不应保留或处理来自大量时间的消息,而应完全丢弃。一旦音量降至阈值水平以下,发送端口应恢复处理/发送消息。该应用程序不使用编排。到目前为止,我唯一的想法是使用自定义管道组件和类似 redis 的东西来跟踪吞吐量,然后基于此删除或发送消息。这似乎不是一个很好的hack。
我的问题是:使用 WCF 适配器(或其他东西)是否有一种简单的方法可以根据当前的消息吞吐量删除或发送消息?
解决方案
在这种情况下,我通常做的是将传入的消息保存到数据库表中,然后有一个接收位置来轮询该表以处理消息。因此,您可以有一个由该轮询接收位置调用的存储过程,如果有太多消息未决,请删除它们。如果您确实想要处理所有消息,或者如果您想要批量发送消息,则此方法也适用。
注意:在这种情况下,不要设置 Poll while messages found = True。
推荐阅读
- redis - 集群中的 Redis Gears 事件
- c# - xUnit InlineData 意外结果
- vue.js - 如何使用选定的值初始化选择?
- jsf - 如何将 p:photoCam 更新到最新版本但将我的 primefaces 保留在 6.1.RC2 中?
- javascript - 如何为 django 中的用户从本地目录制作文件上传器(.jpg、.mp3、.pdf 等)
- css - 为高度设置的 SASS 变量(如果高度)
- powerbi - 如何根据日期切片器但来自 2 个日期列显示数据
- smalltalk - 如何在 Visual Works 中获取 CPointer 的值
- javascript - 在 React 中获取数据
- unit-testing - 您如何在 aws-cdk 单元测试中模拟现有的 vpc?