MJK*_*MJK 54 nservicebus message-queue rabbitmq apache-kafka
我正在尝试学习消息传递系统.我发现RabbitMq和NServiceBus在很少的地方一起使用.我的问题是
Der*_*ley 100
多年前,我问自己同样的问题.我看着NServiceBus使用不同的消息队列,但问题是一样的.
我决定不使用NServiceBus.
6个月后,我意识到我已经重建了NServiceBus所做的一半......只是更糟糕.
你为什么需要使用带有RabbitMQ的NServiceBus的问题,就是问为什么你需要.NET Framework与ASP.NET MVC,WinForms,或XAML,或.NET附带的任何内置库,当你有公共语言运行时.
毕竟,CLR不应该足够吗?
当然不是.拥有代码可以执行的运行时 - MSIL解释器和执行引擎 - 还不足以提高工作效率.
当然,您可以编写获取输入并生成输出的命令行应用程序.但是尝试在没有公共库的情况下构建一个真正的应用程序 - 没有内置的SQL Server驱动程序; 没有任何第三方控件或库.构建不带System.Windows命名空间的Windows桌面应用程序.
您需要这些库为您提供集合,数据库访问,窗口对象和UI控件.
同样,RabbitMQ为您提供了入门和工作所需的一切,但还不足以保持生产力.
当然,您可以获取RabbitMQ的.NET驱动程序并开始生成和使用消息.
有一段时间,这将工作得很好.
很快,您会发现自己在驱动程序周围创建了一个包装器,因此您可以减少需要编写的代码量.
然后你会发现自己需要处理ack vs nack,你将为此创建一个简单的API.
然后,对nack调用会弹出对死信队列的需求,你可以将它包装在你的API中 - 当然,与rabbitmq驱动程序相比,这简化了.
最终,您将需要处理有害消息 - 格式错误并导致异常的消息.再一次,您不想为此编写一次性代码,因此您将编写一个库来处理它.
这个清单一直在继续.
从现在起6个月后,你会发现自己正在使用一个半写的,几乎没有指定的,不可测试的库,它只模仿NServiceBus(或MassTransit或你选择的任何其他服务总线库)的价值和功能.
我不会说你必须使用NServiceBus.我会说你应该学习RabbitMQ如何工作,没有它.但是,一旦超越了发送和接收消息的基础知识,NServiceBus和其他服务总线实现的价值就会非常迅速地变得非常明显.
| 归档时间: |
|
| 查看次数: |
9838 次 |
| 最近记录: |