CN110290003A - 动态分配短信供应商的tcp连接数的方法及系统 - Google Patents

动态分配短信供应商的tcp连接数的方法及系统 Download PDF

Info

Publication number
CN110290003A
CN110290003A CN201910567430.4A CN201910567430A CN110290003A CN 110290003 A CN110290003 A CN 110290003A CN 201910567430 A CN201910567430 A CN 201910567430A CN 110290003 A CN110290003 A CN 110290003A
Authority
CN
China
Prior art keywords
connection number
server
mean value
short message
cluster
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
CN201910567430.4A
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.)
Ctrip Travel Information Technology Shanghai Co Ltd
Original Assignee
Ctrip Travel Information Technology Shanghai 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 Ctrip Travel Information Technology Shanghai Co Ltd filed Critical Ctrip Travel Information Technology Shanghai Co Ltd
Priority to CN201910567430.4A priority Critical patent/CN110290003A/zh
Publication of CN110290003A publication Critical patent/CN110290003A/zh
Pending legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/06Management of faults, events, alarms or notifications
    • H04L41/0654Management of faults, events, alarms or notifications using network fault recovery
    • H04L41/0663Performing the actions predefined by failover planning, e.g. switching to standby network elements
    • 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/02Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
    • 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
    • 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
    • H04L67/143Termination or inactivation of sessions, e.g. event-controlled end of session
    • H04L67/145Termination or inactivation of sessions, e.g. event-controlled end of session avoiding end of session, e.g. keep-alive, heartbeats, resumption message or wake-up for inactive or interrupted session
    • 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]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W4/00Services specially adapted for wireless communication networks; Facilities therefor
    • H04W4/12Messaging; Mailboxes; Announcements
    • H04W4/14Short messaging services, e.g. short message services [SMS] or unstructured supplementary service data [USSD]

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Health & Medical Sciences (AREA)
  • Cardiology (AREA)
  • General Health & Medical Sciences (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer And Data Communications (AREA)

Abstract

本发明公开了一种动态分配短信供应商的TCP连接数的方法及系统,所述方法包括:设置至少一集群,每一所述集群包括若干台服务器,所述至少一集群共享一共享节点;定期获取所述至少一集群中每台服务器的注册信息及连接信息;计算当前的均值连接数;对每一服务器记录的当前连接数与所述均值连接数进行比较,对于所述当前连接数小于或等于所述均值连接数的服务器,获得新的连接,对于所述当前连接数大于所述均值连接数的服务器,释放连接。本发明通过集群化的架构设计,使任一台服务器的启停都不会对集群的整体服务造成影响,从而保证稳定可靠的对外服务,并且每一集群都可以水平动态扩容,使整体实现高扩展性。

Description

动态分配短信供应商的TCP连接数的方法及系统
技术领域
本发明涉及计算机领域,特别涉及一种动态分配短信供应商的TCP连接数的方法及系统。
背景技术
短信通道是为了实现与客户指定号码进行短信批量发送和自定义发送的目的而由运营商直接提供的短信发送接口,通讯平台的短信通道与短信供应商保持TCP(传输控制协议)长连接,其连接数上限为预先商定的固定值,即供应商所能提供的固定值,如果通信平台的短信通道一旦超过固定值的的连接则会被供应商拒绝。早期的短信只能启动两台机器,也就是说,短信通道和供应商的总连接数由两台机器平分。如果其中一台机器单机起停或发生故障都会带来影响,使信息传输失败。
发明内容
本发明要解决的技术问题是为了克服现有技术中短信通道与短信供应商之间连接不稳定,某一服务器发生故障会使信息传输失败的缺陷,提供一种稳定的、高可用性的动态分配连接数的方法及系统。
本发明是通过下述技术方案来解决上述技术问题:
本发明提供了一种动态分配短信供应商的TCP连接数的方法,所述方法包括:
设置至少一集群,每一所述集群包括若干台服务器,所述服务器用于通过短信供应商提供的连接接口与短信供应商连接,所述至少一集群共享一共享节点,所述共享节点用于共享所述至少一集群中每台服务器的注册信息和连接信息;
定期获取所述至少一集群中每台服务器的注册信息及连接信息;
计算当前的均值连接数,所述均值连接数为短信供应商提供的TCP总连接数除以所有集群中的服务器总数;
对每一服务器记录的当前连接数与所述均值连接数进行比较,对于所述当前连接数小于或等于所述均值连接数的服务器,获得新的连接,对于所述当前连接数大于所述均值连接数的服务器,释放连接。
其中,通讯平台的短信通道与短信供应商保持TCP长连接,应用对上游提供httpRESTful(一种标准的超文本传输协议的方法)服务并且与下游短信供应商保持TCP长连接,并且短信供应商提供的TCP的总的连接数可以分配到所述集群中的每一台机器上。
其中,短信供应商提供的TCP总连接数为预先商定的固定值,如果超过该固定值,则连接将会被拒绝。
本发明中,所述共享节点通过Redis(一种数据库)实现。
较佳地,计算当前的均值连接数的步骤前还包括:
判断每一服务器记录的当前连接数与所述共享节点中记录的对应的服务器的连接数是否相等,若不相等,则将所述当前连接数的值赋值给所述共享节点中记录的对应的服务器的连接数,若相等,曾无需更新所述共享节点中记录的对应的服务器的连接数的值。
较佳地,对每一服务器记录的当前连接数与所述均值连接数进行比较后,
对于所述当前连接数小于或等于所述均值连接数的服务器,获取所有集群中的当前连接信息并判断当前所有集群中的总的连接数是否达到所述短信供应商提供的总连接数,若未达到,则对应的服务器获得新的连接,并设置所述共享节点中记录的对应的服务器的连接数加一,若达到,则对应的服务器无需获得新的连接;
对于所述当前连接数大于所述均值连接数的服务器,判断所有集群中是否存在其它服务器的连接数未达到所述均值连接数,若是,则对应的服务器释放连接,释放的连接数量为对应的服务器的当前连接数减所述均值连接数,若否,则对应的服务器无需释放连接。
较佳地,对每一服务器记录的当前连接数与所述均值连接数进行比较后,对于所述当前连接数小于或等于所述均值连接数的服务器,
对所述共享节点中记录的对应的服务器的连接数加锁以阻止其它服务器更新所述共享节点中记录的对应的服务器的连接数的值;且在对应服务器获得新的连接,并设置共享节点中记录的对应的服务器的连接数加一后,释放所述锁。
其中,如果对所述共享节点中记录的对应的服务器的连接数加锁失败则退出这一轮的加锁,并且继续等待下一次的加锁。
较佳地,所述动态分配短信供应商的TCP连接数的方法中的当前所有集群中的总的连接数分摊到所述至少一集群中;和/或,
当有新的服务器加入任一集群时,则在所述共享节点中写入所述服务器的注册信息;
当某一服务器退出所述集群时,则在所述共享节点中删除所述服务器的注册信息;
当某一服务器发生意外宕机时,若经过时间阈值所述服务器仍未恢复,则删除所述服务器的注册信息。
其中,所述时间阈值为一固定值,可以根据实际情况进行设置。
本发明还提供了一种动态分配短信供应商的TCP连接数的系统,所述系统包括:
设置模块,用于设置至少一集群,每一所述集群包括若干台服务器,所述服务器用于通过短信供应商提供的连接接口与短信供应商连接,所述至少一集群共享一共享节点,所述共享节点用于共享所述至少一集群中每台服务器的注册信息和连接信息;
获取模块,用于定期获取所述至少一集群中每台服务器的注册信息及连接信息;
计算模块,用于计算当前的均值连接数,所述均值连接数为短信供应商提供的TCP总连接数除以所有集群中的服务器总数;
比较模块,用于对每一服务器记录的当前连接数与所述均值连接数进行比较,对于所述当前连接数小于或等于所述均值连接数的服务器,获得新的连接,对于所述当前连接数大于所述均值连接数的服务器,释放连接。
其中,通讯平台的短信通道与短信供应商保持TCP长连接,应用对上游提供httpRESTful服务并且与下游短信供应商保持TCP长连接,并且短信供应商提供的TCP的总的连接数可以分配到所述集群中的每一台机器上。
其中,短信供应商提供的TCP总连接数为预先商定的固定值,如果超过该固定值,则连接将会被拒绝。
本发明中,所述共享节点通过Redis实现。
较佳地,所述动态分配短信供应商的TCP连接数的系统还包括:
赋值模块,用于判断每一服务器记录的当前连接数与所述共享节点中记录的对应的服务器的连接数是否相等,若不相等,则将所述当前连接数的值赋值给所述共享节点中记录的对应的服务器的连接数,若相等,曾无需更新所述共享节点中记录的对应的服务器的连接数的值。
较佳地,所述比较模块中包括有第一判断单元及第二判断单元;
所述第一判断单元用于对于所述当前连接数小于或等于所述均值连接数的服务器,获取所有集群中的当前连接信息并判断当前所有集群中的总的连接数是否达到所述短信供应商提供的总连接数,若未达到,则对应的服务器获得新的连接,并设置所述共享节点中记录的对应的服务器的连接数加一,若达到,则对应的服务器无需获得新的连接;
所述第二判断单元用于对于所述当前连接数大于所述均值连接数的服务器,判断所有集群中是否存在其它服务器的连接数未达到所述均值连接数,若是,则对应的服务器释放连接,释放的连接数量为对应的服务器的当前连接数减所述均值连接数,若否,则对应的服务器无需释放连接。
较佳地,所述比较模块还包括有上锁单元,
所述上锁单元用于在所述比较模块对每一服务器记录的当前连接数与所述均值连接数进行比较后,对于所述当前连接数小于或等于所述均值连接数的服务器,
对所述共享节点中记录的对应的服务器的连接数加锁以阻止其它服务器更新所述共享节点中记录的对应的服务器的连接数的值;
所述上锁单元还用于在第一判断模块在对应服务器获得新的连接,并设置共享节点中记录的对应的服务器的连接数加一后,释放所述锁。
其中,如果对所述共享节点中记录的对应的服务器的连接数加锁失败则退出这一轮的加锁,并且继续等待下一次的加锁。
较佳地,所述动态分配短信供应商的TCP连接数的系统中的当前所有集群中的总的连接数分摊到所述至少一集群中;和/或,
所述动态分配短信供应商的TCP连接数的系统还包括有注册模块,所述注册模块用于当有新的服务器加入任一集群时,则在所述共享节点中写入所述服务器的注册信息;
当某一服务器退出所述集群时,则在所述共享节点中删除所述服务器的注册信息;
当某一服务器发生意外宕机时,若经过时间阈值所述服务器仍未恢复,则删除所述服务器的注册信息。
其中,所述时间阈值为一固定值,可以根据实际情况进行设置。
本发明的积极进步效果在于:
本发明通过在集群中共享注册信息及并自动分配连接数,使任一台服务器的启停都不会对集群的整体服务造成影响,使任何一集群发生故障,其传输的信息都可以通过共享节点转发到另一集群,从而保证稳定可靠的对外服务,并且每一集群都可以水平动态扩容,使整体实现高扩展性。
附图说明
图1为实施例1的一种动态分配短信供应商的TCP连接数的方法的流程图。
图2为本实施例1中的集群的内部构架图。
图3为实施例2的一种动态分配短信供应商的TCP连接数的系统的模块示意图。
具体实施方式
下面通过实施例的方式进一步说明本发明,但并不因此将本发明限制在所述的实施例范围之中。
实施例1
本实施例提供了一种动态分配短信供应商的TCP连接数的方法,所述方法包括:
步骤11、设置两个集群,每一集群包括若干台服务器,所述服务器用于通过短信供应商提供的连接接口与短信供应商连接,所述两个集群共享一共享节点。
其中,所述共享节点用于共享两个集群中每台服务器的注册信息和连接信息。为了使本实施例的方法兼容性更高、用户体验度更好,本实施例使用高性能且轻量级的Redis作为共享节点。
在其它的实施例中,集群的数量可以根据实际情况进行选择,并不局限于本实施例的两个集群这一设置。
步骤12、定期获取所述两个集群中每台服务器的注册信息及连接信息。
其中,所述两个集群中的每台服务器在存活期间都会定期获取所有集群中的服务器的注册信息和连接分配信息。
步骤13、判断每一服务器记录的当前连接数与所述共享节点中记录的对应的服务器的连接数是否相等,若不相等,则将所述当前连接数的值赋值给所述共享节点中记录的对应的服务器的连接数;
若相等,曾无需更新所述共享节点中记录的对应的服务器的连接数的值。
步骤14、计算当前的均值连接数,所述均值连接数为短信供应商提供的TCP总连接数除以所有集群中的服务器总数。
步骤15、对每一服务器记录的当前连接数与所述均值连接数进行比较,
对于所述当前连接数小于或等于所述均值连接数的服务器则执行步骤16、获得新的连接,对于所述当前连接数大于所述均值连接数的服务器则执行步骤17、释放连接。
本实施例中,通讯平台的短信通道与短信供应商保持TCP长连接,连接数的上线为预先商定的固定值,超过上限的连接则会被拒绝。代理应用对上游提供http RESTful服务,同时通过cmpp(中国移动点对点协议)、smpp(一种开放的消息转换协议)、smgp(短消息网关协议)、sgip(中国联合通信公司短消息网关系统接口协议)等协议与下游短信供应商保持TCP长连接。短信供应商提供的TCP连接数平均分配到集群内的所有机器,总数固定。集群内的服务器通过一个共享节点同步注册信息和连接数分配信息。为了更好的理解本实施例集群与服务器以及集群之间的关系,图2出示了本实施例中的集群的内部构架图。
如图2所示,本实施例包括有两个集群,即集群A与集群B,每个集群都包括有若干台服务器102,若干台服务器102通过共享节点101来同步注册信息和连接分配信息。
其中,当前所有集群中的总的连接数平均分摊到两个集群中,从而克服原来总的连接数只能在两个服务器中分配的缺陷,从而也可以完成对上游无感知的平稳切换。集群A和集群B部署在不同的机房,并且集群A和集群B之间使用转发机制,当一个机房的出口发生网络故障时,传输的信息可以转发到另一个集群,从而可以实现可靠的对外服务;另外,由于每台服务器只对自己负责,所以任何一台服务器的启停都不会对集群造成影响,因而可以保持整体架构的稳定性。
本实施例中,通过在集群中部署服务器,通过共享节点共享连接及注册信息,从而可以及时准确的同步集群中的注册及连接分配信息,同时也可以提供可靠稳定的对外服务。
本实施例中,通过对当前连接数与所述共享节点中记录的对应的服务器的连接数的比较,从而防止因为数据更新不及时造成连接分配不准确的影响,因而使动态分配连接效率更高,分配结果更准确。
为了有效获得连接数以及避免服务器抢占不到连接,在步骤15中,对每一服务器记录的当前连接数与所述均值连接数进行比较后,对于所述当前连接数小于或等于所述均值连接数的服务器,获取所有集群中的当前连接信息并判断当前所有集群中的总的连接数是否达到所述短信供应商提供的总连接数,若未达到,则对应的服务器获得新的连接,并设置所述共享节点中记录的对应的服务器的连接数加一,若达到,则对应的服务器无需获得新的连接;
对于所述当前连接数大于所述均值连接数的服务器,判断所有集群中是否存在其它服务器的连接数未达到所述均值连接数,若是,则对应的服务器释放连接,释放的连接数量为对应的服务器的当前连接数减所述均值连接数,若否,则对应的服务器无需释放连接。
通过对当前总连接数与短信供应商提供的总连接数的比对,可以避免服务器获得无效的连接,因而可以使动态分配连接的结果更准确、效率更高。
为了防止连接数分配错误,在步骤15中,对每一服务器记录的当前连接数与所述均值连接数进行比较后,对于所述当前连接数小于或等于所述均值连接数的服务器,对所述共享节点中记录的对应的服务器的连接数加锁以阻止其它服务器更新所述共享节点中记录的对应的服务器的连接数的值;且在对应服务器获得新的连接,并设置共享节点中记录的对应的服务器的连接数加一后,释放所述锁。
其中,如果对所述共享节点中记录的对应的服务器的连接数加锁失败则退出这一轮的加锁,并且继续等待下一个周期。
本实施例中,通过引入分布式锁,可以防止多个服务器抢占同一连接,进而避免连接的无效分配,从而使连接动态分配的效率更高、更稳定。
为了使集群可以有高扩展性,本实施例中,当有新的服务器加入任一集群时,则在所述共享节点中写入所述服务器的注册信息;当某一服务器退出所述集群时,则在所述共享节点中删除所述服务器的注册信息;当某一服务器发生意外宕机时,若经过时间阈值所述服务器仍未恢复,则删除所述服务器的注册信息。
其中,所述时间阈值为一固定值,可以根据实际情况进行设置。
本实施例中,通过在共享节点中增加或删除服务器的注册信息,可以实现集群内服务器的水平动态扩容,从而使短信通道的服务能力更佳。
本实施例中,通过为通讯平台的短信服务实现了集群化的架构设计,从而减小了单机故障或生产发布时短暂停机对服务能力的影响,既保证通讯平台的短信连接服务的高稳定性与高可靠性,又保证其高扩展性与高效率性。
实施例2
本实施例提供了一种动态分配短信供应商的TCP连接数的系统,所述系统包括:设置模块21、获取模块22、计算模块23、比较模块24、赋值模块25及注册模块26。
设置模块21用于设置至少一集群,每一所述集群包括若干台服务器,所述服务器用于通过短信供应商提供的连接接口与短信供应商连接,所述至少一集群共享一共享节点,所述共享节点用于共享所述至少一集群中每台服务器的注册信息和连接信息;
为了使本实施例的方法兼容性更高、用户体验度更好,本实施例使用高性能且轻量级的Redis作为共享节点。
获取模块22用于定期获取所述至少一集群中每台服务器的注册信息及连接信息;
其中,所述每个集群中的每台服务器在存活期间都会定期获取所有集群中的服务器的注册信息和连接分配信息。
计算模块23用于计算当前的均值连接数,所述均值连接数为短信供应商提供的TCP总连接数除以所有集群中的服务器总数;
比较模块24用于对每一服务器记录的当前连接数与所述均值连接数进行比较,对于所述当前连接数小于或等于所述均值连接数的服务器,获得新的连接,对于所述当前连接数大于所述均值连接数的服务器,释放连接。
赋值模块25用于判断每一服务器记录的当前连接数与所述共享节点中记录的对应的服务器的连接数是否相等,若不相等,则将所述当前连接数的值赋值给所述共享节点中记录的对应的服务器的连接数。
注册模块26用于当有新的服务器加入任一集群时,则在所述共享节点中写入所述服务器的注册信息;当某一服务器退出所述集群时,则在所述共享节点中删除所述服务器的注册信息;当某一服务器发生意外宕机时,若经过时间阈值所述服务器仍未恢复,则删除所述服务器的注册信息。
本实施例中,通讯平台的短信通道与短信供应商保持TCP长连接,连接数的上线为预先商定的固定值,超过上限的连接则会被拒绝。代理应用对上游提供http RESTful服务,同时通过cmpp、smpp、smgp、sgip等协议与下游短信供应商保持TCP长连接。短信供应商提供的TCP连接数平均分配到集群内的所有机器,总数固定。
本实施例中,当前所有集群中的总的连接数分摊到至少一集群中,从而克服原来总的连接数只能在少数服务器中分配的缺陷,从而也可以完成对上游无感知的平稳切换;另外,由于每台服务器只对自己负责,所以任何一台服务器的启停都不会对集群造成影响,因而可以保持整体架构的稳定性。
本实施例中,通过在集群中部署服务器,通过共享节点共享连接及注册信息,从而可以及时准确的同步集群中的注册及连接分配信息,同时也可以提供可靠稳定的对外服务。
本实施例的比较模块24还包括有第一判断单元241、第二判断单元242及上锁单元243;
第一判断单元241用于对于所述当前连接数小于或等于所述均值连接数的服务器,获取所有集群中的当前连接信息并判断当前所有集群中的总的连接数是否达到所述短信供应商提供的总连接数,若未达到,则对应的服务器获得新的连接,并设置所述共享节点中记录的对应的服务器的连接数加一。
第二判断单元242用于对于所述当前连接数大于所述均值连接数的服务器,判断所有集群中是否存在其它服务器的连接数未达到所述均值连接数,若是,则对应的服务器释放连接,释放的连接数量为对应的服务器的当前连接数减所述均值连接数。
上锁单元243用于在所述比较模块对每一服务器记录的当前连接数与所述均值连接数进行比较后,对于所述当前连接数小于或等于所述均值连接数的服务器,
对所述共享节点中记录的对应的服务器的连接数加锁以阻止其它服务器更新所述共享节点中记录的对应的服务器的连接数的值;
所述上锁单元243还用于在第一判断模块在对应服务器获得新的连接,并设置共享节点中记录的对应的服务器的连接数加一后,释放所述锁。
本实施例中,通过对当前连接数与所述共享节点中记录的对应的服务器的连接数的比较,从而防止因为数据更新不及时造成连接分配不准确的影响,因而避免由于更新延迟带来的误差。
通过对当前总连接数与短信供应商提供的总连接数的比对,可以避免服务器获得无效的连接,因而可以使动态分配连接的结果更准确、效率更高。
本实施例中,通过引入分布式锁,可以防止多个服务器抢占同一连接,进而避免连接的无效分配,从而使连接动态分配的效率更高、更稳定。
本实施例中,通过在共享节点中增加或删除服务器的注册信息,可以实现集群内服务器的水平动态扩容,从而使短信通道的服务能力更佳。
本实施例中,通过为通讯平台的短信服务实现了集群化的架构设计,从而减小了单机故障或生产发布时短暂停机对服务能力的影响,既保证通讯平台的短信连接服务的高稳定性与高可靠性,又保证其高扩展性与高效率性。
虽然以上描述了本发明的具体实施方式,但是本领域的技术人员应当理解,这仅是举例说明,本发明的保护范围是由所附权利要求书限定的。本领域的技术人员在不背离本发明的原理和实质的前提下,可以对这些实施方式做出多种变更或修改,但这些变更和修改均落入本发明的保护范围。

Claims (10)

1.一种动态分配短信供应商的TCP连接数的方法,其特征在于,所述方法包括:
设置至少一集群,每一所述集群包括若干台服务器,所述服务器用于通过短信供应商提供的连接接口与短信供应商连接,所述至少一集群共享一共享节点,所述共享节点用于共享所述至少一集群中每台服务器的注册信息和连接信息;
定期获取所述至少一集群中每台服务器的注册信息及连接信息;
计算当前的均值连接数,所述均值连接数为短信供应商提供的TCP总连接数除以所有集群中的服务器总数;
对每一服务器记录的当前连接数与所述均值连接数进行比较,对于所述当前连接数小于或等于所述均值连接数的服务器,获得新的连接,对于所述当前连接数大于所述均值连接数的服务器,释放连接。
2.如权利要求1所述的动态分配短信供应商的TCP连接数的方法,其特征在于,计算当前的均值连接数的步骤前还包括:
判断每一服务器记录的当前连接数与所述共享节点中记录的对应的服务器的连接数是否相等,若不相等,则将所述当前连接数的值赋值给所述共享节点中记录的对应的服务器的连接数。
3.如权利要求1所述的动态分配短信供应商的TCP连接数的方法,其特征在于,对每一服务器记录的当前连接数与所述均值连接数进行比较后,
对于所述当前连接数小于或等于所述均值连接数的服务器,获取所有集群中的当前连接信息并判断当前所有集群中的总的连接数是否达到所述短信供应商提供的总连接数,若未达到,则对应的服务器获得新的连接,并设置所述共享节点中记录的对应的服务器的连接数加一;
对于所述当前连接数大于所述均值连接数的服务器,判断所有集群中是否存在其它服务器的连接数未达到所述均值连接数,若是,则对应的服务器释放连接,释放的连接数量为对应的服务器的当前连接数减所述均值连接数。
4.如权利要求3所述的动态分配短信供应商的TCP连接数的方法,其特征在于,对每一服务器记录的当前连接数与所述均值连接数进行比较后,对于所述当前连接数小于或等于所述均值连接数的服务器,
对所述共享节点中记录的对应的服务器的连接数加锁以阻止其它服务器更新所述共享节点中记录的对应的服务器的连接数的值;且在对应服务器获得新的连接,并设置共享节点中记录的对应的服务器的连接数加一后,释放所述锁。
5.如权利要求1所述的动态分配短信供应商的TCP连接数的方法,其特征在于,所述动态分配短信供应商的TCP连接数的方法中的当前所有集群中的总的连接数分摊到所述至少一集群中;和/或,
当有新的服务器加入任一集群时,则在所述共享节点中写入所述服务器的注册信息;
当某一服务器退出所述集群时,则在所述共享节点中删除所述服务器的注册信息;
当某一服务器发生意外宕机时,若经过时间阈值所述服务器仍未恢复,则删除所述服务器的注册信息。
6.一种动态分配短信供应商的TCP连接数的系统,其特征在于,所述系统包括:
设置模块,用于设置至少一集群,每一所述集群包括若干台服务器,所述服务器用于通过短信供应商提供的连接接口与短信供应商连接,所述至少一集群共享一共享节点,所述共享节点用于共享所述至少一集群中每台服务器的注册信息和连接信息;
获取模块,用于定期获取所述至少一集群中每台服务器的注册信息及连接信息;
计算模块,用于计算当前的均值连接数,所述均值连接数为短信供应商提供的TCP总连接数除以所有集群中的服务器总数;
比较模块,用于对每一服务器记录的当前连接数与所述均值连接数进行比较,对于所述当前连接数小于或等于所述均值连接数的服务器,获得新的连接,对于所述当前连接数大于所述均值连接数的服务器,释放连接。
7.如权利要求6所述的动态分配短信供应商的TCP连接数的系统,其特征在于,所述动态分配短信供应商的TCP连接数的系统还包括:
赋值模块,用于判断每一服务器记录的当前连接数与所述共享节点中记录的对应的服务器的连接数是否相等,若不相等,则将所述当前连接数的值赋值给所述共享节点中记录的对应的服务器的连接数。
8.如权利要求6所述的动态分配短信供应商的TCP连接数的系统,其特征在于,所述比较模块中包括有第一判断单元及第二判断单元;
所述第一判断单元用于对于所述当前连接数小于或等于所述均值连接数的服务器,获取所有集群中的当前连接信息并判断当前所有集群中的总的连接数是否达到所述短信供应商提供的总连接数,若未达到,则对应的服务器获得新的连接,并设置所述共享节点中记录的对应的服务器的连接数加一;
所述第二判断单元用于对于所述当前连接数大于所述均值连接数的服务器,判断所有集群中是否存在其它服务器的连接数未达到所述均值连接数,若是,则对应的服务器释放连接,释放的连接数量为对应的服务器的当前连接数减所述均值连接数。
9.如权利要求8所述的动态分配短信供应商的TCP连接数的系统,其特征在于,所述比较模块还包括有上锁单元,
所述上锁单元用于在所述比较模块对每一服务器记录的当前连接数与所述均值连接数进行比较后,对于所述当前连接数小于或等于所述均值连接数的服务器,
对所述共享节点中记录的对应的服务器的连接数加锁以阻止其它服务器更新所述共享节点中记录的对应的服务器的连接数的值;
所述上锁单元还用于在第一判断模块在对应服务器获得新的连接,并设置共享节点中记录的对应的服务器的连接数加一后,释放所述锁。
10.如权利要求6所述的动态分配短信供应商的TCP连接数的系统,其特征在于,所述动态分配短信供应商的TCP连接数的系统中的当前所有集群中的总的连接数分摊到所述至少一集群中;和/或,
所述动态分配短信供应商的TCP连接数的系统还包括有注册模块,所述注册模块用于当有新的服务器加入任一集群时,则在所述共享节点中写入所述服务器的注册信息;
当某一服务器退出所述集群时,则在所述共享节点中删除所述服务器的注册信息;
当某一服务器发生意外宕机时,若经过时间阈值所述服务器仍未恢复,则删除所述服务器的注册信息。
CN201910567430.4A 2019-06-27 2019-06-27 动态分配短信供应商的tcp连接数的方法及系统 Pending CN110290003A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910567430.4A CN110290003A (zh) 2019-06-27 2019-06-27 动态分配短信供应商的tcp连接数的方法及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910567430.4A CN110290003A (zh) 2019-06-27 2019-06-27 动态分配短信供应商的tcp连接数的方法及系统

Publications (1)

Publication Number Publication Date
CN110290003A true CN110290003A (zh) 2019-09-27

Family

ID=68019226

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910567430.4A Pending CN110290003A (zh) 2019-06-27 2019-06-27 动态分配短信供应商的tcp连接数的方法及系统

Country Status (1)

Country Link
CN (1) CN110290003A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113301515A (zh) * 2020-06-01 2021-08-24 阿里巴巴集团控股有限公司 短信通道连接的处理方法、装置、系统、设备和存储介质

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101184081A (zh) * 2006-11-14 2008-05-21 西门子公司 通信网络中识别点对点业务的方法及装置
US20100316012A1 (en) * 2009-06-12 2010-12-16 Cygnus Broadband Systems and Methods for Intelligent Discard in a Communication Network
CN105703940A (zh) * 2015-12-10 2016-06-22 中国电力科学研究院 一种面向多级调度分布式并行计算的监控系统及监控方法
CN106254377A (zh) * 2016-09-09 2016-12-21 四川长虹电器股份有限公司 支持海量长连接的软负载均衡方法及系统
CN108667742A (zh) * 2018-08-15 2018-10-16 南京国电南自轨道交通工程有限公司 一种综合监控系统网络负载均衡网关通信方法
CN109412960A (zh) * 2018-10-17 2019-03-01 国网四川省电力公司经济技术研究院 基于tcp连接数量动态调节的高并发tcp应用拥塞控制方法

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101184081A (zh) * 2006-11-14 2008-05-21 西门子公司 通信网络中识别点对点业务的方法及装置
US20100316012A1 (en) * 2009-06-12 2010-12-16 Cygnus Broadband Systems and Methods for Intelligent Discard in a Communication Network
CN105703940A (zh) * 2015-12-10 2016-06-22 中国电力科学研究院 一种面向多级调度分布式并行计算的监控系统及监控方法
CN106254377A (zh) * 2016-09-09 2016-12-21 四川长虹电器股份有限公司 支持海量长连接的软负载均衡方法及系统
CN108667742A (zh) * 2018-08-15 2018-10-16 南京国电南自轨道交通工程有限公司 一种综合监控系统网络负载均衡网关通信方法
CN109412960A (zh) * 2018-10-17 2019-03-01 国网四川省电力公司经济技术研究院 基于tcp连接数量动态调节的高并发tcp应用拥塞控制方法

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113301515A (zh) * 2020-06-01 2021-08-24 阿里巴巴集团控股有限公司 短信通道连接的处理方法、装置、系统、设备和存储介质

Similar Documents

Publication Publication Date Title
CN110516005A (zh) 一种分布式数据库快速同步系统及方法
CN101282281B (zh) 一种媒体分发系统、装置及流媒体播放方法
US8200739B2 (en) Arrangement and method relating to load distribution
CN104092746B (zh) 一种运维审计系统及用在其系统中的网络负载均衡方法
CN105359457A (zh) 用于在icn上的大规模会议的多层推送混合服务控制架构
CN103475566A (zh) 一种实时消息交换平台及分布式集群组建方法
CN101600098A (zh) 一种分布式节点视频监控系统及其管理方法
EP2081336B1 (en) Business message transmission method, system and apparatus
EP2858413A1 (en) Service node switching method and system
CN112104740B (zh) 基于国产cpu和os的软件自动推送升级系统及方法
CN104363278A (zh) 一种海量终端通信接入系统
CN103220165B (zh) 一种服务器主动宕机的处理方法和装置
CN106789157A (zh) 堆叠系统及堆叠交换机的硬件资源管理方法
US20080049607A1 (en) Method and apparatus for checking maintenance association integrity and method and apparatus for adding maintenance end point
CN110187972A (zh) 一种基于api的软负载均衡实现方案
CN109981734A (zh) 一种基于互联网的全球业务加速方法
CN110290003A (zh) 动态分配短信供应商的tcp连接数的方法及系统
CN109218038A (zh) 一种多语言即时会话平台
CN101340339A (zh) 宽带接入服务器集群系统及装置
CN108206927B (zh) 一种会议同步方法和装置
CN103281384B (zh) 一种无中心节点的消息服务集群的管理系统及方法
CN105959410B (zh) 服务器集群的负载均衡方法及负载均衡系统
CN110557381B (zh) 基于媒体流热迁移机制的媒体高可用系统
CN101164299B (zh) 一种ip网络资源配置方法及ip网络
KR100435985B1 (ko) 투표를 활용한 무정지 서비스 시스템 및 그 시스템에서의정보 갱신 및 제공 방법

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: 20190927

RJ01 Rejection of invention patent application after publication