本发明涉及网络通信技术领域,尤其涉及一种基于tcp协议的长连接微服务通信方法。
背景技术:
现有微服务间的通信往往基于http协议,即短连接,每次建立服务端连接都需要经过多次握手,才能建立通信,这种通信方式效率偏低,而且连接不稳定,容易丢包,连接不复用,造成资源浪费。
技术实现要素:
本发明目的就是为了弥补已有技术的缺陷,提供一种基于tcp协议的长连接微服务通信方法。
本发明是通过以下技术方案实现的:
一种基于tcp协议的长连接微服务通信方法,包括以下步骤:通过web下载g-rpc源码包到各个微服务工程的tcp服务器内,并编译g-rpc,在tcp服务器内配置swoole的监听ip和端口号,并配置nginx反向代理,响应请求注册网络指令,建立tcp链路;在g-rpc配置项里开启长链接请求,当一个tcp服务器监听端口接收到外部服务器发起的tcp长链接请求或表计的数据发送请求,发起一个或多个与外部服务器建立tcp通信的tcp通信链接请求;开启tcp链路,在接收或发送数据后,主动断开tcp链路。
还包括以下步骤:在tcp链路建立后,若tcp链接通道在一个周期内无数据通信,则发送心跳帧给外部服务器;若在发送预设次数的心跳帧后,外部设备无响应,则重新建立tcp链路。
本发明的优点是:本发明在tcp服务器内配置swoole的监听ip和端口号,并配置nginx反向代理,在g-rpc配置项里开启长链接请求,提高连接速度,复用连接不浪费,稳定不丢包,效率和性能明显提高。
附图说明
图1为本发明方法效果图。
具体实施方式
如图1所示,一种基于tcp协议的长连接微服务通信方法,包括以下步骤:通过web下载g-rpc源码包到各个微服务工程的tcp服务器内,并编译g-rpc,在tcp服务器内配置swoole的监听ip和端口号,并配置nginx反向代理,响应请求注册网络指令,建立tcp链路;在g-rpc配置项里开启长链接请求,当一个tcp服务器监听端口接收到外部服务器发起的tcp长链接请求或表计的数据发送请求,发起一个或多个与外部服务器建立tcp通信的tcp通信链接请求;开启tcp链路,在接收或发送数据后,主动断开tcp链路。
还包括以下步骤:在tcp链路建立后,若tcp链接通道在一个周期内无数据通信,则发送心跳帧给外部服务器;若在发送预设次数的心跳帧后,外部设备无响应,则重新建立tcp链路。