客户端以及数据通信方法技术

技术编号:12053958 阅读:94 留言:0更新日期:2015-09-16 18:06
本发明专利技术提供了一种客户端以及数据通信方法,属于数据通信领域,所述方法包括:客户端建立守护线程;客户端获得用于连接服务器端的连接对象;客户端指示连接对象中的非阻塞通道在守护线程中的选择器中注册;客户端指示选择器对选择器中已经注册的非阻塞通道的可读和可写操作进行轮询监听;如果非阻塞通道的可读操作可以执行,则客户端执行非阻塞通道的读操作,如果非阻塞通道的可写操作可以执行,则客户端执行非阻塞通道的写操作。本方法改善了数据通信系统中的一个子系统作为RPC客户端与另一个作为服务器端的子系统之间通信时,采用的是阻塞通信模式,但阻塞式通信的时间等待影响了子系统之间的通信效率,降低了系统的性能的问题。

【技术实现步骤摘要】

本专利技术涉及数据通信领域,具体而言,涉及一种。
技术介绍
HBase系统已成为大数据存储、分析和处理的关键部件,对其性能的优化是当前产业界和学术界的一个研宄热点之一。HBase系统包括多个子系统,多个子系统之间的通信采用远程过程调用通信机制。当HBase系统中的一个子系统作为RPC客户端与另一个作为服务器端的子系统之间通信时,采用的是阻塞通信模式,但阻塞式通信的时间等待影响了子系统之间的通信效率,降低了 HBase系统的整体性能。
技术实现思路
本专利技术的目的在于提供一种,以改善HBase系统中的一个子系统作为RPC客户端与另一个作为服务器端的子系统之间通信时,采用的是阻塞通信模式,但阻塞式通信的时间等待影响了子系统之间的通信效率,降低了系统的性能的问题。本专利技术是这样实现的:第一方面,本专利技术实施例提供了一种数据通信方法,应用于数据通信系统,所述数据通信系统包括客户端以及服务器端,所述数据通信方法包括:所述客户端建立守护线程,建立的所述守护线程在后台运行;所述客户端获得用于连接所述服务器端的连接对象;所述客户端指示所述连接对象中的非阻塞通道在守护线程中的选择器中注册;所述客户端指示所述选择器对所述选择器中已经注册的所述非阻塞通道的可读和可写操作进行轮询监听;如果所述非阻塞通道的可读操作可以执行,则所述客户端执行所述非阻塞通道的读操作,如果所述非阻塞通道的可写操作可以执行,则所述客户端执行所述非阻塞通道的写操作。结合第一方面,本专利技术实施例提供了第一方面的第一种可能的实施方式,其中,所述客户端设置有用于存储所述连接对象的连接对象缓存容器,所述客户端获得用于连接所述服务器端的连接对象,包括:所述客户端查询所述连接对象缓存容器中是否有已建立的所述连接对象;如果所述连接对象缓存容器为空,所述客户端建立新的连接对象,通过所述新的连接对象采用非阻塞的方式连接所述服务器端;所述客户端获得所述新的连接对象。结合第一方面的第一种可能的实施方式,本专利技术实施例提供了第一方面的第二种可能的实施方式,其中,所述客户端采用非阻塞的方式连接所述服务器端,包括:在客户端采用非阻塞的方式连接服务器端的过程中,当所述客户端与所述服务器端连接失败时,所述客户端以预设的阈值时间为间隔重新以非阻塞的方式连接所述服务器端。结合第一方面或第一方面的第一种可能的实施方式或第一方面的第二种可能的实施方式,本专利技术实施例提供了第一方面的第三种可能的实施方式,其中,所述客户端建立守护线程,建立的所述守护线程在后台运行,包括:所述客户端采用懒加载的模式建立守护线程。第二方面,本专利技术实施例提供了一种客户端,应用于所述数据通信系统,所述数据通信系统包括服务器端,所述客户端设置包括:守护线程建立单元,用于建立守护线程,建立的所述守护线程在后台运行;连接对象获得单元,用于获得用于连接所述服务器端的连接对象;非阻塞通道注册单元,用于指示所述连接对象中的非阻塞通道在守护线程中的选择器中注册;非阻塞通道轮询单元,用于指示所述选择器对所述选择器中已经注册的所述非阻塞通道的可读和可写操作进行轮询监听;数据读操作单元,用于如果所述非阻塞通道的可读操作可以执行,执行所述非阻塞通道的读操作;数据写操作单元,用于如果所述非阻塞通道的可写操作可以执行,执行所述非阻塞通道的写操作。结合第二方面,本专利技术实施例提供了第二方面的第一种可能的实施方式,其中,所述守护线程建立单元,包括:线程懒加载子单元,用于采用懒加载的模式建立守护线程。结合第二方面,本专利技术实施例提供了第二方面的第二种可能的实施方式,其中,所述数据通信系统设置有接对象容器,所述连接对象获得单元,包括:连接对象缓存容器遍历子单元,用于查询所述连接对象缓存容器中是否有已建立的连接对象;连接建立子单元,用于如果所述连接对象缓存容器为空,建立新的连接对象,通过所述新的连接对象采用非阻塞的方式连接所述服务器端。结合第二方面的第二种可能的实施方式,本专利技术实施例提供了第二方面的第三种可能的实施方式,其中,所述连接建立子单元,包括重连接子单元,用于在客户端采用非阻塞的方式连接服务器端的过程中,当所述客户端与所述服务器端连接失败时,以预设的阈值时间为间隔重新以非阻塞的方式连接所述服务器端。本专利技术实施例提供的,通过所述客户端指示所述连接对象中的非阻塞通道在守护线程中的选择器中注册后,所述选择器对所述选择器中已经注册的所述非阻塞通道的可读和可写操作进行轮询监听的方式,使得如果所述非阻塞通道的可读操作可以执行,则所述客户端执行所述非阻塞通道的读操作,如果所述非阻塞通道的可写操作可以执行,则所述客户端执行所述非阻塞通道的写操作,从而使得所述所述客户端与所述服务器端之间实现了非阻塞的通信方式,极大的提升了通信效率,改善了数据通信系统中的一个子系统作为RPC客户端与另一个作为服务器端的子系统之间通信时,采用的是阻塞通信模式,但阻塞式通信的时间等待影响了子系统之间的通信效率,降低了系统的性能的问题。【附图说明】图1示出了本专利技术实施例提供的数据通信系统的结构框图;图2示出了本专利技术实施例提供的数据通信方法的流程图;图3示出了本专利技术实施例提供的一种客户端的结构框图;图4示出了本专利技术实施例提供的另一种客户端的结构框图。【具体实施方式】下面将结合本专利技术实施例中附图,对本专利技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本专利技术一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本专利技术实施例的组件可以以各种不同的配置来布置和设计。因此,以下对在附图中提供的本专利技术的实施例的详细描述并非旨在限制要求保护的本专利技术的范围,而是仅仅表示本专利技术的选定实施例。基于本专利技术的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本专利技术保护的范围。参阅图1,本专利技术实施例提供的数据通信方法,应用于如图1所示的数据通信系统中,所述数据通信系统包括客户端101以及服务器端102。请参阅图2,本专利技术实施例提供的一种数据通信方法,应用于数据通信系统,所述数据通信系统包括客户端以及服务器端,所述数据通信方法包括:步骤S201:所述客户端建立守护线程,建立的所述守护线程在后台运行。在实践过程中,为了节约系统资源,提高运行效率,较佳的,所述客户端可以采用懒加载的模式建立守护线程。步骤S202:所述客户端获得用于连接所述服务器端的连接对象。在实践过程中,客户端可以设置一个专门的连接对象缓存容器用于缓存已经被客户端预先建立的用于连接客户端和服务器端的连接对象,而当客户端需要与服务器端进行通信时,为了提高运行效率,作为一种优选的方式,所述客户端可以先查询所述连接对象缓存容器中是否有已建立的所述连接对象;如果所述连接对象缓存容器为空,所述客户端建立新的连接对象,通过所述新的连接对象采用非阻塞的方式连接所述服务器端;所述客户端获得所述新的连接对象。例如,在实践过程中,当可以用ArrayList或者LinkedList等实现类来作为连接对象缓存容器。而在客户端采用非阻塞的方式连接服务器端的过程中,当所述客户端与所述服务器端连接失败时,所述客户端以预设的阈值时间为间隔重新以非阻塞的方式连接所述服务器端。当然,若客户端一致连接服务器端失败,则客户端会执行抛本文档来自技高网...

【技术保护点】
一种数据通信方法,其特征在于,应用于数据通信系统,所述数据通信系统包括客户端以及服务器端,所述数据通信方法包括:所述客户端建立守护线程,建立的所述守护线程在后台运行;所述客户端获得用于连接所述服务器端的连接对象;所述客户端指示所述连接对象中的非阻塞通道在守护线程中的选择器中注册;所述客户端指示所述选择器对所述选择器中已经注册的所述非阻塞通道的可读和可写操作进行轮询监听;如果所述非阻塞通道的可读操作可以执行,则所述客户端执行所述非阻塞通道的读操作,如果所述非阻塞通道的可写操作可以执行,则所述客户端执行所述非阻塞通道的写操作。

【技术特征摘要】

【专利技术属性】
技术研发人员:谭良胡波程虹锡姚治菊
申请(专利权)人:四川师范大学
类型:发明
国别省市:四川;51

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1