CN111107039A - 一种基于tcp连接的通信方法、装置及系统 - Google Patents

一种基于tcp连接的通信方法、装置及系统 Download PDF

Info

Publication number
CN111107039A
CN111107039A CN201811256895.XA CN201811256895A CN111107039A CN 111107039 A CN111107039 A CN 111107039A CN 201811256895 A CN201811256895 A CN 201811256895A CN 111107039 A CN111107039 A CN 111107039A
Authority
CN
China
Prior art keywords
service
address information
client
registration center
tcp connection
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN201811256895.XA
Other languages
English (en)
Inventor
王明阳
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing Gridsum Technology Co Ltd
Original Assignee
Beijing Gridsum Technology Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Beijing Gridsum Technology Co Ltd filed Critical Beijing Gridsum Technology Co Ltd
Priority to CN201811256895.XA priority Critical patent/CN111107039A/zh
Publication of CN111107039A publication Critical patent/CN111107039A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/16Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
    • H04L69/163In-band adaptation of TCP data exchange; In-band control procedures
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L61/00Network arrangements, protocols or services for addressing or naming
    • H04L61/50Address allocation
    • H04L61/5076Update or notification mechanisms, e.g. DynDNS
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • H04L67/1004Server selection for load balancing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1097Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/14Session management
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/55Push-based network services

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer And Data Communications (AREA)

Abstract

本发明公开了一种基于TCP连接的通信方法、装置及系统,涉及数据处理技术领域,为了解决现有技术中通过负载均衡器转发请求和响应,以实现客户端与分布式服务端之间通信,导致的当负载均衡器出现故障时客户端与分布式服务端进行通信造成的通信性能较差的问题。本发明的主要技术方案为:客户端通过服务注册中心与分布式服务端之间建立TCP连接,所述服务注册中心中存储有所述分布式服务端中每个服务的地址信息,并根据所述分布式服务端中服务的状态变化,对所述服务对应的地址信息进行更新;接收所述服务注册中心推送的地址信息,并根据所述地址信息,确定所述分布式服务端中的服务;通过所述TCP连接与所述服务进行通信。本发明主要基于TCP连接的通信中。

Description

一种基于TCP连接的通信方法、装置及系统
技术领域
本发明涉及数据处理技术领域,尤其涉及一种基于TCP连接的通信方法、装置及系统。
背景技术
随着淘宝、微博等大型网络服务的广泛应用,用于实现这些大型网络服务的系统以及系统处理能力成为互联网的研究热点,其中,服务器分布式部署方式得到了广泛关注。服务器分布式部署是指数据和程序可以不位于同一个服务器上,而是分散到多个服务器,数据通过网络在客户端和服务器之间进行远程传输,进而实现通信的一个完整的系统。
目前,客户端与分布式服务端之间在进行通信时,主要是通过负载均衡器进行通信,即客户端发送请求到负载均衡器后由负载均衡器负责选择合适的分布式服务中的一个服务进行请求的转发,服务器的响应同样经过负载均衡器后被转发给客户端。由于负载均衡器负责通信中转,从而使得当分布式服务扩容或者缩容时,负载均衡器无法获知,并且当负载均衡器崩溃时,客户端和分布式服务端之间便无法进行通信,从而使得客户端与分布式服务端之间的通信性能较差。
发明内容
有鉴于此,本发明提供一种基于TCP连接的通信方法、装置及系统,主要目的在于克服通过负载均衡器转发请求和响应,以实现客户端与分布式服务端之间通信时,当负载均衡器发生故障时客户端与分布式服务端并无法进行通信而导致的通信性能较差的问题,提高了客户端与服务端之间通信的性能。
为了解决上述问题,本发明主要提供如下技术方案:
第一方面,本发明实施例提供了一种基于TCP连接的通信方法,应用于客户端,该方法包括:
客户端通过服务注册中心与分布式服务端之间建立TCP连接,所述服务注册中心中存储有所述分布式服务端中每个服务的地址信息,并根据所述分布式服务端中服务的状态变化,对所述服务对应的地址信息进行更新;
所述客户端接收所述服务注册中心推送的地址信息,并根据所述地址信息,确定所述分布式服务端中的服务;
所述客户端通过所述TCP连接与所述服务进行通信。
优选的,所述客户端通过服务注册中心与分布式服务端之间建立TCP连接之前,所述方法还包括:
在客户端启动后,向服务注册中心发送注册请求,以便建立所述客户端与所述服务注册中心之间的TCP连接;和/或,
在客户端启动后,向服务注册中心发送订阅请求,以便订阅所述客户端关注的分布式服务端;和/或,
在客户端启动后,向服务注册中心发送服务获取请求,以便获取所述客户端关注的分布式服务端中的服务对应的地址信息。
优选的,所述地址信息包括:IP地址信息和端口地址信息,且所述服务注册中心中的所述地址信息以地址信息列表形式存储,所述客户端接收所述服务注册中心推送的地址信息,包括:
所述客户端接收所述服务注册中心推送的地址信息列表,所述地址信息列表中存储有IP地址信息和端口地址信息。
优选的,所述方法还包括:
所述客户端在接收到地址信息列表后,将所述地址信息列表缓存在所述客户端本地;和/或
所述客户端在接收到更新后的地址信息列表后,采用更新后的地址信息列表覆盖缓存的地址信息列表;和/或,
所述客户端通过所述TCP连接与所述服务进行通信,包括:
所述客户端根据预先设置的负载均衡策略,从所述服务中选择对应的目标服务,并与所述目标服务进行通信。
第二方面,本发明提供了一种基于TCP连接的通信方法,应用于服务注册中心,该方法包括:
所述服务注册中心分别与客户端、分布式服务端之间建立TCP连接,所述服务注册中心中存储有所述分布式服务端中每个服务的地址信息,并根据所述分布式服务端中服务的状态变化,对所述服务对应的地址信息进行更新;
所述服务注册中心向所述客户端推送地址信息,以便所述客户端根据所述地址信息确定所述分布式服务端中的服务,并通过所述TCP连接与所述服务进行通信。
可选的,在所述服务注册中心分别与客户端、分布式服务端之间建立TCP连接之前,所述方法还包括:
所述服务注册中心接收所述分布式服务端中服务的注册请求,以便建立所述服务注册中心与所述分布式服务端之间的TCP连接;和/或,
所述服务注册中心接收所述客户端的注册请求,以便建立所述服务注册中心与所述客户端之间的TCP连接。
可选的,所述服务注册中心中的所述地址信息以地址信息列表形式存储,所述服务注册中心向所述客户端推送地址信息,包括:
当检测到所述客户端启动时,所述服务注册中心向所述客户端推送地址信息列表;和/或,
当检测到所述分布式服务端中服务的状态发生变化时,所述服务注册中心向所述客户端发送更新后的地址信息列表;和/或,
当检测到所述客户端向所述分布式服务端发送服务获取请求时,所述服务注册中心向所述客户端推送地址信息列表。
可选的,所述服务注册中心与分布式服务端之间建立TCP连接后,所述方法还包括:
根据所述分布式服务端中的服务定期发送的心跳数据,确定所述服务的状态是否发生变化;和/或,
所述地址信息包括:IP地址信息和端口地址信息,所述状态变化包括扩容和缩容中的至少一种,根据所述分布式服务端中服务的状态变化,对所述服务对应的地址信息进行更新,包括:
当检测到所述分布式服务端中的服务发生扩容时,将新启用的服务的IP地址信息和端口地址信息添加至所述服务注册中心中存储的地址信息列表中;和/或,
当检测到所述分布式服务端中的服务发生缩容时,将下线的服务的IP地址信息和端口地址信息从所述服务注册中心中存储的地址信息列表中删除。
第三方面,本发明提供了一种客户端,包括:
建立单元,用于通过服务注册中心与分布式服务端之间建立TCP连接,所述服务注册中心中存储有所述分布式服务端中每个服务的地址信息,并根据所述分布式服务端中服务的状态变化,对所述服务对应的地址信息进行更新;
接收单元,用于接收所述服务注册中心推送的地址信息,并根据所述地址信息,确定所述分布式服务端中的服务;
通信单元,用于通过所述TCP连接与所述服务进行通信。
可选的,所述客户端还包括:
第一发送单元,用于在客户端启动后,向服务注册中心发送注册请求,以便建立所述客户端与所述服务注册中心之间的TCP连接;
第二发送单元,用于在客户端启动后,向服务注册中心发送订阅请求,以便订阅所述客户端关注的分布式服务端;
第三发送单元,用于在客户端启动后,向服务注册中心发送服务获取请求,以便获取所述客户端关注的分布式服务端中的服务对应的地址信息。
可选的,所述地址信息包括:IP地址信息和端口地址信息,且所述服务注册中心中的所述地址信息以地址信息列表形式存储,
所述接收单元,具体用于所述客户端接收所述服务注册中心推送的地址信息列表,所述地址信息列表中存储有IP地址信息和端口地址信息。
可选的,所述客户端还包括:缓存单元、覆盖单元,
所述缓存单元,用于所述客户端在接收到地址信息列表后,将所述地址信息列表缓存在所述客户端本地;
所述覆盖单元,用于所述客户端在接收到更新后的地址信息列表后,采用更新后的地址信息列表覆盖缓存的地址信息列表;
所述通信单元,具体用于所述客户端根据预先设置的负载均衡策略,从所述服务中选择对应的目标服务,并与所述目标服务进行通信。
第四方面,本发明提供了一种服务注册中心,包括:
建立单元,用于分别与客户端、分布式服务端之间建立TCP连接,所述服务注册中心中存储有所述分布式服务端中每个服务的地址信息;
更新单元,用于根据所述分布式服务端中服务的状态变化,对所述服务对应的地址信息进行更新;
推送单元,用于向所述客户端推送地址信息,以便所述客户端根据所述地址信息确定所述分布式服务端中的服务,并通过所述TCP连接与所述服务进行通信。
可选的,所述服务器还包括:
第一接收单元,用于接收所述分布式服务端中服务的注册请求,以便建立所述服务注册中心与所述分布式服务端之间的TCP连接;
第二接收单元,用于接收所述客户端的注册请求,以便建立所述服务注册中心与所述客户端之间的TCP连接。
可选的,所述服务注册中心中的所述地址信息以地址信息列表形式存储,所述推送单元包括:
第一推送模块,用于当检测到所述客户端启动时,向所述客户端推送地址信息列表;
第二推送模块,用于当检测到所述分布式服务端中服务的状态发生变化时,向所述客户端发送更新后的地址信息列表;
第三推送模块,用于当检测到所述客户端向所述分布式服务端发送服务获取请求时,向所述客户端推送地址信息列表。
可选的,所述服务器还包括:确定单元,
所述确定单元,用于根据所述分布式服务端中的服务定期发送的心跳数据,确定所述服务的状态是否发生变化;
所述地址信息包括:IP地址信息和端口地址信息,所述状态变化包括扩容和缩容中的至少一种,所述更新单元包括:
添加模块,用于当检测到所述分布式服务端中的服务发生扩容时,将新启用的服务的IP地址信息和端口地址信息添加至所述服务注册中心中存储的地址信息列表中;
删除模块,用于当检测到所述分布式服务端中的服务发生缩容时,将下线的服务的IP地址信息和端口地址信息从所述服务注册中心中存储的地址信息列表中删除。
第五方面,本发明提供了一种基于TCP连接的通信系统,包括:如上所述的服务注册中心及如上所述的客户端。
为了实现上述目的,根据本发明的第六方面,提供了一种存储介质,所述存储介质包括存储的程序,其中,在所述程序运行时控制所述存储介质所在设备执行上述所述的基于TCP连接的通信方法。
为了实现上述目的,根据本发明的第七方面,提供了一种处理器,所述处理器用于运行程序,其中,所述程序运行时执行上述所述的基于TCP连接的通信方法
借由上述技术方案,本发明实施例提供的技术方案至少具有下列优点:
本发明实施例提供的一种基于TCP连接的通信方法、装置及系统,首先服务注册中心与客户端、分布式服务端之间建立TCP连接,然后客户端通过服务注册中心与分布式服务端之间建立TCP连接,其次,服务注册中心向客户端推送地址信息,以使得客户端接收推送的地址信息并根据地址信息确定分布式服务端中的服务,最后,服务端通过TCP连接与服务进行通信。与现有技术中,通过负载均衡器转发请求和响应,以实现客户端与分布式服务端之间通信的方法相比,本发明实施例能够通过服务注册中心实时获取分布式服务端中的在线服务,并将在线服务的地址信息推送给客户端,以使得客户端获取在线服务并通过TCP连接与服务进行通信,无需负载均衡器作为中间媒介转发,也就避免了当负载均衡器出现故障时客户端便无法与分布式服务端进行通信造成的通信性能较差的问题,从而提高了客户端与分布式服务端之间的通信性能。
上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的具体实施方式。
附图说明
通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:
图1示出了本发明实施例提供的第一种基于TCP连接的通信方法流程图;
图2示出了本发明实施例提供的第二种基于TCP连接的通信方法流程图;
图3示出了本发明实施例提供的第三种基于TCP连接的通信方法方法流程图;
图4示出了本发明实施例提供的第四种基于TCP连接的通信方法流程图;
图5示出了本发明实施例提供的第一种客户端的组成框图;
图6示出了本发明实施例提供的第二种客户端的组成框图;
图7示出了本发明实施例提供的一种服务注册中心的组成框图;
图8示出了本发明实施例提供的一种基于TCP连接的通信系统的组成框图。
具体实施方式
下面将参照附图更详细地描述本发明的示例性实施例。虽然附图中显示了本发明的示例性实施例,然而应当理解,可以以各种形式实现本发明而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本发明,并且能够将本发明的范围完整的传达给本领域的技术人员。
本发明实施例提供了第一种基于TCP连接的通信方法,应用于客户端,如图1所示,该方法包括:
101、客户端通过服务注册中心与分布式服务端之间建立TCP连接。
其中,所述服务注册中心中存储有所述分布式服务端中每个服务的地址信息,并根据所述分布式服务端中服务的状态变化,对所述服务对应的地址信息进行更新。而所述TCP(Transmission Control Protocol,传输控制协议)连接是一种传输层通信协议,基于TCP长连接通信的客户端与服务端,在客户端启动时便建立与服务端之间的TCP长连接,并且后续的通信请求及响应都通过此虚连接。
对于本发明实施例,注册中心可以预先配置并保存在任意一台终端设备中,并且注册中心可以与分布式服务端和客户端之间进行交互。而需要说明的是,本发明实施例中的客户端和分布式服务端为内部服务之间的两个对立方,即发送TCP连接请求的一方为客户端,而接收TCP连接请求的一方为分布式服务端。进一步的,在分布式服务端中任意一个实例启动时,服务通过配置文件获取到服务注册中心地址,并向服务注册中心注册服务本身向外暴露供请求的地址信息及端口号信息等,同时与服务注册中心建立TCP连接。客户端的任意一个实例启动之后,利用预先配置文件获取到服务注册中心地址,而后向服务注册中心发送请求并通过服务注册中心与分布式服务端建立TCP连接。
具体地,本步骤中的对服务对应的地址信息进行更新,可以为当启动的实例扩容新增服务时,在服务注册中心添加新增服务的地址信息;此外,服务注册中心还可以通过与服务之间的TCP连接对服务心跳状态监测服务是否下线,并在监测到服务下线时将服务的地址信息进行删除。
102、接收所述服务注册中心推送的地址信息,并根据所述地址信息,确定所述分布式服务端中的服务。
对于本发明实施例,客户端还可以与服务注册中心建立TCP连接,并向服务注册中心注册关注的服务端列表,从而使得服务注册中心提取客户端所关注服务端的服务地址信息并推送给客户端。并且,由于在服务注册中心中保存有全部分布式服务端中在线服务的地址信息,从而在客户端接收到地址信息之后可以根据地址信息确定分布式服务端中的在线服务。
103、客户端通过所述TCP连接与所述服务进行通信。
在上述步骤102中,客户端已经确定分布式服务端中可以建立TCP连接的在线服务,从而在本步骤中客户端可以直接通过TCP连接与各个服务进行通信。
针对本发明的实施例提供了一种基于TCP连接的通信方法,首先服务注册中心与客户端、分布式服务端之间建立TCP连接,然后客户端通过服务注册中心与分布式服务端之间建立TCP连接,其次,服务注册中心向客户端推送地址信息,以使得客户端接收推送的地址信息并根据地址信息确定分布式服务端中的服务,最后,服务端通过TCP连接与服务进行通信。与现有技术中,通过负载均衡器转发请求和响应,以实现客户端与分布式服务端之间通信的方法相比,本发明实施例能够通过服务注册中心实时获取分布式服务端中的在线服务,并将在线服务的地址信息推送给客户端,以使得客户端获取在线服务并通过TCP连接与服务进行通信,无需负载均衡器作为中间媒介转发,也就避免了当负载均衡器出现故障时客户端便无法与分布式服务端进行通信造成的通信性能较差的问题,从而提高了客户端与分布式服务端之间的通信性能。
以下为了更加详细地说明,本发明实施例提供了第二种基于TCP连接的通信方法,具体如图2所示,该方法包括:
201、通过服务注册中心与分布式服务端之间建立TCP连接。
其中,所述服务注册中心中存储有所述分布式服务端中每个服务的地址信息,并根据所述分布式服务端中服务的状态变化,对所述服务对应的地址信息进行更新。而所述TCP(Transmission Control Protocol,传输控制协议)连接是一种传输层通信协议,基于TCP长连接通信的客户端与服务端,在客户端启动时便建立与服务端之间的TCP长连接,并且后续的通信请求及响应都通过此虚连接。
进一步的,本步骤中所述地址信息包括:IP地址信息和端口地址信息,且所述服务注册中心中的所述地址信息以地址信息列表形式存储。具体地,可以为在分布式服务端中任意一个实例启动时,服务通过配置文件获取到服务注册中心地址,并向服务注册中心注册服务本身向外暴露供请求的地址信息及端口号信息,以使得服务注册中心将各个服务注册的地址信息和端口信息添加到列表中并进行存储。
对于本发明实施例,所述步骤201之前还可以包括:在客户端启动后,向服务注册中心发送注册请求。进一步地,以便建立所述客户端与所述服务注册中心之间的TCP连接。具体地,在客户端启动后,可以通过配置文件获取到服务注册中心的地址,而后客户端向注册中心发送请求并与服务注册中心建立连接。
可选的,所述步骤201之前还可以包括:在客户端启动后,向服务注册中心发送订阅请求,以便订阅所述客户端关注的分布式服务端。通过客户端向服务注册中心注册关注的分布式服务端,使得当分布式服务端中服务的状态变化时,服务注册中心对地址信息进行更新后,服务注册中心能够及时将更新后的地址信息推送给关注该分布式服务端的客户端,以确保客户端获取到的在线服务相关信息的时效性和准确性。
可选的,所述步骤201之前还可以包括:在客户端启动后,向服务注册中心发送服务获取请求,以便获取所述客户端关注的分布式服务端中的服务对应的地址信息。对于本发明实施例,通过客户端向服务注册中心注册关注的分布式服务端,可以使得服务注册中心将关注的分布式服务端中服务的地址信息推送给客户端,同时通过服务注册中心使得客户端与关注的分布式服务端建立TCP连接。
202、所述客户端接收所述服务注册中心推送的地址信息列表。
其中,所述地址信息列表中存储有IP地址信息和端口地址信息。
对于本发明实施例,通过在客户端与服务注册中心建立TCP连接之后,接收服务注册中心推送的、客户端关注的分布式服务端中在线服务的地址信息和端口信息,以使得客户端根据该地址信息和端口信息与各个服务进行通信,确保了客户端获取到的在线服务信息的准确性。
203、根据所述地址信息,确定所述分布式服务端中的服务。
在上述步骤中,客户端已经确定分布式服务端中可以建立TCP连接的在线服务,从而在本步骤中客户端可以直接通过TCP连接与各个服务进行通信。
204、所述客户端在接收到地址信息列表后,将所述地址信息列表缓存在所述客户端本地。
对于本发明实施例,当客户端在接收到服务注册中心推送的在线服务地址信息列表之后,将该列表保存在客户端本地,并通过列表中的IP地址信息和端口信息与各个服务进行通信,无需再通过任何中转媒介,进一步提高了客户端与分布式服务端之间通信的性能。
205、所述客户端在接收到更新后的地址信息列表后,采用更新后的地址信息列表覆盖缓存的地址信息列表。
对于本发明实施例,通过服务注册中心与分布式服务端之间的TCP连接及时获取服务的变化状态,即是否存在新上线的服务或者下线服务,若服务状态发生变化在服务注册中心对服务对应的地址信息进行更新,并将更新后的地址信息及时推送给客户端,以便于客户端接收到更新后的地址信息列表之后对本地存储的地址信息列表替换,从而确保了客户端本地保存的地址信息列表及时更新,进而确保了客户端中保存的在线服务信息的准确性。
206、根据预先设置的负载均衡策略,从所述服务中选择对应的目标服务,并与所述目标服务进行通信。
其中,所述负载均衡策略可以根据不同的应用场景进行配置,而具体的配置方式、以及负载均衡策略均可以为现有技术中的实施方式,本发明实施例对此不做过多赘述。
针对本发明实施例提供了一种基于TCP连接的通信方法,首先服务注册中心与客户端、分布式服务端之间建立TCP连接,然后客户端通过服务注册中心与分布式服务端之间建立TCP连接,其次,服务注册中心向客户端推送地址信息,以使得客户端接收推送的地址信息并根据地址信息确定分布式服务端中的服务,最后,服务端通过TCP连接与服务进行通信。与现有技术中,通过负载均衡器转发请求和响应,以实现客户端与分布式服务端之间通信的方法相比,本发明实施例能够通过服务注册中心实时获取分布式服务端中的在线服务,并将在线服务的地址信息推送给客户端,以使得客户端获取在线服务并通过TCP连接与服务进行通信,无需负载均衡器作为中间媒介转发,也就避免了当负载均衡器出现故障时客户端便无法与分布式服务端进行通信造成的通信性能较差的问题,从而提高了客户端与分布式服务端之间的通信性能。此外,客户端可以将服务注册中心推送的地址信息列表缓存在本地并及时对列表进行更新,确保了地址信息列表中始终保存着可用的在线服务地址信息,从而确保了客户端与服务之间通信建立的准确性。
进一步的,本发明实施例还提供了第三种基于TCP连接的通信方法,该方法应用于服务注册中心,如图3所示,该方法包括
301、服务注册中心分别与客户端、分布式服务端之间建立TCP连接。
其中,服务注册中心中存储有所述分布式服务端中每个服务的地址信息,而所述地址信息包括IP地址信息和端口地址信息。
对于本发明实施例,所述步骤301之前还可以包括:所述服务注册中心接收所述分布式服务端中服务的注册请求,以便建立所述服务注册中心与所述分布式服务端之间的TCP连接;所述服务注册中心接收所述客户端的注册请求,以便建立所述服务注册中心与所述客户端之间的TCP连接。具体地,在分布式服务端中任意一个实例启动时,服务通过配置文件获取到服务注册中心地址,并向服务注册中心注册服务本身向外暴露供请求的地址信息及端口号信息等,同时与服务注册中心建立TCP连接。客户端的任意一个实例启动之后,利用预先配置文件获取到服务注册中心地址,而后向服务注册中心发送请求并通过服务注册中心与分布式服务端建立TCP连接。
302、根据所述分布式服务端中的服务定期发送的心跳数据,确定所述服务的状态是否发生变化。
对于本发明实施例,所述状态变化包括扩容和缩容中的至少一种。而本步骤中可以通过服务与注册中心之间的TCP连接发送心跳包,实现通过注册中心对服务的状态监测。当注册中心无法获取到服务的心跳状态时,表明该服务下线,此时服务所属的实例缩容。而当实例扩容时,也就是实例存在新增加的服务,由于服务在启动时会向注册中心注册自己向外暴露的IP地址和端口号,并通过与服务注册中心之间建立TCP连接后向服务注册中心发送心跳数据,因此实现服务注册中心对实例扩容时的监测。
对于本发明实施例,通过在分布式服务端中服务和服务注册中心之间建立TCP连接并获取服务的心跳数据,可以实现在服务注册中心中对服务的生命周期和下线状态,以及实例扩容时的新增服务进行实时监测,从而使得服务注册中心能够及时的发现发生变化的服务,以便于将下线服务或者新增服务的相关信息推送给客户端,避免了当服务已经不可用时客户端仍然向服务发送连接请求造成的请求错误问题,且将新增服务及时告知客户端以便于客户端与服务之间进行通信,从而提高了客户端与服务之间通信的性能。
303、当检测到所述分布式服务端中的服务发生扩容时,将新启用的服务的IP地址信息和端口地址信息添加至所述服务注册中心中存储的地址信息列表中。
当实例的任意一个服务启动时,服务会通过配置文件获取服务注册中心的地址并向服务注册中心注册自己向外暴露供请求的地址信息及端口号信息等,而服务注册中心在接收到各个服务注册的IP地址信息和端口号之后,将全部的地址信息均保存在列表中。因此,当实例新增服务时,该服务需要执行相同的注册方式,因此服务注册中心可以将新增服务的地址信息存储在列表中。
对于本发明实施例,通过配置使得各个分布式服务端中服务在启动时均向服务注册中心注册自己向外暴露以供连接的地址信息,使得服务注册中心可以及时获取到实例的新增服务及其地址信息并进行存储,以便于将新增服务推送给关注该分布式服务端的客户端,提高了客户端获取关注的分布式服务端中服务的时效性。
304、当检测到所述分布式服务端中的服务发生缩容时,将下线的服务的IP地址信息和端口地址信息从所述服务注册中心中存储的地址信息列表中删除。
当服务注册中心无法接收到服务的心跳数据并确定服务下线时,表明该服务不再可用,此时将下线服务的地址信息从地址信息列表中删除,以确保地址信息列表中保存的始终是可用的在线服务。此外,服务注册中心还可以在监测到服务下线之后确定下线服务的生命周期,并在监测到生命周期异常时,向分布式服务端输出告警信息。
对于本发明实施例,通过服务注册中心对服务的下线状态进行实时监测并及时对服务的地址信息列表进行更新,以使得地址信息列表中保存的始终是可用在线服务的地址信息,进而使得推送给客户端的服务地址信息是准确的,从而确保了客户端和服务之间通信建立的准确性。
305、所述服务注册中心向所述客户端推送地址信息。
进一步地,以便所述客户端根据所述地址信息确定所述分布式服务端中的服务,并通过所述TCP连接与所述服务进行通信。其中,所述服务注册中心中的所述地址信息以地址信息列表形式存储。
可选的,本步骤可以为当检测到所述客户端启动时,所述服务注册中心向所述客户端推送地址信息列表。需要说明的是,当客户端启动时,会根据配置文件获取到服务注册中心的地址,并向服务注册中心进行注册,因此,服务注册中心在接收到新启动的客户端的注册信息之后,将分布式服务端中服务的地址信息列表推送给客户端。
可选的,本步骤还可以为当检测到所述分布式服务端中服务的状态发生变化时,所述服务注册中心向所述客户端发送更新后的地址信息列表。而所述服务状态发生变化为扩容或缩容中的一种。同样的,当服务注册中心通过与服务之间的TCP连接监测不到服务的心跳状态时,表明服务下线也就是实例缩容;或者服务注册中心接收到新启动服务注册的地址信息和心跳数据时,表明服务增加也就是实例扩容,此时可供客户端建立通信的服务发生变化,因此需要对之前保存的地址信息列表进行更新,并向客户端推送更新后的地址信息列表,以使得客户端及时的获取准确的在线服务地址信息列表。
可选的,本步骤还可以为当检测到所述客户端向所述分布式服务端发送服务获取请求时,所述服务注册中心向所述客户端推送地址信息列表。需要说明的是,当客户端启动后可以向服务注册中心注册自己关注的分布式服务端,因此,服务注册中心在接收到客户端的服务获取请求之后,将该客户端关注的分布式服务端中服务的地址信息列表推送给客户端。
对于本发明实施例,服务注册中心与分布式服务端中服务、客户端分别建立TCP连接,从而使得服务注册中心能够及时监测都服务的状态变化并及时更新地址信息列表,此外,服务注册中心可以在客户端启动时或者向服务注册中心发送服务获取请求之后,将地址信息列表推送给客户端,可以使得客户端能够及时获取到保存有可用在线服务地址信息的准确地址信息列表。
上述实施例已分别详细阐述了服务注册中心与客户端的基于TCP连接的通信过程,以下提供一个实施例,用于说明服务注册中心与客户端的数据交互关系。如图4所示,图4示出了本发明实施例提供的第四种基于TCP连接的通信方法,该方法包括四个步骤:
第一步、启动服务注册中心,当分布式服务端的任意一个实例启动时,该实例下的各个服务均通过配置文件向服务注册中心注册自身用于建立TCP连接的IP地址和端口信息,并且各个服务与服务注册中心建立TCP连接,且通过该连接向服务注册中心发送心跳数据。
第二步、客户端上线时通过配置文件获取服务注册中心地址,与服务注册中心建立TCP连接并向服务注册中心注册客户端的标识信息和客户端的实例关注信息,服务注册中心提取客户端所关注的各个服务的相关信息并推送给客户端,以便于客户端对关注的分布式服务的地址信息和端口信息进行保存。
第三步、新的服务上线,并向服务注册中心注册自己的地址信息和端口信息,服务注册中心将新上线的服务的相关信息提送给关注该服务所属于的实例的客户端,客户端将接收到的新上线服务的地址信息和端口信息缓存并保存在客户端内。
第四步、服务注册中心根据心跳状态获取到已经上线的服务下线,此时服务注册中心将下线服务的标识信息推送给客户端,客户端在接收到下线服务的标识信息之后,根据标识信息将下线服务的地址信息和端口信息从客户端中删除。
但需要说明的是,上述应用场景所述的具体实施方式仅仅是示例性的,并非本发明实施例的唯一具体实施方式,在此仅为符合本发明所述的方法的优化实施方式之一。
为了实现上述目的,根据本发明的另一方面,本发明实施例还提供了一种存储介质,所述存储介质包括存储的程序,其中,在所述程序运行时控制所述存储介质所在设备执行上述所述的基于TCP连接的通信方法。
为了实现上述目的,根据本发明的另一方面,本发明实施例还提供了一种处理器,所述处理器用于运行程序,其中,所述程序运行时执行上述所述的基于TCP连接的通信方法。
进一步的,作为对上述图1及图2所示方法的实现,本发明另一实施例还提供了一种客户端。该装置实施例与前述方法实施例对应,为便于阅读,本装置实施例不再对前述方法实施例中的细节内容进行逐一赘述,但应当明确,本实施例中的装置能够对应实现前述方法实施例中的全部内容。该装置应用于提高客户端与服务之间基于TCP连接通信的性能,具体如图5所示,该客户端包括:建立单元41、接收单元42、确定单元43、通信单元44,其中
建立单元41,用于通过服务注册中心与分布式服务端之间建立TCP连接,所述服务注册中心中存储有所述分布式服务端中每个服务的地址信息,并根据所述分布式服务端中服务的状态变化,对所述服务对应的地址信息进行更新;
接收单元42,用于接收所述服务注册中心推送的地址信息;
确定单元43,用于根据所述接收单元42接收到的地址信息,确定所述分布式服务端中的服务;
通信单元44,用于通过所述TCP连接与所述确定单元43确定的服务进行通信。
进一步的,如图6所示,该客户端还包括:发送单元45。
所述发送单元45,可以用于在客户端启动后,向服务注册中心发送注册请求。
所述发送单元45,还可以用于在客户端启动后,向服务注册中心发送订阅请求,以便订阅所述客户端关注的分布式服务端。
所述发送单元45,可以用于在客户端启动后,向服务注册中心发送服务获取请求,以便获取所述客户端关注的分布式服务端中的服务对应的地址信息。
进一步的,如图6所示,该客户端还包括:缓存单元46,覆盖单元47。
所述缓存单元46,可以用于在接收到地址信息列表后,将所述地址信息列表缓存在所述客户端本地。
所述覆盖单元47,可以用于在接收到更新后的地址信息列表后,采用更新后的地址信息列表覆盖缓存的地址信息列表。
进一步的,如图6所示,
所述通信单元44,具体可以用于根据预先设置的负载均衡策略,从所述服务中选择对应的目标服务,并与所述目标服务进行通信。
进一步的,作为对上述图3所示方法的实现,本发明实施例还提供了一种服务注册中心,用于对上述图3所示的方法进行实现。该装置实施例与前述方法实施例对应,为便于阅读,本装置实施例不再对前述方法实施例中的细节内容进行逐一赘述,但应当明确,本实施例中的装置能够对应实现前述方法实施例中的全部内容。如图7所示,该服务注册中心包括:建立单元51、推送单元52,其中
建立单元51,用于分别与客户端、分布式服务端之间建立TCP连接,服务注册中心中存储有所述分布式服务端中每个服务的地址信息;
推送单元52,用于向所述客户端推送地址信息,以便所述客户端根据所述地址信息确定所述分布式服务端中的服务,并通过所述TCP连接与所述服务进行通信。
进一步的,所述服务注册中心还包括:接收单元53、确定单元54。
所述接收单元53,可以用于接收所述分布式服务端中服务的注册请求,以便建立所述服务注册中心与所述分布式服务端之间的TCP连接。
所述接收单元53,还可以用于接收所述客户端的注册请求,以便建立所述服务注册中心与所述客户端之间的TCP连接。
所述确定单元54,可以用于根据所述分布式服务端中的服务定期发送的心跳数据,确定所述服务的状态是否发生变化。
进一步的,所述服务注册中心还包括:添加单元55、删除单元56。
所述添加单元55,可以用于当检测到所述分布式服务端中的服务发生扩容时,将新启用的服务的IP地址信息和端口地址信息添加至所述服务注册中心中存储的地址信息列表中。
所述删除单元56,可以用于当检测到所述分布式服务端中的服务发生缩容时,将下线的服务的IP地址信息和端口地址信息从所述服务注册中心中存储的地址信息列表中删除。
进一步的,
所述推送单元52,具体可以用于当检测到所述客户端启动时,所述服务注册中心向所述客户端推送地址信息列表。
所述推送单元52,具体还可以用于当检测到所述分布式服务端中服务的状态发生变化时,所述服务注册中心向所述客户端发送更新后的地址信息列表。
所述推送单元52,具体还可以用于当检测到所述客户端向所述分布式服务端发送服务获取请求时,所述服务注册中心向所述客户端推送地址信息列表。
进一步的,作为对上述方法的实现以及上述客户端、服务注册中心的应用,本发明实施例还提供一种基于TCP连接的通信系统,如图8所示,该系统包括:如图5或图6所示的客户端601及如图7所示的服务注册中心602。
本发明实施例提供的基于TCP连接的通信方法、装置及系统。所述装置包括:建立单元、接收单元、确定单元及通信单元。首先服务注册中心与客户端、分布式服务端之间建立TCP连接,然后客户端通过服务注册中心与分布式服务端之间建立TCP连接,其次,服务注册中心向客户端推送地址信息,以使得客户端接收推送的地址信息并根据地址信息确定分布式服务端中的服务,最后,服务端通过TCP连接与服务进行通信。与现有技术中,通过负载均衡器转发请求和响应,以实现客户端与分布式服务端之间通信的方法相比,本发明实施例能够通过服务注册中心实时获取分布式服务端中的在线服务,并将在线服务的地址信息推送给客户端,以使得客户端获取在线服务并通过TCP连接与服务进行通信,无需负载均衡器作为中间媒介转发,也就避免了当负载均衡器出现故障时客户端便无法与分布式服务端进行通信造成的通信性能较差的问题,从而提高了客户端与分布式服务端之间的通信性能。
所述客户端包括处理器和存储器,上述建立单元41、接收单元42、确定单元43、通信单元44等均作为程序单元存储在存储器中,由处理器执行存储在存储器中的上述程序单元来实现相应的功能。
所述服务注册中心包括处理器和存储器,上述建立单元51、推送单元52等均作为程序单元存储在存储器中,由处理器执行存储在存储器中的上述程序单元来实现相应的功能。
处理器中包含内核,由内核去存储器中调取相应的程序单元。内核可以设置一个或以上,通过调整内核参数来提高基于TCP连接通信的性能。
存储器可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM),存储器包括至少一个存储芯片。
本发明实施例提供了一种存储介质,其上存储有程序,该程序被处理器执行时实现以上实施例中任一项所述的基于TCP连接的通信方法。
本发明实施例提供了一种处理器,所述处理器用于运行程序,其中,所述程序运行时执行以上实施例中任一项所述的基于TCP连接的通信方法。
本发明实施例提供了一种设备,设备包括处理器、存储器及存储在存储器上并可在处理器上运行的程序,处理器执行程序时实现以下步骤:
客户端通过服务注册中心与分布式服务端之间建立TCP连接,所述服务注册中心中存储有所述分布式服务端中每个服务的地址信息,并根据所述分布式服务端中服务的状态变化,对所述服务对应的地址信息进行更新;
所述客户端接收所述服务注册中心推送的地址信息,并根据所述地址信息,确定所述分布式服务端中的服务;
所述客户端通过所述TCP连接与所述服务进行通信。
本发明实施例还提供了另外一种设备,设备包括处理器、存储器及存储在存储器上并可在处理器上运行的程序,处理器执行程序时实现以下步骤:
服务注册中心分别与客户端、分布式服务端之间建立TCP连接,所述服务注册中心中存储有所述分布式服务端中每个服务的地址信息,并根据所述分布式服务端中服务的状态变化,对所述服务对应的地址信息进行更新;
所述服务注册中心向所述客户端推送地址信息,以便所述客户端根据所述地址信息确定所述分布式服务端中的服务,并通过所述TCP连接与所述服务进行通信。
本文中的设备可以是服务器、PC、PAD、手机等。
本申请还提供了一种计算机程序产品,当在数据处理设备上执行时,适于执行初始化有如下方法步骤的程序代码:客户端通过服务注册中心与分布式服务端之间建立TCP连接,所述服务注册中心中存储有所述分布式服务端中每个服务的地址信息,并根据所述分布式服务端中服务的状态变化,对所述服务对应的地址信息进行更新;
所述客户端接收所述服务注册中心推送的地址信息,并根据所述地址信息,确定所述分布式服务端中的服务;
所述客户端通过所述TCP连接与所述服务进行通信。
本申请还提供了另外一种计算机程序产品,当在数据处理设备上执行时,适于执行初始化有如下方法步骤的程序代码:服务注册中心分别与客户端、分布式服务端之间建立TCP连接,所述服务注册中心中存储有所述分布式服务端中每个服务的地址信息,并根据所述分布式服务端中服务的状态变化,对所述服务对应的地址信息进行更新;
所述服务注册中心向所述客户端推送地址信息,以便所述客户端根据所述地址信息确定所述分布式服务端中的服务,并通过所述TCP连接与所述服务进行通信。
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
在一个典型的配置中,计算设备包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
存储器可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。存储器是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括要素的过程、方法、商品或者设备中还存在另外的相同要素。
本领域技术人员应明白,本申请的实施例可提供为方法、系统或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
以上仅为本申请的实施例而已,并不用于限制本申请。对于本领域技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本申请的权利要求范围之内。

Claims (13)

1.一种基于TCP连接的通信方法,其特征在于,应用于客户端,所述方法包括:
客户端通过服务注册中心与分布式服务端之间建立TCP连接,所述服务注册中心中存储有所述分布式服务端中每个服务的地址信息,并根据所述分布式服务端中服务的状态变化,对所述服务对应的地址信息进行更新;
所述客户端接收所述服务注册中心推送的地址信息,并根据所述地址信息,确定所述分布式服务端中的服务;
所述客户端通过所述TCP连接与所述服务进行通信。
2.根据权利要求1所述的方法,其特征在于,所述客户端通过服务注册中心与分布式服务端之间建立TCP连接之前,所述方法还包括:
在客户端启动后,向服务注册中心发送注册请求,以便建立所述客户端与所述服务注册中心之间的TCP连接;和/或,
在客户端启动后,向服务注册中心发送订阅请求,以便订阅所述客户端关注的分布式服务端;和/或,
在客户端启动后,向服务注册中心发送服务获取请求,以便获取所述客户端关注的分布式服务端中的服务对应的地址信息。
3.根据权利要求1所述的方法,其特征在于,所述地址信息包括:IP地址信息和端口地址信息,且所述服务注册中心中的所述地址信息以地址信息列表形式存储,所述客户端接收所述服务注册中心推送的地址信息,包括:
所述客户端接收所述服务注册中心推送的地址信息列表,所述地址信息列表中存储有IP地址信息和端口地址信息。
4.根据权利要求3所述的方法,其特征在于,所述方法还包括:
所述客户端在接收到地址信息列表后,将所述地址信息列表缓存在所述客户端本地;和/或
所述客户端在接收到更新后的地址信息列表后,采用更新后的地址信息列表覆盖缓存的地址信息列表;和/或,
所述客户端通过所述TCP连接与所述服务进行通信,包括:
所述客户端根据预先设置的负载均衡策略,从所述服务中选择对应的目标服务,并与所述目标服务进行通信。
5.一种基于TCP连接的通信方法,其特征在于,应用于服务注册中心,所述方法包括:
所述服务注册中心分别与客户端、分布式服务端之间建立TCP连接,所述服务注册中心中存储有所述分布式服务端中每个服务的地址信息,并根据所述分布式服务端中服务的状态变化,对所述服务对应的地址信息进行更新;
所述服务注册中心向所述客户端推送地址信息,以便所述客户端根据所述地址信息确定所述分布式服务端中的服务,并通过所述TCP连接与所述服务进行通信。
6.根据权利要求5所述的方法,其特征在于,在所述服务注册中心分别与客户端、分布式服务端之间建立TCP连接之前,所述方法还包括:
所述服务注册中心接收所述分布式服务端中服务的注册请求,以便建立所述服务注册中心与所述分布式服务端之间的TCP连接;和/或,
所述服务注册中心接收所述客户端的注册请求,以便建立所述服务注册中心与所述客户端之间的TCP连接。
7.根据权利要求5所述的方法,其特征在于,所述服务注册中心中的所述地址信息以地址信息列表形式存储,所述服务注册中心向所述客户端推送地址信息,包括:
当检测到所述客户端启动时,所述服务注册中心向所述客户端推送地址信息列表;和/或,
当检测到所述分布式服务端中服务的状态发生变化时,所述服务注册中心向所述客户端发送更新后的地址信息列表;和/或,
当检测到所述客户端向所述分布式服务端发送服务获取请求时,所述服务注册中心向所述客户端推送地址信息列表。
8.根据权利要求7所述的方法,其特征在于,所述服务注册中心与分布式服务端之间建立TCP连接后,所述方法还包括:
根据所述分布式服务端中的服务定期发送的心跳数据,确定所述服务的状态是否发生变化;和/或,
所述地址信息包括:IP地址信息和端口地址信息,所述状态变化包括扩容和缩容中的至少一种,根据所述分布式服务端中服务的状态变化,对所述服务对应的地址信息进行更新,包括:
当检测到所述分布式服务端中的服务发生扩容时,将新启用的服务的IP地址信息和端口地址信息添加至所述服务注册中心中存储的地址信息列表中;和/或,
当检测到所述分布式服务端中的服务发生缩容时,将下线的服务的IP地址信息和端口地址信息从所述服务注册中心中存储的地址信息列表中删除。
9.一种客户端,其特征在于,所述客户端包括:
建立单元,用于通过服务注册中心与分布式服务端之间建立TCP连接,所述服务注册中心中存储有所述分布式服务端中每个服务的地址信息,并根据所述分布式服务端中服务的状态变化,对所述服务对应的地址信息进行更新;
接收单元,用于接收所述服务注册中心推送的地址信息,并根据所述地址信息,确定所述分布式服务端中的服务;
通信单元,用于通过所述TCP连接与所述服务进行通信。
10.一种服务注册中心,其特征在于,所述服务器包括:
建立单元,用于分别与客户端、分布式服务端之间建立TCP连接,所述服务注册中心中存储有所述分布式服务端中每个服务的地址信息,并根据所述分布式服务端中服务的状态变化,对所述服务对应的地址信息进行更新;
推送单元,用于向所述客户端推送地址信息,以便所述客户端根据所述地址信息确定所述分布式服务端中的服务,并通过所述TCP连接与所述服务进行通信。
11.一种基于TCP连接的通信系统,其特征在于,所述系统包括:如权利要求9所述的客户端及如权利要求10所述的服务注册中心。
12.一种存储介质,其特征在于,所述存储介质包括存储的程序,其中,在所述程序运行时控制所述存储介质所在设备执行权利要求1至权利要求4中任意一项所述的基于TCP连接的通信方法;
或者,执行权利要求5至权利要求8所述的基于TCP连接的通信方法。
13.一种处理器,其特征在于,所述处理器用于运行程序,其中,所述程序运行时执行权利要求1至权利要求4中任意一项所述的基于TCP连接的通信方法;
或者,执行权利要求5至权利要求8所述的基于TCP连接的通信方法。
CN201811256895.XA 2018-10-26 2018-10-26 一种基于tcp连接的通信方法、装置及系统 Pending CN111107039A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201811256895.XA CN111107039A (zh) 2018-10-26 2018-10-26 一种基于tcp连接的通信方法、装置及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201811256895.XA CN111107039A (zh) 2018-10-26 2018-10-26 一种基于tcp连接的通信方法、装置及系统

Publications (1)

Publication Number Publication Date
CN111107039A true CN111107039A (zh) 2020-05-05

Family

ID=70418203

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201811256895.XA Pending CN111107039A (zh) 2018-10-26 2018-10-26 一种基于tcp连接的通信方法、装置及系统

Country Status (1)

Country Link
CN (1) CN111107039A (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112769945A (zh) * 2021-01-19 2021-05-07 中国工商银行股份有限公司 分布式服务调用方法及装置
CN113037834A (zh) * 2021-03-05 2021-06-25 中国工商银行股份有限公司 基于分布式即时推送的Web页面状态更新方法及装置

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2013015669A1 (en) * 2011-07-25 2013-01-31 Mimos Berhad Global services redundancy using ip address mobility
CN105141452A (zh) * 2015-08-07 2015-12-09 北京思特奇信息技术股份有限公司 一种基于cxf的高性能服务系统及方法
CN105450757A (zh) * 2015-12-02 2016-03-30 联动优势电子商务有限公司 一种服务管理方法及系统
CN105471964A (zh) * 2015-11-16 2016-04-06 中国建设银行股份有限公司 用于数据推送的方法、服务器、客户端以及系统
CN106941508A (zh) * 2016-01-05 2017-07-11 阿里巴巴集团控股有限公司 服务调用方法、装置和系统

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2013015669A1 (en) * 2011-07-25 2013-01-31 Mimos Berhad Global services redundancy using ip address mobility
CN105141452A (zh) * 2015-08-07 2015-12-09 北京思特奇信息技术股份有限公司 一种基于cxf的高性能服务系统及方法
CN105471964A (zh) * 2015-11-16 2016-04-06 中国建设银行股份有限公司 用于数据推送的方法、服务器、客户端以及系统
CN105450757A (zh) * 2015-12-02 2016-03-30 联动优势电子商务有限公司 一种服务管理方法及系统
CN106941508A (zh) * 2016-01-05 2017-07-11 阿里巴巴集团控股有限公司 服务调用方法、装置和系统

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112769945A (zh) * 2021-01-19 2021-05-07 中国工商银行股份有限公司 分布式服务调用方法及装置
CN112769945B (zh) * 2021-01-19 2023-02-03 中国工商银行股份有限公司 分布式服务调用方法及装置
CN113037834A (zh) * 2021-03-05 2021-06-25 中国工商银行股份有限公司 基于分布式即时推送的Web页面状态更新方法及装置

Similar Documents

Publication Publication Date Title
CN111970315A (zh) 推送消息的方法、装置及系统
US10440069B2 (en) System and method for acquiring, processing, and updating global information
CN108011929A (zh) 数据请求处理方法、装置、计算机设备和存储介质
CN107547661B (zh) 一种容器负载均衡实现方法
CN106933548B (zh) 全局信息获取、处理及更新、方法、装置和系统
WO2021004528A1 (zh) 应用实例的地址获取方法、装置、设备及存储介质
CN106453444B (zh) 缓存数据共享的方法及设备
EP3005740B1 (en) Identifying resources from a device in a communications network
CN109547508B (zh) 一种实现资源访问的方法、装置及系统
US20210392200A1 (en) Systems and methods for remote network topology discovery
CN112839076B (zh) 数据存储、读取方法、网关、电子设备及存储介质
CN109873855A (zh) 一种基于区块链网络的资源获取方法和系统
CN111147583A (zh) 一种http重定向重写方法及装置
CN113301079B (zh) 一种数据的获取方法、系统、计算设备及存储介质
CN111107039A (zh) 一种基于tcp连接的通信方法、装置及系统
US20220263759A1 (en) Addressing method, addressing system, and addressing apparatus
CN114048028A (zh) 服务调用方法、装置、存储介质和电子设备
CN113542319A (zh) 用于Dubbo框架中的服务提供实体变更通知方法、装置及系统
CN114979025B (zh) 资源刷新方法、装置、设备及可读存储介质
JP2018101184A (ja) 情報処理システム、データ送信方法及び情報処理装置
CN110138872B (zh) 一种用于网络代理的计算机可读介质
CN118175174A (zh) 物联网设备的网络访问方法及装置
CN116016643A (zh) 服务发现方法及系统
KR101635702B1 (ko) P2p 연결을 기초로 클라이언트 노드에 서비스하는 서비스 인프라스트럭처
CN114124890A (zh) 一种确定方法、虚拟路由器、控制设备及域名解析系统

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
RJ01 Rejection of invention patent application after publication

Application publication date: 20200505

RJ01 Rejection of invention patent application after publication