我查了一下,它用于在两个系统之间发送消息。
但为什么?为什么不直接使用数据库
?
一定有一些 ActiveMQ
具有 数据库
没有的功能吗?
最佳答案
它用于在两个分布式进程之间进行可靠的通信。
是的,您可以将消息存储在数据库中以在两个进程之间进行通信,但是,一旦收到消息,您就必须删除
该消息, 这意味着每条消息都有一行 INSERT
和 DELETE
。
当您尝试扩展每秒传输数千条消息时,数据库往往会崩溃。
另一方面,像 ActiveMQ
这样的面向消息的中间件 [MOM] 就是为了处理这些用例而构建的。
他们假设健康系统中的消息将很快被删除,并且可以进行优化以避免开销。
它还可以将消息推送给消费者,而消费者不必通过执行 SQL 查询来轮询新消息。
这进一步减少了处理发送到系统的新消息所涉及的延迟。
关于activemq - ActiveMQ 的用途是什么 - 我们可以使用数据库应用消息传递概念吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12805377/