【问题标题】:JMS Messaging in Cloud FoundryCloud Foundry 中的 JMS 消息传递
【发布时间】:2016-10-11 13:26:51
【问题描述】:

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

【问题讨论】:

    标签: spring-boot cloud-foundry pcf


    【解决方案1】:

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

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

    消息队列技术的使用方式往往是人们对诸如“恰好一次”语义之类的事物做出假设,而这在分布式环境中在物理上是无法保证的。分布式事务在分布式环境中也变得更加棘手,并且由于网络跳数更多,系统中的不确定性更大,并且出现故障的可能性增加。

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

    【讨论】:

    • 感谢@EngineerBetter。然而,我确实看到了在 PCF 市场中内置的 rabbitmq,并且也看到了部署在 CF 中的应用程序使用 Kafka。您提到的内容不也适用于这些吗?云原生应用从 JMS 迁移到 AMQP 有什么优势吗?
    • Pivotal 确实提供了 RabbitMQ(我在该产品上工作了一段时间),并且使用 Kafka 进行摄取是一种常见的模式。使用 Kafka 进行微服务间的通信是我不经常看到的事情,有人可能会争辩说 RabbitMQ 支持是因为人们要求它,而不是因为它对普遍的微服务来说是一个好主意。这是一个广泛的话题。就我个人而言,我喜欢消息代理的时间解耦,我认为 大多数 人可以摆脱它们,而不是 Netflix 实现的复杂安排。
    • 感谢@EngineerBetter!
    猜你喜欢
    • 2011-02-26
    • 2011-01-29
    • 2016-02-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-07-18
    • 2012-01-05
    • 1970-01-01
    相关资源
    最近更新 更多