Обмен сообщениями JMS в Cloud Foundry

#spring-boot #cloud-foundry #pcf

#весенняя загрузка #cloud-foundry #pcf

Вопрос:

Разве JMS не является предпочтительным способом обмена сообщениями для микросервисов, развернутых в Cloud foundry? Если да, не могли бы вы пояснить, почему это не так?

Ответ №1:

Канонический ответ: Cloud Foundry не имеет мнения о том, как ваши приложения взаимодействуют.

Существует множество причин, по которым вы можете захотеть использовать RESTful двухточечную связь вместо использования брокеров сообщений. Одна из вещей, которую стоит учитывать, это то, что приложения, которые вы запускаете в Cloud Foundry, будут эфемерными и могут быть завершены и созданы заново в любой момент.

Технологии очереди обмена сообщениями, как правило, используются таким образом, что люди делают предположения о таких вещах, как семантика «ровно один раз», которые физически невозможно гарантировать в распределенной среде. Распределенные транзакции также становятся более сложными в распределенной среде, а поскольку в сети больше переходов, в системе больше неопределенности и повышается вероятность сбоя.

По этому поводу можно было бы сказать гораздо больше, но вы не часто видите, чтобы такие вещи, как JMS, обсуждались с облачными приложениями, потому что эти технологии часто ассоциируются с шаблонами проектирования, которые не подходят для облачных вычислений, даже если нет ничего, что по сути делает их таковыми.

Комментарии:

1. Спасибо @EngineerBetter. Однако я вижу, что rabbitmq встроен в рынок PCF, а также видел, что приложения, развернутые в CF, используют Kafka. Разве то, что вы упомянули, не применимо и к ним? Есть ли какое-либо преимущество перехода от JMS к AMQP для облачных приложений?

2. Pivotal предлагает RabbitMQ (я некоторое время работал над этим предложением), и использование Kafka для приема является распространенным шаблоном. Однако я не часто вижу использование Kafka для межмикросервисного взаимодействия, и можно утверждать, что поддержка RabbitMQ существует потому, что люди просили об этом, а не потому, что это отличная идея для микросервисов повсеместно. Это широкая тема. Лично мне нравится временное разделение брокеров сообщений, и я думаю, что большинству людей это сойдет с рук, а не сложная компоновка реализаций Netflix.

3. Спасибо @EngineerBetter!