C# 消息队列和服务总线的消息粒度
我正在开发一个应用程序,它可以在客户机上以相当紧密的循环生成数千条消息,并在服务器上进行处理。事件链类似于:C# 消息队列和服务总线的消息粒度,c#,message-queue,servicebus,C#,Message Queue,Servicebus,我正在开发一个应用程序,它可以在客户机上以相当紧密的循环生成数千条消息,并在服务器上进行处理。事件链类似于: 客户端处理项目,并将其放入本地队列 本地队列处理接收消息并调用web服务 Web服务在服务器上的服务总线中创建消息 服务总线将消息处理到数据库 其思想是所有通信都是异步的,因为web服务将有许多客户端。我知道MSMQ可以直接做到这一点,但我们并不总是在客户机上有这样的管理功能来设置安全性等 我的问题是关于每个阶段消息的粒度。最简单的方法是,在客户机上处理的每个项目都会生成一条客户机消息/
但是,如果没有消息处理的一些细节,就很难做到具体,因为固定的开销,除了一般建议不要使用聊天界面之外。先测量,然后优化。除非你能做出一个粗略的估计,表明最简单的解决方案会产生不可接受的高负载,否则你可以尝试一下,建立良好的监控测量,看看它是如何执行和扩展的然后开始考虑批量数量和地点
当然,这种方法要求您能够在部署后更改web服务接口,因此您需要一种版本控制方法来处理可能尚未重新设计的客户端,同时支持多个WS版本。但不管怎样,不考虑版本控制几乎总是将您困在次优接口中 先测量,后优化。除非你能做出一个粗略的估计,表明最简单的解决方案会产生不可接受的高负载,否则你可以尝试一下,建立良好的监控测量,看看它是如何执行和扩展的然后开始考虑批量数量和地点
当然,这种方法要求您能够在部署后更改web服务接口,因此您需要一种版本控制方法来处理可能尚未重新设计的客户端,同时支持多个WS版本。但不管怎样,不考虑版本控制几乎总是将您困在次优接口中 提取消息队列 并具有可交换的消息队列后端。通过这种方式,你可以测试许多后端,如果你选择了错误的后端或喜欢新出现的后端,你可以轻松地为自己纾困。消息传递的开销通常是打包和处理请求。不同的系统设计用于不同级别的流量和随时间变化的不同对称性 如果你抽象出基本的特征,你可以根据你的需求变化,或者更准确地评估,来交换力学 您还可以在收件人的压力发生变化时,在应用程序或消息路由的不同部分转换来自不同队列类型的消息,因为收件人的压力在更高级别上进行处理,例如1000:1/s与10:1/s
祝您好运提取消息队列 并具有可交换的消息队列后端。通过这种方式,你可以测试许多后端,如果你选择了错误的后端或喜欢新出现的后端,你可以轻松地为自己纾困。消息传递的开销通常是打包和处理请求。不同的系统设计用于不同级别的流量和随时间变化的不同对称性 如果你抽象出基本的特征,你可以根据你的需求变化,或者更准确地评估,来交换力学 您还可以在收件人的压力发生变化时,在应用程序或消息路由的不同部分转换来自不同队列类型的消息,因为收件人的压力在更高级别上进行处理,例如1000:1/s与10:1/s 祝你好运