Вопрос

Задний план

У меня есть два сервиса, которые должны общаться друг с другом через очередь сообщений. Одним из них является устаревшая служба, написанная в PHP, а другой - в Java. Скоро, чем позже, служба PHP будет переписана в Java. Текущий способ, которым они общаются друг с другом, состоит в том, чтобы написать в общей базе данных, которую другие опросы сервисов. Это то, что я пытаюсь сбросить и заменить через очередь сообщений.

Проблема

Связь, над которым я работаю прямо сейчас, от службы PHP к службе Java. Необходимо отправить относительно сложный объект (строки и целые числа и списки и карты строк и целых чисел). В идеале решение будет работать в PHP и идеально подходит в Java, так как это будет наследие этого проекта.

Возможные решения

    1.
Это было полезно?

Решение

Решение, которое я придумал, - это отменить сообщения от PHP / STOPH с помощью jms-json-object преобразование. Сообщения специально созданы JSON такими, что когда они находятся в режиме с использованием Java readObject, они могут быть восстановлены в полный объект, используя Xstream.. Отказ Эта реконструкция происходит внутри Activemq. и я просто должен убедиться, что необходимый псевдонимы а также преобразователи на месте. Когда мы наконец заменим компонент PHP с Java, отправка сообщения будет просто вопрос использования writeObject.

Другие советы

Для PHP есть клиент STOMP,

http://pecl.php.net/package/stomp.

На мой взгляд, вы должны поддерживать составные взаимодействия без конкретных реализаций. ActiveMQ Buggy, и многие системы удалили его в пользу Rabbitmq или Sun OpenMQ. Вам необходимо избегать кодирования процедуры «Отправить сообщение» в PHP, создайте вместо этого сервлета «SendMessage» и используйте CURL, чтобы опубликовать JSON-кодированное сообщение. Затем сервлет будет использовать завод соединения и т. Д. С небольшим накладным расходом вы освободите компонент PHP из любого конкретного кода MQ-сервера. Вы можете использовать TextMessage с загрузочным нагрузкой JSON, кодируя и легко декодируйте его с помощью Jackson.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top