我有一个遗留系统,服务器在几周内会慢慢更新。层次结构是这样的:
1
2
3 4 5
1 is the client pc
2 is a master server
3 4 and 5 are servers across the country.
目前所有这些都以未压缩的格式来回发送 POJO(普通的旧 java 对象)。想想 OjbectOutputStream() 等。
我想压缩通过线路序列化的数据,但这样做的方式是只压缩从查询中接收到的数据。向下发送的数据是微不足道的(查询过滤器数据)。
只有客户端 #1 和主服务器 #2 会立即更新。服务器#3、#4 和#5 可以相互间隔数周或数月进行更新。我需要一种方法让服务器#2 能够检测从#3、#4 或#5 返回的流是否被压缩并相应地处理它(当它们升级时)。
-编辑- 对于服务器#3、#4 和#5,解决方案必须不显眼。这些服务器没有发生异常时重新发送数据的概念。
以下是#2 用于与#3、#4 或#5 通信的代码示例:
// Set the content type to be application/x-java-serialized-object
connection.setRequestProperty("Content-Type", "application/x-java-serialized-object");
setupHeaderAttributes(getHttpHeaders());
setupSessionCookies(getHttpHeaders());
// Load/add httpHeaders
addHeadersToConnection(connection, getHttpHeaders());
// Write the serialized object as post data
objectoutputstream = new ObjectOutputStream(connection.getOutputStream());
objectoutputstream.writeObject(obj);
objectoutputstream.flush();
// Get ready to receive the reply.
inputstream = connection.getInputStream();
setHttpStatus(connection.getResponseCode());
这可能吗?感谢您的时间。
-丹尼斯