CN113709259A - 对象的访问方法及服务*** - Google Patents
对象的访问方法及服务*** Download PDFInfo
- Publication number
- CN113709259A CN113709259A CN202111267274.3A CN202111267274A CN113709259A CN 113709259 A CN113709259 A CN 113709259A CN 202111267274 A CN202111267274 A CN 202111267274A CN 113709259 A CN113709259 A CN 113709259A
- Authority
- CN
- China
- Prior art keywords
- configuration information
- agent
- application
- port number
- server
- 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.)
- Granted
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/56—Provisioning of proxy services
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/2866—Architectures; Arrangements
- H04L67/30—Profiles
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Computer And Data Communications (AREA)
Abstract
本申请公开了一种对象的访问方法及服务***,属于网络技术领域。服务***中的服务器中的对象是通过IP地址和端口号访问的一项服务,对象是应用或中间件,且应用与中间件之间设置有代理,在启动对象后,将对象的第一配置信息注册到注册中心中,第一配置信息中包含服务器的IP地址以及对象的第一端口号和标签;不同服务器中提供相同服务的对象的第一端口号和标签相同;当通过代理访问对象的应用启动时,向代理发送对象的标签;代理根据标签从注册中心获取对象的第一配置信息,应用向代理发送对象的访问请求,代理根据第一配置信息访问一个服务器中的对象,将访问结果发送给应用。本申请中的代理可以根据对象的标签自动对接后端增减的服务器。
Description
技术领域
本申请实施例涉及网络技术领域,特别涉及一种对象的访问方法及服务***。
背景技术
服务器通过其中安装的对象向外提供服务。其中,对象可以是通过IP(InternetProtocol,网际互联协议)地址和端口号的访问方式访问的一项服务。
当应用需要访问对象时,可以从预先设置的配置文件中,获取针对对象设置的IP地址和端口号,再根据该IP地址和端口号访问该对象。由于IP地址和端口号是预先写入应用的配置文件中的,所以,当需要增减安装有该对象的服务器时,需要对应用的代码进行修改后重新发布,流程较为繁琐。
发明内容
本申请实施例提供了一种对象的访问方法及服务***,用于解决将对象的配置信息写入应用的配置文件中时,若需要增减安装有该对象的服务器,则需要修改应用的代码以重新发布应用,导致流程较为繁琐的问题。所述技术方案如下:
一方面,提供了一种对象的访问方法,用于包括注册中心和多个服务器的服务***中,所述服务器中安装有至少一个对象,每个对象是通过网际互联协议IP地址和端口号的访问方式访问的一项服务,所述对象是应用或中间件,且所述应用与所述中间件之间设置有代理,所述方法包括:
在启动所述服务器中的对象后,将所述对象的第一配置信息注册到所述注册中心中,所述第一配置信息中包含所述对象所在服务器的IP地址以及所述对象的第一端口号和标签;其中,不同服务器中提供相同服务的对象的第一端口号和标签相同;
当需要通过所述代理访问所述对象的应用启动时,所述应用向所述代理发送所述对象的标签;
所述代理根据所述对象的标签,从所述注册中心获取所述对象的第一配置信息;
所述应用向所述代理发送所述对象的访问请求;
所述代理根据所述第一配置信息访问一个服务器中的所述对象,将得到的访问结果发送给所述应用。
在一种可能的实现方式中,在所述代理根据所述对象的标签,从所述注册中心获取所述对象的第一配置信息之后,所述方法还包括:
当所述应用还向所述代理发送所述代理的第二端口号时,所述代理在第一配置文件中生成第二配置信息,所述第二配置信息中包含所述第二端口号、所述对象的标签、所述IP地址和所述第一端口号;
所述代理根据所述第一配置信息访问一个服务器中的所述对象,包括:所述代理从所述第二配置信息中获取所述IP地址和所述第一端口号,根据所述IP地址和所述第一端口号访问一个服务器中的所述对象,将得到的访问结果发送给所述应用。
在一种可能的实现方式中,所述方法还包括:
所述代理更新所述第一配置文件中的第二配置信息。
在一种可能的实现方式中,所述方法还包括:
若所述服务***中新增了安装有所述对象的服务器,且新增的所述服务器中的对象的第一配置信息被更新至所述第一配置文件中,则当所述代理再次接收到所述访问请求时,所述代理从所述第一配置文件中获取新增的所述服务器对应的IP地址和第一端口号,根据所述IP地址和所述第一端口号访问新增的所述服务器中的对象,将得到的访问结果发送给所述应用。
在一种可能的实现方式中,所述代理更新所述第一配置文件中的第二配置信息,包括:
所述代理通过webhook监控所述注册中心;
当所述注册中心中存在至少一个对象的第一配置信息发生变化时,所述代理通过所述webhook获取变化后的第一配置信息;
所述代理利用所述变化后的第一配置信息更新所述第一配置文件中对应的第二配置信息。
在一种可能的实现方式中,所述代理更新所述第一配置文件中的第二配置信息,包括:
所述代理定期根据各条第二配置信息中的第一端口号和标签,从所述注册中心获取对应的第一配置信息;
所述代理利用获取到的所述第一配置信息更新所述第一配置文件中对应的第二配置信息。
在一种可能的实现方式中,所述方法还包括:
当所述对象停止提供服务时,所述代理删除所述第一配置文件中与所述对象对应的第二配置信息。
在一种可能的实现方式中,当所述对象是所述中间件时,所述将所述对象的第一配置信息注册到所述注册中心中,包括:
注册脚本获取所述对象的第二配置文件,所述第二配置文件中包含多条第一配置信息,所述第一配置信息是所述对象被所述应用访问时的第一端口号和标签;
所述注册脚本根据所述第一端口号扫描服务器中对应的服务端口;
当所述服务端口可用时,所述注册脚本将所述第一配置信息注册到所述注册中心中。
在一种可能的实现方式中,所述方法还包括:
所述注册中心定期扫描所述服务器中对应的服务端口;
当所述服务端口持续不可用的次数达到预设阈值时,所述注册中心删除所述第一配置信息。
在一种可能的实现方式中,当所述对象是应用时,所述将所述对象的第一配置信息注册到所述注册中心中,包括:
所述应用将所述应用的第一配置信息注册到所述注册中心中。
一方面,提供了一种服务***,所述服务***包括注册中心和多个服务器,所述服务器中安装有至少一个对象,每个对象是通过网际互联协议IP地址和端口号的访问方式访问的一项服务,所述对象是应用或中间件,且所述应用与所述中间件之间设置有代理;
注册模块,用于在启动所述服务器中的对象后,将所述对象的第一配置信息注册到所述注册中心中,所述第一配置信息中包含所述对象所在服务器的IP地址以及所述对象的第一端口号和标签;其中,不同服务器中提供相同服务的对象的第一端口号和标签相同;
当需要通过所述代理访问所述对象的应用启动时,所述应用,用于向所述代理发送所述对象的标签;
所述代理,用于根据所述对象的标签,从所述注册中心获取所述对象的第一配置信息;
所述应用,还用于向所述代理发送所述对象的访问请求;
所述代理,还用于根据所述第一配置信息访问一个服务器中的所述对象,将得到的访问结果发送给所述应用。
本申请实施例提供的技术方案的有益效果至少包括:
在启动服务器中的对象后,可以将对象的第一配置信息注册到注册中心中,该第一配置信息中包含对象所在服务器的IP地址以及对象的第一端口号和标签;当需要通过代理访问对象的应用启动时,可以向代理发送对象的标签,代理可以根据对象的标签,从注册中心获取对象的第一配置信息;然后,当应用需要访问对象时,可以向代理发送访问请求,代理再根据该第一配置信息访问一个服务器中的对象,将得到的访问结果发送给应用。这样,当需要增减安装有该对象的服务器时,由于不同服务器中提供相同服务的对象的第一端口号和标签相同,所以,代理可以根据访问请求中的标签自动对接后端增减的服务器,而无需修改应用的代码以重新发布应用,从而可以简化对象的访问流程。
代理生成的第二配置信息中包含第二端口号、对象的标签、IP地址和第一端口号,这样,当代理接收到访问请求时,可以直接从第二配置信息中获取IP地址和第一端口号,根据IP地址和第一端口号访问一个服务器中的对象,而无需再从注册中心获取IP地址和端口号,可以提高访问速度。
代理可以更新第一配置文件中的第二配置信息,这样,代理可以实时获取到最新的第二配置信息,可以提高访问的准确性。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本申请一个实施例提供的对象的访问方法的方法流程图;
图2是本申请另一实施例提供的对象的访问方法的方法流程图;
图3是本申请再一实施例提供的服务***的结构框图。
具体实施方式
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合附图对本申请实施方式作进一步地详细描述。
本实施例应用于服务***中,该服务***中包括注册中心和多个服务器。服务器中安装有至少一个对象,每个对象是通过IP地址和端口号的访问方式访问的一项服务。
本实施例中,可以将对象分为应用和中间件这两类,应用可以访问另一应用或中间件。其中,中间件可以是诸如mysql、redis之类的数据库、MQ(Message Queue,消息队列)、ES(Elasticsearch,实时搜索引擎)、Kafka(卡夫卡)等,本实施例中不对中间件的类型作限定。
这些对象可以安装在同一个服务器中,也可以安装在不同的服务器中。另外,还可以在不同的服务器上安装提供相同服务的对象。以对象为mysql为例,则可以在第一服务器上安装第一mysql,在第二服务器上安装第二mysql和第三mysql,这3个mysql都提供数据库服务,且被安装在不同的服务器中。
在应用和中间件之间设置有代理,应用可以通过代理来访问另一应用和中间件,以通过代理解耦前端的应用和后端的服务之间的关系。本实施例中的代理可以是4层的HAProxy。
请参考图1,其示出了本申请一个实施例提供的对象的访问方法的方法流程图,该对象的访问方法可以应用于上述服务***中。该对象的访问方法,可以包括:
步骤101,在启动服务器中的对象后,将对象的第一配置信息注册到注册中心中,第一配置信息中包含对象所在服务器的IP地址以及对象的第一端口号和标签;其中,不同服务器中提供相同服务的对象的第一端口号和标签相同。
每个对象的第一端口号和标签是预先设置的。在设置时,可以基于对象的访问权限设置对应的第一端口号和标签。具体的,当对象能够被任一对象访问时,第一端口号为通用端口号,标签为通用标签;当对象能够被特定对象访问时,第一端口号为专用端口号,标签为专用标签。
比如,当对象是应用A,且应用A可以被任一应用访问时,可以设置第一端口号为a,标签为A。当对象是mysql,且mysql可以被应用A(特定对象)访问时,可以设置写端口的第一端口号为b,对应的标签为A_mysql_write,设置读端口的第一端口号为c,对应的标签为A_mysql_read。
当多个对象提供相同的服务时,可以为这些对象设置相同的第一端口号和标签。比如,提供数据库服务的对象为第一mysql、第二mysql和第三mysql,且这三个mysql都可以被应用A访问,则可以设置第一mysql、第二mysql和第三mysql的写端口的第一端口号为b,对应的标签为A_mysql_write,设置读端口的第一端口号为c,对应的标签为A_mysql_read。
当在一个服务器上安装并启动对象后,可以获取预先设置的对象的第一端口号和标签,再获取该服务器的IP地址,将IP地址、第一端口号和标签作为对象的第一配置信息注册到注册中心中。针对不同类型的对象,可以设置不同的注册方式,详见下文中的描述。
需要说明的是,在注册时,可以先注册中间件的第一配置信息,再注册应用的第一配置信息。
步骤102,当需要通过代理访问对象的应用启动时,应用向代理发送对象的标签。
本步骤中所说的对象可以是应用,也可以是中间件。
步骤103,代理根据对象的标签,从注册中心获取对象的第一配置信息。
代理可以从注册中心中获取与该标签相匹配的第一配置信息。
步骤104,应用向代理发送对象的访问请求。
步骤105,代理根据第一配置信息访问一个服务器中的对象,将得到的访问结果发送给应用。
代理可以从第一配置信息中获取IP地址和第一端口号,再根据该IP地址和第一端口号访问一个服务器中的对象。
当存在与标签相匹配的多条第一配置信息时,即多个服务器中都安装有该对象时,代理可以根据自身的代理逻辑选择访问一个服务器中的对象,此处不对代理逻辑作限定。
综上所述,本申请实施例提供的对象的访问方法,在启动服务器中的对象后,可以将对象的第一配置信息注册到注册中心中,该第一配置信息中包含对象所在服务器的IP地址以及对象的第一端口号和标签;当需要通过代理访问对象的应用启动时,可以向代理发送对象的标签,代理可以根据对象的标签,从注册中心获取对象的第一配置信息;然后,当应用需要访问对象时,可以向代理发送访问请求,代理再根据该第一配置信息访问一个服务器中的对象,将得到的访问结果发送给应用。这样,当需要增减安装有该对象的服务器时,由于不同服务器中提供相同服务的对象的第一端口号和标签相同,所以,代理可以根据访问请求中的标签自动对接后端增减的服务器,而无需修改应用的代码以重新发布应用,从而可以简化对象的访问流程。
请参考图2,其示出了本申请一个实施例提供的对象的访问方法的方法流程图,该对象的访问方法可以应用于上述服务***中。该对象的访问方法,可以包括:
步骤201,在启动服务器中的对象后,将对象的第一配置信息注册到注册中心中,第一配置信息中包含对象所在服务器的IP地址以及对象的第一端口号和标签;其中,不同服务器中提供相同服务的对象的第一端口号和标签相同。
每个对象的第一端口号和标签是预先设置的。在设置时,可以基于对象的访问权限设置对应的第一端口号和标签。具体的,当对象能够被任一对象访问时,第一端口号为通用端口号,标签为通用标签;当对象能够被特定对象访问时,第一端口号为专用端口号,标签为专用标签。
比如,当对象是应用A,且应用A可以被任一应用访问时,可以设置第一端口号为a,标签为A。当对象是mysql,且mysql可以被应用A(特定对象)读或写时,可以设置写端口的第一端口号为b,对应的标签为A_mysql_write,设置读端口的第一端口号为c,对应的标签为A_mysql_read。当然,还可以通过其他方式设置标签,本实施例不作限定。
当多个对象提供相同的服务时,可以为这些对象设置相同的第一端口号和标签。比如,提供数据库服务的对象为第一mysql、第二mysql和第三mysql,且这三个mysql都可以被应用A访问,则可以设置第一mysql、第二mysql和第三mysql的写端口的第一端口号为b,对应的标签为A_mysql_write,设置读端口的第一端口号为c,对应的标签为A_mysql_read。
当在一个服务器上安装并启动对象后,可以获取预先设置的对象的第一端口号和标签,再获取该服务器的IP地址,将IP地址、第一端口号和标签作为对象的第一配置信息注册到注册中心中。
针对不同类型的对象,可以设置不同的注册方式,下面对其中的两种注册方式进行介绍。
当对象是中间件时,注册脚本获取对象的第二配置文件,第二配置文件中包含多条第一配置信息,第一配置信息是对象被应用访问时的第一端口号和标签;注册脚本根据第一端口号扫描服务器中对应的服务端口;当服务端口可用时,注册脚本将第一配置信息注册到注册中心中。
注册脚本是预先设置的脚本,用于注册对象的第一配置信息。其中,一个个对象可以对应于一个注册脚本,或者,多个对象可以对应于一个注册脚本。当一个注册脚本注册多个对象时,注册脚本可以分别读取这些对象的第二配置文件。比如,注册脚本在注册mysql时,可以读取mysql的第二配置文件;注册脚本在注册redis时,可以读取redis的第二配置文件。
以注册mysql为例,注册脚本读取到第一配置信息中的第一端口号为b、标签为A_mysql_write,扫描服务器中端口号为b的服务端口,并判断该服务端口是否可用,若该服务端口可用,则将该第一配置信息注册到注册中心中;若该服务端口不可用,则注册脚本可以不将第一配置信息注册到注册中心中;或者,注册脚本可以继续扫描该服务端口,当该服务端口持续不可用次数达到预设阈值时,确定不将第一配置信息注册到注册中心中。然后,注册脚本读取到第一配置信息中的第一端口号为c、标签为A_mysql_read,仍然以上述流程注册第一配置信息。
当对象是应用时,应用将应用的第一配置信息注册到注册中心中。具体的,可以执行应用中的代码,该代码可以读取第二配置文件中的第一配置信息,并将该第一配置信息注册到注册中心中。
需要说明的是,在注册时,可以先注册中间件的第一配置信息,再注册应用的第一配置信息。
步骤202,当需要通过代理访问对象的应用启动时,应用向代理发送对象的标签。
本步骤中所说的对象可以是应用,也可以是中间件。
需要说明的是,应用还可以向代理发送代理的第二端口号,以便于代理与后端服务进行交互。其中,不同的对象可以设置不同的第二端口号。比如,mysql的读端口对应的第二端口号为3306,mysql的写端口对应的第二端口号为3367,则应用可以向代理发送第二端口号3306和标签A_mysql_read;或者,应用可以向代理发送第二端口号3367和标签A_mysql_ write。
步骤203,代理根据对象的标签,从注册中心获取对象的第一配置信息。
代理可以从注册中心中获取与该标签相匹配的第一配置信息。
当应用还向代理发送代理的第二端口号时,代理在第一配置文件中生成第二配置信息,第二配置信息中包含第二端口号、对象的标签、IP地址和第一端口号。其中,第一配置文件是代理在本地生成的配置文件。
需要说明的是,在应用启动时,即可通过代理获取到需要访问的对象的第一配置信息,以验证后端的服务是否可用,当确定后端的服务可用时,应用再向注册中心注册自身的第一配置信息。
步骤204,应用向代理发送对象的访问请求。
步骤205,代理根据第一配置信息访问一个服务器中的对象,将得到的访问结果发送给应用。
当代理接收到访问请求时,代理先判断第一配置文件中是否存在该对象的第二配置信息;若存在该对象的第二配置信息,则从该第二配置信息中获取IP地址和第一端口号,再根据IP地址和第一端口号访问一个服务器中的对象;若不存在该对象的第二配置信息,则可能是应用没有将该对象的标签发送给代理,也可能是代理从注册中心中获取第一配置信息时失败了,还可能是注册中心中未存储该对象的第一配置信息,从而会导致应用的启动失败。
当存在与该对象的多条第一配置信息时,即多个服务器中都安装有该对象时,代理可以根据自身的代理逻辑选择访问一个服务器中的对象,此处不对代理逻辑作限定。
当一项服务需要增加服务器时(比如增加安装有第四mysql的服务器),则注册中心中会增加包含标签A_mysql_read和标签A_mysql_ write的第一配置信息;当一项服务需要减少服务器时(比如减少安装有第三mysql的服务器),则注册中心中会减少包含标签A_mysql_read和标签A_mysql_ write的第一配置信息。即,注册中心中的第一配置信息会随着服务器的增减而发生变化,能够实时感知后端的服务,所以,代理可以根据第一配置信息来定期更新第二配置信息,从而保证第二配置信息的准确性。
步骤206,代理更新第一配置文件中的第二配置信息。
本实施例中提供了两种更新方式,代理采用其中的一种或两种来更新第二配置信息,下面分别对这两种更新方式进行说明。
在第一种更新方式中,代理通过webhook监控注册中心;当注册中心中存在至少一个对象的第一配置信息发生变化时,代理通过webhook获取变化后的第一配置信息;代理利用变化后的第一配置信息更新第一配置文件中对应的第二配置信息。
代理可以通过第一种更新方式来获取变化的第一配置信息,从而更新对应的第二配置信息。
在第二种更新方式中,代理定期根据各条第二配置信息中的第一端口号和标签,从注册中心获取对应的第一配置信息;代理利用获取到的第一配置信息更新第一配置文件中对应的第二配置信息。
代理可以通过第二种更新方式来获取所有的第一配置信息,从而更新所有的第二配置信息。
相关技术中,应用与对象所在的第一服务器之间建立的是长连接,即使服务***中新增了安装有该对象的第二服务器,应用再次访问该对象时,还是会通过长连接来访问第一服务器中的对象,这就导致第二服务器中的对象在很长时间内是不会被访问的,从而导致服务器的负载失衡。
本实施例中,若服务***中新增了安装有对象的服务器,且新增的服务器中的对象的第一配置信息被更新至第一配置文件中,则当代理再次接收到访问请求时,代理从第一配置文件中获取新增的服务器对应的IP地址和第一端口号,根据IP地址和第一端口号访问新增的服务器中的对象,将得到的访问结果发送给应用。本实施例中,可以通过代理来访问新增的服务器中的对象,从而避免负载失衡的问题。
当对象停止服务时,需要删除代理中的第二配置信息和注册中心中的第一配置信息,以释放存储空间。
步骤207,当对象停止提供服务时,代理删除第一配置文件中与对象对应的第二配置信息。
当对象停止提供服务时,对象可以通知代理,代理可以删除与该对象对应的第二配置信息。
步骤208,注册中心定期扫描服务器中对应的服务端口,当服务端口持续不可用的次数达到预设阈值时,删除第一配置信息。
注册中心可以定期扫描服务器中对应的服务端口,当服务端口可用时,确定对象仍然在提供服务;当服务端口不可用时,继续扫描该服务端口,当该服务端口持续不可用的次数达到预设阈值时,确定对象停止提供服务,删除第一配置信息。
综上所述,本申请实施例提供的对象的访问方法,在启动服务器中的对象后,可以将对象的第一配置信息注册到注册中心中,该第一配置信息中包含对象所在服务器的IP地址以及对象的第一端口号和标签;当需要通过代理访问对象的应用启动时,可以向代理发送对象的标签,代理可以根据对象的标签,从注册中心获取对象的第一配置信息;然后,当应用需要访问对象时,可以向代理发送访问请求,代理再根据该第一配置信息访问一个服务器中的对象,将得到的访问结果发送给应用。这样,当需要增减安装有该对象的服务器时,由于不同服务器中提供相同服务的对象的第一端口号和标签相同,所以,代理可以根据访问请求中的标签自动对接后端增减的服务器,而无需修改应用的代码以重新发布应用,从而可以简化对象的访问流程。
代理生成的第二配置信息中包含第二端口号、对象的标签、IP地址和第一端口号,这样,当代理接收到访问请求时,可以直接从第二配置信息中获取IP地址和第一端口号,根据IP地址和第一端口号访问一个服务器中的对象,而无需再从注册中心获取IP地址和端口号,可以提高访问速度。
代理可以更新第一配置文件中的第二配置信息,这样,代理可以实时获取到最新的第二配置信息,可以提高访问的准确性。
请参考图3,其示出了本申请一个实施例提供的服务***的结构框图。该服务***可以包括注册中心310和多个服务器320,服务器320中安装有至少一个对象321,每个对象321是通过IP地址和端口号的访问方式访问的一项服务,对象321是应用322或中间件,且应用322与中间件之间设置有代理323;
注册模块,用于在启动服务器320中的对象321后,将对象321的第一配置信息注册到注册中心310中,第一配置信息中包含对象321所在服务器320的IP地址以及对象321的第一端口号和标签;其中,不同服务器320中提供相同服务的对象321的第一端口号和标签相同;
当需要通过代理323访问对象321的应用322启动时,应用322,用于向代理323发送对象321的标签;
代理323,用于根据对象321的标签,从注册中心310获取对象321的第一配置信息;
应用322,还用于向代理323发送对象321的访问请求;
代理323,还用于根据第一配置信息访问一个服务器320中的对象321,将得到的访问结果发送给应用322。
在一个可选的实施例中,当应用还向代理发送代理323的第二端口号时,代理323,还用于在第一配置文件中生成第二配置信息,第二配置信息中包含第二端口号、对象321的标签、IP地址和第一端口号;
代理323,还用于从第二配置信息中获取IP地址和第一端口号,根据IP地址和第一端口号访问一个服务器320中的对象321,将得到的访问结果发送给应用322。
在一个可选的实施例中,代理323,还用于更新第一配置文件中的第二配置信息。
在一个可选的实施例中,若服务***中新增了安装有对象321的服务器320,且新增的服务器320中的对象321的第一配置信息被更新至第一配置文件中,则当代理323再次接收到访问请求时,代理323,还用于从第一配置文件中获取新增的服务器320对应的IP地址和第一端口号,根据IP地址和第一端口号访问新增的服务器320中的对象321,将得到的访问结果发送给应用322。
在一个可选的实施例中,代理323,还用于通过webhook监控注册中心310;
当注册中心310中存在至少一个对象321的第一配置信息发生变化时,代理323,还用于通过webhook获取变化后的第一配置信息;
代理323,还用于利用变化后的第一配置信息更新第一配置文件中对应的第二配置信息。
在一个可选的实施例中,代理323,还用于定期根据各条第二配置信息中的第一端口号和标签,从注册中心310获取对应的第一配置信息;
代理323,还用于利用获取到的第一配置信息更新第一配置文件中对应的第二配置信息。
在一个可选的实施例中,当对象321停止提供服务时,代理323,还用于删除第一配置文件中与对象321对应的第二配置信息。
在一个可选的实施例中,当对象321是中间件时,注册模块是注册脚本324,且注册脚本324,用于获取对象321的第二配置文件,第二配置文件中包含多条第一配置信息,第一配置信息是对象321被应用322访问时的第一端口号和标签;
注册脚本324,还用于根据第一端口号扫描服务器320中对应的服务端口;
当服务端口可用时,注册脚本324,还用于将第一配置信息注册到注册中心310中。
在一个可选的实施例中,注册中心310,还用于定期扫描服务器320中对应的服务端口;
当服务端口持续不可用的次数达到预设阈值时,注册中心310,还用于删除第一配置信息。
在一个可选的实施例中,当对象321是应用322时,注册模块是应用322,且应用322,还用于将应用322的第一配置信息注册到注册中心310中。
综上所述,本申请实施例提供的服务***,在启动服务器中的对象后,可以将对象的第一配置信息注册到注册中心中,该第一配置信息中包含对象所在服务器的IP地址以及对象的第一端口号和标签;当需要通过代理访问对象的应用启动时,可以向代理发送对象的标签,代理可以根据对象的标签,从注册中心获取对象的第一配置信息;然后,当应用需要访问对象时,可以向代理发送访问请求,代理再根据该第一配置信息访问一个服务器中的对象,将得到的访问结果发送给应用。这样,当需要增减安装有该对象的服务器时,由于不同服务器中提供相同服务的对象的第一端口号和标签相同,所以,代理可以根据访问请求中的标签自动对接后端增减的服务器,而无需修改应用的代码以重新发布应用,从而可以简化对象的访问流程。
代理生成的第二配置信息中包含第二端口号、对象的标签、IP地址和第一端口号,这样,当代理接收到访问请求时,可以直接从第二配置信息中获取IP地址和第一端口号,根据IP地址和第一端口号访问一个服务器中的对象,而无需再从注册中心获取IP地址和端口号,可以提高访问速度。
代理可以更新第一配置文件中的第二配置信息,这样,代理可以实时获取到最新的第二配置信息,可以提高访问的准确性。
需要说明的是:上述实施例提供的服务***在进行对象的访问时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将服务***的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的服务***与对象的访问方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。
本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
以上所述并不用以限制本申请实施例,凡在本申请实施例的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请实施例的保护范围之内。
Claims (11)
1.一种对象的访问方法,其特征在于,用于包括注册中心和多个服务器的服务***中,所述服务器中安装有至少一个对象,每个对象是通过网际互联协议IP地址和端口号的访问方式访问的一项服务,所述对象是应用或中间件,且所述应用与所述中间件之间设置有代理,所述方法包括:
在启动所述服务器中的对象后,将所述对象的第一配置信息注册到所述注册中心中,所述第一配置信息中包含所述对象所在服务器的IP地址以及所述对象的第一端口号和标签;其中,不同服务器中提供相同服务的对象的第一端口号和标签相同;
当需要通过所述代理访问所述对象的应用启动时,所述应用向所述代理发送所述对象的标签;
所述代理根据所述对象的标签,从所述注册中心获取所述对象的第一配置信息;
所述应用向所述代理发送所述对象的访问请求;
所述代理根据所述第一配置信息访问一个服务器中的所述对象,将得到的访问结果发送给所述应用。
2.根据权利要求1所述的方法,其特征在于,在所述代理根据所述对象的标签,从所述注册中心获取所述对象的第一配置信息之后,所述方法还包括:
当所述应用还向所述代理发送所述代理的第二端口号时,所述代理在第一配置文件中生成第二配置信息,所述第二配置信息中包含所述第二端口号、所述对象的标签、所述IP地址和所述第一端口号;
所述代理根据所述第一配置信息访问一个服务器中的所述对象,包括:所述代理从所述第二配置信息中获取所述IP地址和所述第一端口号,根据所述IP地址和所述第一端口号访问一个服务器中的所述对象,将得到的访问结果发送给所述应用。
3.根据权利要求2所述的方法,其特征在于,所述方法还包括:
所述代理更新所述第一配置文件中的第二配置信息。
4.根据权利要求3所述的方法,其特征在于,所述方法还包括:
若所述服务***中新增了安装有所述对象的服务器,且新增的所述服务器中的对象的第一配置信息被更新至所述第一配置文件中,则当所述代理再次接收到所述访问请求时,所述代理从所述第一配置文件中获取新增的所述服务器对应的IP地址和第一端口号,根据所述IP地址和所述第一端口号访问新增的所述服务器中的对象,将得到的访问结果发送给所述应用。
5.根据权利要求3所述的方法,其特征在于,所述代理更新所述第一配置文件中的第二配置信息,包括:
所述代理通过webhook监控所述注册中心;
当所述注册中心中存在至少一个对象的第一配置信息发生变化时,所述代理通过所述webhook获取变化后的第一配置信息;
所述代理利用所述变化后的第一配置信息更新所述第一配置文件中对应的第二配置信息。
6.根据权利要求3所述的方法,其特征在于,所述代理更新所述第一配置文件中的第二配置信息,包括:
所述代理定期根据各条第二配置信息中的第一端口号和标签,从所述注册中心获取对应的第一配置信息;
所述代理利用获取到的所述第一配置信息更新所述第一配置文件中对应的第二配置信息。
7.根据权利要求2所述的方法,其特征在于,所述方法还包括:
当所述对象停止提供服务时,所述代理删除所述第一配置文件中与所述对象对应的第二配置信息。
8.根据权利要求1至7中任一项所述的方法,其特征在于,当所述对象是所述中间件时,所述将所述对象的第一配置信息注册到所述注册中心中,包括:
注册脚本获取所述对象的第二配置文件,所述第二配置文件中包含多条第一配置信息,所述第一配置信息是所述对象被所述应用访问时的第一端口号和标签;
所述注册脚本根据所述第一端口号扫描服务器中对应的服务端口;
当所述服务端口可用时,所述注册脚本将所述第一配置信息注册到所述注册中心中。
9.根据权利要求8所述的方法,其特征在于,所述方法还包括:
所述注册中心定期扫描所述服务器中对应的服务端口;
当所述服务端口持续不可用的次数达到预设阈值时,所述注册中心删除所述第一配置信息。
10.根据权利要求1至7中任一项所述的方法,其特征在于,当所述对象是应用时,所述将所述对象的第一配置信息注册到所述注册中心中,包括:
所述应用将所述应用的第一配置信息注册到所述注册中心中。
11.一种服务***,其特征在于,所述服务***包括注册中心和多个服务器,所述服务器中安装有至少一个对象,每个对象是通过网际互联协议IP地址和端口号的访问方式访问的一项服务,所述对象是应用或中间件,且所述应用与所述中间件之间设置有代理;
注册模块,用于在启动所述服务器中的对象后,将所述对象的第一配置信息注册到所述注册中心中,所述第一配置信息中包含所述对象所在服务器的IP地址以及所述对象的第一端口号和标签;其中,不同服务器中提供相同服务的对象的第一端口号和标签相同;
当需要通过所述代理访问所述对象的应用启动时,所述应用,用于向所述代理发送所述对象的标签;
所述代理,用于根据所述对象的标签,从所述注册中心获取所述对象的第一配置信息;
所述应用,还用于向所述代理发送所述对象的访问请求;
所述代理,还用于根据所述第一配置信息访问一个服务器中的所述对象,将得到的访问结果发送给所述应用。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111267274.3A CN113709259B (zh) | 2021-10-29 | 2021-10-29 | 对象的访问方法及服务*** |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111267274.3A CN113709259B (zh) | 2021-10-29 | 2021-10-29 | 对象的访问方法及服务*** |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113709259A true CN113709259A (zh) | 2021-11-26 |
CN113709259B CN113709259B (zh) | 2022-03-25 |
Family
ID=78647481
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111267274.3A Active CN113709259B (zh) | 2021-10-29 | 2021-10-29 | 对象的访问方法及服务*** |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113709259B (zh) |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20100023977A1 (en) * | 2008-07-28 | 2010-01-28 | Playcast Media Systems, Ltd. | External services allocation in closed on-demand systems |
CN106169963A (zh) * | 2016-09-20 | 2016-11-30 | 北京百度网讯科技有限公司 | 服务页面的访问方法及***、代理服务器 |
US20180219851A1 (en) * | 2016-04-25 | 2018-08-02 | eStorm Co., LTD | Method and system for authentication |
CN109729187A (zh) * | 2019-01-09 | 2019-05-07 | 广州视源电子科技股份有限公司 | 一种代理通信方法、***、装置及存储介质 |
CN111885098A (zh) * | 2020-06-03 | 2020-11-03 | 中邮消费金融有限公司 | 对象存储集群的代理访问方法、***及计算机设备 |
CN112637346A (zh) * | 2020-12-24 | 2021-04-09 | 北京知道创宇信息技术股份有限公司 | 代理方法、装置、代理服务器及存储介质 |
CN113364821A (zh) * | 2020-03-04 | 2021-09-07 | 腾讯科技(深圳)有限公司 | 一种功能服务访问方法、设备及存储介质 |
-
2021
- 2021-10-29 CN CN202111267274.3A patent/CN113709259B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20100023977A1 (en) * | 2008-07-28 | 2010-01-28 | Playcast Media Systems, Ltd. | External services allocation in closed on-demand systems |
US20180219851A1 (en) * | 2016-04-25 | 2018-08-02 | eStorm Co., LTD | Method and system for authentication |
CN106169963A (zh) * | 2016-09-20 | 2016-11-30 | 北京百度网讯科技有限公司 | 服务页面的访问方法及***、代理服务器 |
CN109729187A (zh) * | 2019-01-09 | 2019-05-07 | 广州视源电子科技股份有限公司 | 一种代理通信方法、***、装置及存储介质 |
CN113364821A (zh) * | 2020-03-04 | 2021-09-07 | 腾讯科技(深圳)有限公司 | 一种功能服务访问方法、设备及存储介质 |
CN111885098A (zh) * | 2020-06-03 | 2020-11-03 | 中邮消费金融有限公司 | 对象存储集群的代理访问方法、***及计算机设备 |
CN112637346A (zh) * | 2020-12-24 | 2021-04-09 | 北京知道创宇信息技术股份有限公司 | 代理方法、装置、代理服务器及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN113709259B (zh) | 2022-03-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108306819B (zh) | 基于区块链的即时通讯***实现方法、介质和计算设备 | |
CN106888233B (zh) | 数据更新***及方法 | |
US10275347B2 (en) | System, method and computer program product for managing caches | |
US8856365B2 (en) | Computer-implemented method, computer system and computer readable medium | |
CN111510330B (zh) | 接口管理装置、方法及存储介质 | |
CN112667601B (zh) | 区块链标识的管理方法、终端设备及计算机可读存储介质 | |
CN112187934A (zh) | 一种微服务搭建方法 | |
CN114257440A (zh) | 网络功能服务发现方法、***以及存储介质 | |
CN112597039A (zh) | 虚拟机访问方法、***、设备及计算机可读存储介质 | |
CN115017169A (zh) | 一种多云管理平台的管理方法及*** | |
CN116028455A (zh) | 一种数据处理方法、装置、存储介质及电子设备 | |
CN113709259B (zh) | 对象的访问方法及服务*** | |
US9345062B2 (en) | Relay system, relay device, and control method and control program of relay device | |
CN111796772B (zh) | 缓存的管理方法、缓存节点及分布式存储*** | |
CN114553477B (zh) | 页面跳转方法、装置、设备和存储介质 | |
CN113824554B (zh) | 数据在中间件间传输的动态认证方法、装置及计算机介质 | |
CN114637969A (zh) | 目标对象的鉴权方法及装置 | |
CN113377714A (zh) | 基于分布式存储***的目标器重命名方法及装置 | |
CN114386983A (zh) | 场景化支付管理方法、***、装置及可读存储介质 | |
JP3252832B2 (ja) | 通信システムおよび方法 | |
CN108614873B (zh) | 一种数据处理方法及装置 | |
CN112256669A (zh) | 数据处理方法、装置、电子设备及可读存储介质 | |
CN117883789B (zh) | 数据获取方法、装置、设备、可读存储介质及程序产品 | |
CN112486699B (zh) | 一种基于国产数据库的session管理中间件、***及运行方法 | |
CN114866594B (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
CP01 | Change in the name or title of a patent holder | ||
CP01 | Change in the name or title of a patent holder |
Address after: Room 307, Zijin Oriental building, 288 Qiyue street, Suzhou Industrial Park, Suzhou City, Jiangsu Province Patentee after: Tianju DIHE (Suzhou) Technology Co.,Ltd. Address before: Room 307, Zijin Oriental building, 288 Qiyue street, Suzhou Industrial Park, Suzhou City, Jiangsu Province Patentee before: TIANJU DIHE (SUZHOU) DATA CO.,LTD. |