2015-10-14 169 views
1

我想通过TCP传输Java POJO。通过副本tcp套接字发送Java对象

让A和B成为参与者,C1是它们之间的主要连接,C2是C1失败时使用的另一个连接。

我有两种对象:可靠和不可靠。

当C1断开连接时,每个未传送的对象和新的对象应通过C2发送。如果C1再次建立它将是主要连接,数据将流过C1。

参与者可能需要识别重复的对象。

我不太了解ESB。我看了一下Apache Camel。

哪些技术可以解决上述问题?例如骆驼可以做到吗?它是否过度拥挤?

哪个标签最能满足上面问题的流行语?我要求更多的使用Google。

谢谢。

+0

这听起来好像你正在寻找Tomcat集群,这确实这个最适合你。 – EJP

回答

1

看看他们为之设计的消息代理,如Apache ActiveMQ或Apache ActiveMQ Artemis。它们都允许插入自定义协议来将数据作为Java对象,JMS,Stomp,AMQP等进行传输。

由于您需要Java POJO,因此JMS可以做到这一点,因为它支持javax.jms.ObjectMessage作为传输。请记住,使用POJO是系统之间的紧密耦合,并且您通常需要在它们之间具有相同的类(例如Java JAR),以便POJO可以作为Java POJO通过线路串行化/反序列化回JVM。

Apache Camel使用JMS组件可以使JMS组件更加容易。

+0

我非常同意克劳斯对你的TCP传输选择。我想推荐使用json格式来传输你的对象,因为它的重量要轻很多,然后基于文本为你打开大多数的传输选项。你可以很容易地用Gson将你的对象转换成两行。 Gson myConverter = new Gson(); String myJsonObject = myConverter.toJson(myObjectInstance); –