不喜欢用 MQ。
如果是同一个系统内的不同模块,可以用数据库表,来传递消息;
如果是不同系统间数据接口,可以用 webservice(同步,现在好像是 gRPC 有点热)、SFTP/FTP协议(异步) 进行数据交换。
看不出有任何使用 MQ 的需要。除非甲方指定,看在钱的面子上,勉为其难去用一下。
MQ 是异步通讯技术,与之相对的是 SFTP/FTP 。相比较而言,MQ 毫无优势。
速度、简易性、稳定性、标准化等各方面,MQ 完败。
SFTP/FTP 也能轻松削峰与限流(MQ 介绍文档常说的优点)。发送方快速发,接收方慢速处理、即时或滞后处理,都可以。
使用接收方webservice,也可以收到数据后先保存在接口表中,后慢速处理。整体也相当于异步了,也能削峰与限流。
MQ 起初就是几个 Java 软件厂商弄出来,只为卖钱。虽然后来微软与开源社区跟进,微软甚至把它做进 Windows 自带组件,实际上没有必要用这种技术。
微软现在也不怎么提了。Java /C#书籍提的也少了。
但执迷于其中的人,仍旧不少,特别是 Java 圈的。而 C# 圈的基本不用它。
我认为学习更多的开发语言和进行技术选择的交叉比较是非常有帮助的。
[En]
I think it is very helpful to learn more development languages and make cross comparisons for technology selection.