本发明涉及充电桩通信的技术领域,尤其是涉及一种基于域名的充电桩通信方法、装置、设备及存储介质。
背景技术:
目前,在充电桩与服务端进行网络通信时,通过tcp/ip协议,为每台充电桩分配ip地址以及端口号,与服务端进行通信。
现有的方法中,由于充电桩不断普及,设有充电桩的地方以及数量逐渐增大,因此通过为每一充电桩分配ip地址以及端口号会给服务端的负载增加压力,不利于对充电桩的进一步发展与普及。
技术实现要素:
本发明的目的是提供一种均衡与充电桩进行通信的服务端的负载的基于域名的充电桩通信方法、装置、设备及存储介质。
本发明的上述发明目的一是通过以下技术方案得以实现的:
一种基于域名的充电桩通信方法,所述基于域名的充电桩通信方法包括:
获取充电站中的充电桩的数量;
根据所述充电站中的所述充电桩数量,为所述充电桩分配服务端域名;
所述充电站的所述充电桩通过所述服务端域名与服务端通信。
通过采用上述技术方案,为充电站中的充电桩分配服务端域名的方式,建立充电柱与服务端的通信,替代了原有的为每一充电桩均分配一个ip地址与端口,即只需为充电站分配一个端口,即可满足该充电站内所有的充电桩与服务端的通信,能够均衡服务端的负载,有利于充电桩的进一步普及与发展。
本发明进一步设置为:所述根据所述充电站中的所述充电桩数量,为所述充电桩分配服务端域名,包括:
根据所述充电桩的数量,为所述充电站中每一充电桩分配ip地址;
根据每一所述充电桩的对应的ip地址,为所述ip地址分配服务端域名。
通过采用上述技术方案,为每一充电桩分配了ip地址后,为该充电站分配一个服务端域名,使得充电桩能够通过域名的方式与服务端进行通信。
本发明进一步设置为:所述充电站的所述充电桩通过所述服务端域名与服务端通信,包括:
使用nginx技术搭建反向代理服务器,并将所述服务端域名与所述反向代理服务器相关联;
若所述反向代理服务器获取到所述充电桩发送的信息,则将获取到的所述消息发送至所述服务端中的所述服务器。
通过采用上述技术方案,使用nginx技术搭建的反向代理服务器,能够通过该反向代理服务器,反向代理了多台真实的业务处理服务器,能够实现分布式部署服务端中的各个服务器,进一步实现了均衡服务端的负载。
本发明进一步设置为:获取所述服务端中每一服务器中的负载,并根据所述负载获取负载最小对应的服务器;
所述反向代理服务器将获取到的所述消息发送至所述负载最小对应的服务器中。
通过采用上述技术方案,获取负载最小的服务器,并将获取到的信息发送至负载最小的服务器,能够合理利用服务器资源。
本发明进一步设置为:在所述充电站的所述充电桩通过所述服务端域名与服务端通的步骤之后,所述基于域名的充电桩通信方法还包括:
所述反向代理服务器通过心跳检测的方式检测所述服务端中的每一服务器;
若检测到有服务器发生故障,则发出报警消息。
通过采用上述技术方案,采用心跳检测的方式,对服务端中的各服务器进行检测,能够保证在有服务器出现故障时,及时发出报警,提高了服务端的稳定性。
本发明的上述发明目的二是通过以下技术方案得以实现的:
一种基于域名的充电桩通信方法,所述基于域名的充电桩通信方法包括:
获取充电站中的充电桩的数量;
根据所述充电站中的所述充电桩数量,为所述充电桩分配服务端域名;
所述充电站的所述充电桩通过所述服务端域名与服务端通信。
通过采用上述技术方案,为充电站中的充电桩分配服务端域名的方式,建立充电柱与服务端的通信,替代了原有的为每一充电桩均分配一个ip地址与端口,即只需为充电站分配一个端口,即可满足该充电站内所有的充电桩与服务端的通信,能够均衡服务端的负载,有利于充电桩的进一步普及与发展。
本发明的上述发明目的三是通过以下技术方案得以实现的:
一种计算机设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述基于域名的充电桩通信方法的步骤。
本发明的上述发明目的四是通过以下技术方案得以实现的:
一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现上述基于域名的充电桩通信方法的步骤。
综上所述,本发明的有益技术效果为:
1.为充电站中的充电桩分配服务端域名的方式,建立充电柱与服务端的通信,替代了原有的为每一充电桩均分配一个ip地址与端口,即只需为充电站分配一个端口,即可满足该充电站内所有的充电桩与服务端的通信,能够均衡服务端的负载,有利于充电桩的进一步普及与发展;
2.采用心跳检测的方式,对服务端中的各服务器进行检测,能够保证在有服务器出现故障时,及时发出报警,提高了服务端的稳定性。
附图说明
图1是本发明一实施例中基于域名的充电桩通信方法的一流程图;
图2是本发明一实施例中基于域名的充电桩通信方法中步骤s20的实现流程图;
图3是本发明一实施例中基于域名的充电桩通信方法中步骤s30的实现流程图;
图4是本发明一实施例中基于域名的充电桩通信方法中步骤s32的实现流程图;
图5是本发明一实施例中基于域名的充电桩通信方法的另一实现流程图;
图6是本发明一实施例中基于域名的充电桩通信系统的一原理框图;
图7是本发明一实施例中计算机设备的一示意图。
具体实施方式
以下结合附图对本发明作进一步详细说明。
实施例一:
在一实施例中,如图1所示,为本发明公开的一种基于域名的充电桩通信方法,包括如下步骤:
s10:获取充电站中的充电桩的数量。
在本实施例中,充电站和汽车加油站相类似,是一种给电动车进行“加电”的设施场所。充电桩是指在充电桩中,具体为电动车进行充电的装置。其通过电枪与电动车的车载电池连接并进行充电,并可以通过网络系统与监控服务端进行通信。
具体地,通过存储有该充电站中充电桩信息的数据库中,获取该充电站中的充电桩的数量。
s20:根据充电站中的充电桩数量,为充电桩分配服务端域名。
在本实施例中,域名是指由一串用点分隔的名字组成的internet上某一台计算机或计算机组的名称,用于在数据传输时标识计算机的电子方位。
具体地,根据该充电站中的充电桩的数量,为每一充电桩分配ip地址,在通过域名服务器将该ip地址与域名相对应,实现为充电桩分配服务端域名。
s30:充电站的充电桩通过服务端域名与服务端通信。
具体地,通过将服务端域名将充电桩与服务端建立通信,服务端可以通过该建立好的通信,获取充电桩的信息,例如充电桩的充电量等;同时,充电桩也可获取服务端发送的消息。
在本实施例中,为充电站中的充电桩分配服务端域名的方式,建立充电柱与服务端的通信,替代了原有的为每一充电桩均分配一个ip地址与端口,即只需为充电站分配一个端口,即可满足该充电站内所有的充电桩与服务端的通信,能够均衡服务端的负载,有利于充电桩的进一步普及与发展。
在一实施例中,如图2所示,在步骤s20中,即根据充电站中的充电桩数量,为充电桩分配服务端域名,具体包括如下步骤:
s21:根据充电桩的数量,为充电站中每一充电桩分配ip地址。
具体地,根据该充电站中的充电桩的数量,划分ip地址的范围。进一步地,根据tcp/ip协议,为该充电站中的每一充电桩分配一ip地址,且该充电站中的所有充电桩对应的ip地址均属于同一子网。
s22:根据每一充电桩的对应的ip地址,为ip地址分配服务端域名。
具体地,通过为该充电站中设置一服务端域名,并将该ip地址与该服务端域名进行关联。从而实现为该ip地址分配服务端域名。
在一实施例中,如图3所示,在步骤s30中,即充电站的充电桩通过服务端域名与服务端通信,包括如下步骤:
s31:使用nginx技术搭建反向代理服务器,并将服务端域名与反向代理服务器相关联。
在本实施例中,nginx技术是指一个高性能的http和反向代理服务,也是一个imap/pop3/smtp服务。反向代理服务器的是指用于接收充电桩信息,并将该充电桩信息发送至服务端的服务器,可理解的,该反向代理服务器是服务端第一个代理,客户端即充电桩无需知道将信息发送发送至服务端中具体哪一个服务器。
具体地,通过搭建好的反向代理服务器,用过nginx技术将该服务端域名与反向服务器相关联。
s32:若反向代理服务器获取到充电桩发送的信息,则将获取到的消息发送至服务端中的服务器。
具体地,在反向代理服务器获取到充电桩中发送的信息后,将该信息发送至服务端中的任意服务器,对该信息进行处理。
在一实施例中,如图4所示,在步骤s32中,即若反向代理服务器获取到充电桩发送的信息,则将获取到的消息发送至服务端中的服务器,包括如下步骤:
s321:获取服务端中每一服务器中的负载,并根据负载获取负载最小对应的服务器。
服务端可以用独立的服务或者是多个服务器组成的服务器集群来实现。在本实施例中,该服务端为有多个服务器组成的服务器集群,通过分布式部署,对充电桩的信息进行处理。
具体地,可以通过集群消息通道,例如kafka,获取每一服务器的当前处理量,作为该服务器的负载。进一步地,通过判断该服务端中每一服务器当前负载,并获取负载最小对应的服务器,作为接收并处理充电桩的信息的服务器。
s322:反向代理服务器将获取到的消息发送至负载最小对应的服务器中。
具体地,在反向代理服务器获取到充电桩的消息后,将该消息发送至当前负载最小的服务器进行处理,进一步起到了负载均衡的效果。
在一实施例中,如图5所示,在步骤s30之后,基于域名的充电桩通信方法还包括:
s40:反向代理服务器通过心跳检测的方式检测服务端中的每一服务器。
在本实施例中,心跳检测是指反向代理服务器定时向用于检测服务端中的每一服务器的工作状态的数据包。
具体地,反向代理服务器通过心跳检测的方式检测服务端中的每一服务器的工作状态。服务器在获取到该数据包后,需反馈对应的消息,以反映当前工作状态。
s50:若检测到有服务器发生故障,则发出报警消息。
具体地,在服务器获取到该检测工作状态的数据包后,未能够反馈对应的消息,则判定该服务器发生故障。进一步地,将该服务器的信息,组成报警消息,发送至对该服务端进行监控的监控平台。
应理解,上述实施例中各步骤的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本发明实施例的实施过程构成任何限定。
实施例二:
在一实施例中,提供一种基于域名的充电桩通信装置,该基于域名的充电桩通信装置与上述实施例中基于域名的充电桩通信方法一一对应。如图6所示,该基于域名的充电桩通信装置包括数量获取模块10、域名解析模块20和通信模块30。各功能模块详细说明如下:
数量获取模块10,用于获取充电站中的充电桩的数量;
域名解析模块20,用于根据充电站中的充电桩数量,为充电桩分配服务端域名;
通信模块30,用于充电站的充电桩通过服务端域名与服务端通信。
优选地,域名解析模块20包括:
ip分配子模块21,用于根据充电桩的数量,为充电站中每一充电桩分配ip地址;
域名分配子模块22,用于根据每一充电桩的对应的ip地址,为ip地址分配服务端域名。
优选地,通信模块30包括:
关联子模块31,用于使用nginx技术搭建反向代理服务器,并将服务端域名与反向代理服务器相关联;
通信子模块32,用于若反向代理服务器获取到充电桩发送的信息,则将获取到的消息发送至服务端中的服务器。
优选地,通信子模块32包括:
负载检测单元321,用于获取服务端中每一服务器中的负载,并根据负载获取负载最小对应的服务器;
通信单元322,用于反向代理服务器将获取到的消息发送至负载最小对应的服务器中。
优选地,基于域名的充电桩通信装置还包括:
心跳检测模块40,用于反向代理服务器通过心跳检测的方式检测服务端中的每一服务器;
报警模块50,用于若检测到有服务器发生故障,则发出报警消息。
关于基于域名的充电桩通信装置的具体限定可以参见上文中对于基于域名的充电桩通信方法的限定,在此不再赘述。上述基于域名的充电桩通信装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
实施例三:
在一个实施例中,提供了一种计算机设备,该计算机设备可以是服务器,其内部结构图可以如图7所示。该计算机设备包括通过系统总线连接的处理器、存储器、网络接口和数据库。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统、计算机程序和数据库。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的数据库用于存储充电桩信息。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种基于域名的充电桩通信方法。
在一个实施例中,提供了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行计算机程序时实现以下步骤:
获取充电站中的充电桩的数量;
根据充电站中的充电桩数量,为充电桩分配服务端域名;
充电站的充电桩通过服务端域名与服务端通信。
实施例四:
在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现以下步骤:
获取充电站中的充电桩的数量;
根据充电站中的充电桩数量,为充电桩分配服务端域名;
充电站的充电桩通过服务端域名与服务端通信。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(rom)、可编程rom(prom)、电可编程rom(eprom)、电可擦除可编程rom(eeprom)或闪存。易失性存储器可包括随机存取存储器(ram)或者外部高速缓冲存储器。作为说明而非局限,ram以多种形式可得,诸如静态ram(sram)、动态ram(dram)、同步dram(sdram)、双数据率sdram(ddrsdram)、增强型sdram(esdram)、同步链路(synchlink)dram(sldram)、存储器总线(rambus)直接ram(rdram)、直接存储器总线动态ram(drdram)、以及存储器总线动态ram(rdram)等。
所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,仅以上述各功能单元、模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能单元、模块完成,即将所述装置的内部结构划分成不同的功能单元或模块,以完成以上描述的全部或者部分功能。
以上所述实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围,均应包含在本发明的保护范围之内。