`

网络传输大数据时,压缩网络传输数据的解决方案

阅读更多

       服务系统优化到一定程度后,提高性能的瓶颈可能就在于数据的网络传输上。因为在一天的任何时间内,都有可能在客户端和服务器端之间传送成千上万的大数据,这需要占用很大的带宽,严重影响客户端的体验。 

       一种可能的解决办法,我们希望能够在把数据返回给客户端前,先压缩这些数据。如果传输的是文件,图片之类的,网络已经有了很多介绍。但是我们所需要的----对网络传输数据进行压缩。
    当使用ZipInputStream 和 ZipOutputStream压缩处理时,并没有强制你只能压缩文件。唯一要注意的是你必须把数据转换为字节数组的形式。

以下是创建一个RMI形式的套接字的简要步骤:
1、选择或者创建一个新的套接字.
2、创建一个服务器端的套接字.
3、创建一个RMIClientSocketFactory
4、创建一个RMIServerSocketFactory
5、创建一个继承了UnicastRemoteObjec的远程对象,从而使用新的factories.

根据这一大致的想法,我们来看每一步如何具体的实现.


步骤1: 创建ZipSocket;由于要进行Zip压缩,我们重新创建这样的套接字

import java.io.InputStream;
import java.io.OutputStream;
import java.util.zip.ZipInputStream;
import java.util.zip.ZipOutputStream;
import java.net.Socket;

public class ZipSocket extends Socket {

	private InputStream in;
	private OutputStream out;

	public ZipSocket() { super(); }

	public ZipSocket(String host, int port) throws IOException {
		super(host, port);
	}

	public InputStream getInputStream() throws IOException {
		if (in == null) {
			in = new ZipInputStream(super.getInputStream());
		}
	   return in;
	}

	public OutputStream getOutputStream() throws IOException {
		if (out == null) {
			out = new ZipOutputStream(super.getOutputStream());
		}
		return out;
	}

	public synchronized void close() throws IOException {
		OutputStream o = getOutputStream();
		o.flush();
		super.close();
	}

}



步骤2: 创建ZipServerSocket

import java.net.ServerSocket;
import java.net.Socket;
import java.io.IOException;

public class ZipServerSocket extends ServerSocket {

	public ZipServerSocket(int port) throws IOException {	
		super(port);
	}

	public Socket accept() throws IOException { 
		Socket socket = new ZipSocket();
		implAccept(socket);
		return socket;
	}

}



步骤3:创建ZipClientSocketFactory
客户端的factory的创建必须遵循以下的形式:

import java.io.IOException; 
import java.io.Serializable; 
import java.net.Socket; 
import java.rmi.server.RMIClientSocketFactory;

public class ZipClientSocketFactory implements RMIClientSocketFactory, Serializable { 

	public Socket createSocket(String host, int port) throws IOException {
		ZipSocket socket = new ZipSocket(host, port);
		return socket;
	}

}



步骤4:创建ZipServerSocketFactory

import java.io.IOException; 
import java.io.Serializable; 
import java.net.ServerSocket; 
import java.rmi.server.RMIServerSocketFactory; 

public class ZipServerSocketFactory implements RMIServerSocketFactory, Serializable { 

    public ServerSocket createServerSocket(int port) throws IOException { 
		ZipServerSocket server = new ZipServerSocket(port); 
		return server; 
    } 

}



步骤5: 创建一个继承了UnicastRemoteObjec的远程对象,从而使用新的factories

public class YourRMIObject extends UnicastRemoteObject {

	public YourRemoteObject( int port ) {
		super( port, new ZipClientSocketFactory(), new ZipServerSocketFactory() );
	}

	// 剩下的是你自己的程序实现

}



至此,你的通信数据已经得到了压缩。

 

分享到:
评论

相关推荐

    基于Greenplum Hadoop- 分布式平台的大数据解决方案15.定义数据库对象(5)-压缩存储.zip

    压缩的备份文件可以更快地传输和存储,但在恢复时同样需要消耗CPU资源进行解压。 通过上述讲解,我们可以理解在Greenplum中定义数据库对象并应用压缩存储的关键要点,以及如何根据实际业务需求进行策略选择。在...

    结构化大数据压缩挑战和解决方案 .pdf

    在大数据领域,结构化数据的压缩是一个至关重要的主题,尤其是在存储和传输大量数据时,压缩技术可以显著减少资源需求并提高效率。斯特凡·博特彻(Stefan Böttcher)在Paderborn大学的研究路径为我们揭示了这一...

    CSV大数据分批并压缩导出

    总的来说,CSV大数据分批并压缩导出是一种实用且高效的解决方案,特别适用于需要处理海量数据且内存资源有限的环境。它结合了分批处理的内存管理策略和压缩技术的空间优化,确保了大数据操作的可行性和性能。

    WebService传递大数据的实现

    在IT行业中,Web服务是不同系统...这样的解决方案在处理大数据时尤为有效,确保了Web服务在保持功能的同时,能够应对高负载和高并发的环境。通过阅读提供的项目文件,我们可以进一步了解如何在实际开发中应用这些技术。

    智慧工业大数据建设方案 智慧工厂整体解决方案.pptx

    首先,工业大数据解决方案包括数据采集、数据传输、大数据分析和智能化控制等多个层面。数据采集涉及设备传感器网络,如Zigbee/RS485、RFID/WiFi等通信协议,用于收集生产过程中关于原材料、成分、温度、湿度等各种...

    结构化大数据压缩挑战和解决方案(翻译).pdf

    大数据领域面临着众多挑战,尤其是在处理结构化数据时。斯特凡·Böttcher在讲座中探讨了这些挑战,包括存储、传播、信息提取、模式搜索、转换以及数据清洗。随着大数据量的增长,传统的算法往往无法在合理的时间内...

    基于ORACLE数据库传输表空间的数据压缩解决方案.pdf

    【Oracle 数据库传输表空间的数据压缩解决方案】 在Oracle数据库中,数据压缩是一种有效的节省存储空间的方法,尤其在处理大量数据时。本文针对某电信计费系统由于业务政策导致的数据量急剧增长,影响了系统的稳定...

    大数据压缩通信

    在IT行业中,大数据压缩通信是一项关键技术,特别是在网络通信和数据传输领域。面对日益增长的数据量,有效压缩数据能显著减少通信延迟,提高网络效率。在本文中,我们将深入探讨大数据压缩通信的原理、方法以及其在...

    面向轨迹大数据的压缩空间算法研究.pdf

    随着定位技术和移动技术的发展,轨迹数据,尤其是与运动物体相关的位置和时间信息,正在变得越来越丰富,因此,高效存储和传输这些数据是迫切需要解决的问题。 首先,本文提出了一种路网轨道压缩算法,其核心思想是...

    wcf大数据量传输(客户段->服务段 服务段->客户段)

    在.NET框架中,Windows Communication Foundation (WCF) 是一种用于构建和部署分布式应用程序的强大工具,它支持多种协议和数据交换格式。...因此,在设计解决方案时,需要权衡性能需求与开发和维护成本。

    提高WebService性能大数据量网络传输处理

    4. **网络传输优化**:通过使用DataSetSurrogate和Zip压缩,可以在不牺牲太多性能的情况下,处理和传输大数据集。这尤其适用于需要跨服务器或跨网络进行数据交换的Web服务场景。 5. **性能测试与比较**:在代码示例...

    大数据平台应用功能蓝图与数据治理解决方案.pptx

    ### 大数据平台应用功能蓝图与数据治理解决方案 #### 一层级:大数据平台应用功能蓝图概述 **背景:** 随着大数据技术的飞速发展,数据资源的增长速度达到了前所未有的水平,这为企业带来了全新的数据分析和挖掘...

    智慧工厂智慧工业大数据平台建设综合解决方案.pptx

    大数据平台采用列存储、数据压缩、SQL优化等技术,确保数据处理的高效性和准确性。同时,通过流处理技术如Storm和Spark Streaming,实现对实时数据的快速响应,满足工业环境中的高并发需求。 此外,工业大数据的...

    大模型和数据要素赋能智慧校园大数据平台解决方案.pptx

    ### 大模型和数据要素赋能智慧校园大数据平台解决方案 #### 引言 随着教育信息化的深入发展,智慧校园成为教育领域的重要课题。本方案旨在探讨如何利用大模型和数据要素来构建智慧校园大数据平台,从而实现校园...

    E展区:联想SAP HANA大数据基础架构解决方案

    《E展区:联想SAP HANA大数据基础架构解决方案》一文详细介绍了联想针对这一趋势所提供的解决方案——SAP HANA大数据基础架构解决方案,该方案旨在通过内存计算技术提高数据处理速度,为企业提供实时决策支持。...

    云数据采集中心及大数据计算平台建设专业方案.docx

    《云数据采集中心及大数据计算平台建设专业方案》 在当今信息化时代,云数据采集中心与大数据计算平台的建设已经成为企业提升竞争力的关键因素。本文将深入探讨这两个领域,旨在为专业人员提供一套全面且详尽的建设...

    大数据融合基础架构解决方案.pptx

    大数据融合基础架构解决方案主要关注如何应对日益增长的海量数据处理需求,通过技术创新克服传统数据中心基础设施的局限性。在当前环境中,大数据的快速增长给IT管理人员带来了挑战,他们需要找到能够灵活扩展并满足...

    前端数据可视化大屏-echarts数字大屏模版-某公司数据分析大数据监控-直接可对接数据

    总结而言,"前端数据可视化大屏-echarts数字大屏模版-某公司数据分析大数据监控"是一个集数据处理、分析和展示于一体的解决方案。它利用Echarts的强大功能,实现了直观、动态的数据可视化,帮助企业快速理解和响应...

Global site tag (gtag.js) - Google Analytics