Asynchronous 为什么以及何时应该使用JMS或AMQP之类的异步消息传递?

Asynchronous 为什么以及何时应该使用JMS或AMQP之类的异步消息传递?,asynchronous,jms,amqp,Asynchronous,Jms,Amqp,从概念上讲,什么时候应该使用异步消息传递?为什么?难道我们不能将消息内容存储到某个数据库存储中,并实际运行一个计划作业来处理这些消息吗 例如,使用JMS或AMQP会给系统开发带来真正的优势吗?有没有办法简化这种设计并获得相同的结果?简而言之,是的,如果DB在速度和其他资源(如CPU/RAM)方面满足您的需要,您可以使用DB。与任何专门的解决方案一样,JMS允许您最大限度地有效地解决特定类别的任务—异步消息传递 此外,例如,使用JMS,您可以拥有某种“开箱即用”的可伸缩性解决方案:您可以从不同的服

从概念上讲,什么时候应该使用异步消息传递?为什么?难道我们不能将消息内容存储到某个数据库存储中,并实际运行一个计划作业来处理这些消息吗


例如,使用JMS或AMQP会给系统开发带来真正的优势吗?有没有办法简化这种设计并获得相同的结果?

简而言之,是的,如果DB在速度和其他资源(如CPU/RAM)方面满足您的需要,您可以使用DB。与任何专门的解决方案一样,JMS允许您最大限度地有效地解决特定类别的任务—异步消息传递

此外,例如,使用JMS,您可以拥有某种“开箱即用”的可伸缩性解决方案:您可以从不同的服务实例订阅来自单个队列的事件,因此JMS将根据事件处理器服务的性能自动执行负载平衡


除了队列,这里还有另一个有用的对象-主题。它们对于同时向多个订阅者广播事件非常有用,因此您需要自己实现它。

很快,是的,如果DB在速度和其他资源(如CPU/RAM)方面满足您的需要,您可以使用DB。与任何专门的解决方案一样,JMS允许您最大限度地有效地解决特定类别的任务—异步消息传递

此外,例如,使用JMS,您可以拥有某种“开箱即用”的可伸缩性解决方案:您可以从不同的服务实例订阅来自单个队列的事件,因此JMS将根据事件处理器服务的性能自动执行负载平衡


除了队列,这里还有另一个有用的对象-主题。它们对于同时向多个订阅者广播事件非常有用,因此您需要自己实现它。

在这种每秒有数千个请求的情况下,数据库是否意味着一种危险的方法?大多数/所有消息传递提供程序都有某种持久消息的数据库作为支持。但你们可以免费获得很多功能。它针对特定的任务进行了优化。是的-您可以构建自己的消息传递,但这将是重新发明轮子。在每秒有数千个请求的情况下,数据库是否意味着一种危险的方法?大多数/所有消息传递提供程序都有某种持久消息的数据库作后盾。但你们可以免费获得很多功能。它针对特定的任务进行了优化。是的-你可以建立自己的消息传递,但那将是重新发明轮子。