2015-10-14 4 views
1

Я хочу передать Java POJO через TCP.Отправка объектов Java поверх реплик tcp сокетов

Пусть A и B - участники, а C1 - основное соединение между ними, а C2 - другое соединение, которое будет использоваться, если C1 терпит неудачу.

У меня есть два вида объектов: надежный и ненадежный.

Когда C1 отсоединяется, каждый неотправленный объект и новые объекты должны быть отправлены через C2. И если C1 будет установлен снова, это будет основное соединение, данные будут перетекать через C1.

Участникам может потребоваться распознать повторяющиеся объекты.

Я не так много знаю о ESB. Я немного посмотрел на Apache Camel.

Какие технологии существуют для решения проблемы выше? например может ли Camel это сделать? Является ли это чрезмерной лихорадкой?

Какие теги, ключевые слова лучше всего подходят для решения проблемы выше? Я попросил больше искать.

Спасибо.

+0

Это звучит так, как будто вы ищете Tomcat кластеризации, который делает большую часть этого для вас. – EJP

ответ

1

Взгляните на брокеры сообщений, которые они предназначены для этого, такие как Apache ActiveMQ или Apache ActiveMQ Artemis. Они оба позволяют подключать пользовательские протоны для передачи данных в виде объектов Java, JMS, Stomp, AMQP и т. Д.

Как вы хотите Java POJO, тогда JMS может это сделать, поскольку он поддерживает javax.jms.ObjectMessage в качестве транспорта. Имейте в виду, что использование POJO - это тесная связь между системами, и вам часто нужно иметь одинаковые классы (например, Java JAR) между ними, поэтому POJO могут быть сериализованы/несериализованы по каналу обратно в JVM как Java POJO.

Apache Camel работает с JMS, используя компонент jms, который может сделать это проще.

+0

Я полностью согласен с Клаусом в ваших вариантах транспорта TCP. Я бы рекомендовал использовать json-формат для транспортировки ваших объектов, поскольку он будет намного более легким, а затем текстовым, открывающим для вас большинство вариантов транспорта. Вы можете легко преобразовать свой объект в 2 строки с помощью Gson. Gson myConverter = новый Gson(); String myJsonObject = myConverter.toJson (myObjectInstance); –