Cloud Foundry 中的 JMS 消息传递

JMS Messaging in Cloud Foundry

JMS 不是部署在 Cloud Foundry 中的微服务的首选消息传递机制吗?如果是,能否详细说明为什么不是?

标准答案:Cloud Foundry 对您的应用程序如何通信没有意见。

出于多种原因,您可能希望使用 RESTful 点对点通信而不是使用消息代理。值得考虑的一件事是,您 运行 在 Cloud Foundry 上的应用程序将是短暂的,并且可能随时终止并重新创建。

消息队列技术的使用方式往往是人们对 "exactly once" 语义等事物做出假设,这在分布式环境中实际上是不可能保证的。分布式事务在分布式环境中也变得更加棘手,并且由于网络跃点更多,系统中的不确定性更大,出现故障的可能性也更大。

关于这个问题还有很多可以说的,但是您不会经常看到像 JMS 这样的事情与云原生应用程序一起讨论,因为这些技术通常与不适合云计算的设计模式相关联,甚至如果没有什么本质上使它们如此。