什么是MQ,它们与Web服务有什么不同?

3

我最近开始研究MQ,有一些非常基本的问题:

  1. 如何决定使用Web服务还是MQ?

  2. 在选择Web服务或MQ时,应考虑数据传输的性质。如果您需要进行实时通信,则MQ可能更适合,因为它可以保证消息传递的可靠性。而如果您需要处理复杂的业务逻辑,那么Web服务可能更适合。

  3. MQ只能发送字符串消息还是也能与Java对象一起工作?

  4. MQ不仅可以发送字符串消息,还可以与Java对象一起工作。这使得在处理更复杂的数据类型时更加方便。

  5. 客户端和服务器的位置有哪些约束条件?还是像Web服务一样,客户端/发布者可以位于任何地方,而服务器/接收者应该位于公共网络上(假设它是公共Web服务)?

  6. 与Web服务类似,MQ没有严格的位置限制。客户端或发布者可以位于任何地方,而服务器或接收者也可以在任何地方。这是MQ灵活性的一个很好的例子,它可以在各种不同的环境中使用。

2个回答

5
  1. 消息队列主要用于异步处理,在这种情况下您不必等待响应。 虽然您可以阻止调用者直到获得响应,但这通常不是MQ的目的。 只有在用户等待输出的情况下才会使用它。 Web服务则相反。 您接收请求,处理它并在有限时间内返回它。 调用者通常会阻塞,直到收到响应。
  2. 您可以向MQ发送字符串、对象、映射和字节数组。
  3. 没有关于MQ放置的限制。 与Web服务一样,它们可以放置在任何地方,并且您可以从队列中写入和读取。

1
回复:#2,实际上你可以发送任何东西到MQ代理。它只是一串字节流,因此你可以传输任何可以序列化为字节的东西(即任何东西)。 - Brian Kelly

0

3
“MQ是IBM的产品”这个说法并不准确,IBM有一个MQ产品,还有许多其他供应商。 - Jerry Tian

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接