本发明涉及智能电视技术领域,尤其涉及智能电视Launcher云端系统服务调用方法及系统。
背景技术:
随着科学技术的发展和人们生活水平的不断提高,各种智能家居设备如智能电视的使用越来越普及,智能电视已经成为人们生活中不可缺少的使用工具。
目前国内智能电视中的一般是通过云端服务器进行管理,但现有的云端都采用的是单体式 (Monolithic) 应用程序,单体式应用表示一个应用程序内包含了所有需要的业务功能,因为单体式应用无法分割该部分,在使用过程中,若是应用程序的某一部分数据出错,则应用运行错误,从而造成云端会有大量的资源浪费。
因此,现有技术还有待于改进和发展。
技术实现要素:
本发明目的在于提供一种智能电视Launcher云端系统服务调用方法及系统。
本发明的技术方案如下:
一种智能电视Launcher云端系统服务调用方法,其中,方法包括步骤:
A、智能电视开启Launcher后,向Launcher云端发起获取Launcher配置数据的第一HTTP请求;
B、Launcher云端接收第一HTTP请求后分析第一HTTP请求对应的第一请求URL,根据第一请求URL查找发布对应服务的IP主机,并根据负载均衡方法定位到IP主机上对应的端口;
C、Launcher云端将定位到的IP主机的IP及端口拼装成第二HTTP请求对应的第二URL,并将第二URL返回给智能电视;
D、智能电视定位至第二URL,从第二URL对应的缓存集群中获取Launcher配置数据的配置数据,根据配置数据对智能电视的Launcher进行配置。
所述的智能电视Launcher云端系统服务调用方法,其中,所述步骤A之前包括步骤:
S、预先在Launcher云端中设置不同的缓存集群用于存储Launcher服务的配置数据。
所述的智能电视Launcher云端系统服务调用方法,其中,所述步骤B具体包括步骤:
B1、Launcher云端接收智能电视发送的第一HTTP请求,根据规则获取第一HTTP请求对应的第一请求URL;
B2、Launcher云端查找第一请求URL对应的服务,并根据对应的服务查找IP主机,判断查找到的IP主机是否为多个IP主机,若是,则根据负载均衡算法确定一台IP主机,若否,则获取当前的IP主机;
B3、Launcher云端获取IP主机的端口,根据负载均衡算法定位对应的端口。
所述的智能电视Launcher云端系统服务调用方法,其中,所述步骤B2中 Launcher云端查找第一请求URL对应的服务具体包括步骤:
B21、Launcher云端收到第一请求URL,在缓存中查找是否有对应服务;
B22、若在缓存中找到对应的服务,则获取缓存中的对应的服务;
B23、若在缓存未查找到对应的服务,则在服务注册中心查找对应的服务,并将查找到的对应服务加载到缓存中。
所述的智能电视Launcher云端系统服务调用方法,其中,所述步骤B2还包括步骤:
B24、若在服务器注册中心未查找到处于启用状态的IP主机,则查找没有启用并且没有注销状态的IP主机,并自动修改此IP主机状态为启用,作为第一请求URL对应服务的IP主机。
一种智能电视Launcher云端系统服务调用系统,其中,系统包括:
请求发送模块,用于智能电视开启Launcher后,向Launcher云端发起获取Launcher配置数据的第一HTTP请求;
定位模块,用于Launcher云端接收第一HTTP请求后分析第一HTTP请求对应的第一请求URL,根据第一请求URL查找发布对应服务的IP主机,并根据负载均衡方法定位到IP主机上对应的端口;
服务路由模块,用于Launcher云端将定位到的IP主机的IP及端口拼装成第二HTTP请求对应的第二URL,并将第二URL返回给智能电视;
重定向及配置模块,用于智能电视定位至第二URL,从第二URL对应的缓存集群中获取Launcher配置数据的配置数据,根据配置数据对智能电视的Launcher进行配置。
所述的智能电视Launcher云端系统服务调用系统,其中,所述系统还包括:
预先设置模块,用于预先在Launcher云端中设置不同的缓存集群用于存储Launcher服务的配置数据。
所述的智能电视Launcher云端系统服务调用系统,其中,所述定位模块具体包括:
URL获取单元,用于Launcher云端接收智能电视发送的第一HTTP请求,根据规则获取第一HTTP请求对应的第一请求URL;
IP主机定位单元,用于Launcher云端查找第一请求URL对应的服务,并根据对应的服务查找IP主机,判断查找到的IP主机是否为多个IP主机,若是,则根据负载均衡算法确定一台IP主机,若否,则获取当前的IP主机;
端口定位单元,用于Launcher云端获取IP主机的端口,根据负载均衡算法定位对应的端口。
所述的智能电视Launcher云端系统服务调用系统,其中,所述IP主机定位单元包括:
服务查找与判断单元,用于Launcher云端收到第一请求URL,在缓存中查找是否有对应服务;
第一服务获取单元,用于若在缓存中找到对应的服务,则获取缓存中的对应的服务;
第二服务获取单元,用于若在缓存未查找到对应的服务,则在服务注册中心查找对应的服务,并将查找到的对应服务加载到缓存中。
所述的智能电视Launcher云端系统服务调用系统,其中,所述IP主机定位单元还包括:
IP主机启用单元,用于若在服务器注册中心未查找到处于启用状态的IP主机,则查找没有启用并且没有注销状态的IP主机,并自动修改此IP主机状态为启用,作为第一请求URL对应服务的IP主机。
本发明提供了一种智能电视Launcher云端系统服务调用方法及系统,本发明可通过将微服务部署在公有云,提升了服务的安全和可靠性,从而使智能电视可快速定位到要使用的服务的IP及端口,而且一个服务由多个微服务集群构成,方便后面的系统维护及服务的独立性。
附图说明
图1为本发明的一种智能电视Launcher云端系统服务调用方法的较佳实施例的流程图。
图2为本发明的一种智能电视Launcher云端系统服务调用方法的具体应用实施例的Launcher云端系统与智能电视交互示意图。
图3为本发明的一种智能电视Launcher云端系统服务调用系统的较佳实施例的功能原理框图。
具体实施方式
为使本发明的目的、技术方案及效果更加清楚、明确,以下对本发明进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
本发明还提供了一种智能电视Launcher云端系统服务调用方法的的较佳实施例的流程图,如图1所示,方法包括步骤:
S100、智能电视开启Launcher后,向Launcher云端发起获取Launcher配置数据的第一HTTP请求。
具体实施时,智能电视终端开启Launcher后对云端发起HTTP请求来获取Launcher的布局数据。本发明是通过将云端服务数据分成若干个微服务。Launcher云端微服务为其中一种微服务。具体地,Launcher云端微服务拆分布局服务、内容服务、专题服务。其中微服务是一种以业务功能为主的服务设计概念,每一个服务都具有自主运行的业务功能,对外开放不受语言限制的 API (最常用的是 HTTP),应用程序则是由一个或多个微服务组成。
微服务运用了以业务功能的设计概念,应用程序在设计时就能先以业务功能或流程设计先行分割,将各个业务功能都独立实作成一个能自主执行的个体服务,然后再利用相同的协定将所有应用程序需要的服务都组合起来,形成一个应用程序。若需要针对特定业务功能进行扩充时,只要对该业务功能的服务进行扩展就好,不需要整个应用程序都扩展。
具体地,采用微服务框架SpringBoot来开发微服务,将开发完成的微服务打包成War包。War包是一种web服务打包,具体如现有技术所述。Web容器采用Jetty。 相对于Tomcat,Jetty更轻量级,Jetty更满足公有云的分布式环境的需求。一台IP主机上只部署一个Jetty,一个Jetty服务器可以部署多个War包,每个War包暴露的端口不同。Jetty、 Tomcat都是基于Java的web容器。
如图2所示,为本发明的一种Launcher云端系统与智能电视交互示意图。电视终端:指基于Android系统的智能电视,在进入Launcher主界面时会向云端发起获取Launcher布局信息的HTTP请求。服务发现是统一接收智能电视HTTP请求的网关。云端接收到HTTP请求后根据规则获取请求的URL,然后去服务注册中心查找该URL对应的IP主机。如果发现多个IP主机,则根据算法最终确定一台IP主机。其中服务注册中心用于管理服务的生命周期包括服务的添加、启用、注销。图2中配置中心的作用是统一管理微服务的所有配置信息。本专利采用基于Zookeeper架构来作为配置中心的基础架构。配置中心管理的配置有数据库配置信息和缓存配置信息。数据库配置信息包含:数据库的IP、端口、用户名、密码、字符集。缓存配置信息包含:缓存节点的IP、端口。缓存集群中集群策略采用Memcache的一致性Hash算法,即 集群中的缓存节点共同承担存储数据的工作。一份数据只会存储在一个缓存节点中。数据存储到哪个缓存节点由上面的Hash算法计算的结果决定。
进一步的实施例中,所述步骤S100之前还包括步骤:
S、预先在Launcher云端中设置不同的缓存集群用于存储Launcher服务的配置数据。
具体实施时, 如图2所示,IP地址192.168.1.1下面的矩形框就代表一个微服务集群,该集群由一个服务路由(通常是Nginx)和多个功能一样的微服务组成。Nginx是一个高性能的HTTP和反向代理服务器。微服务之间唯一的区别是暴露的端口(图中的8081、8082端口)不同。以上微服务使用同一的配置信息,配置信息从配置中心获取,同时通过心跳机制监听配置信息是否发生变化,如果发现配置信息发生变化则及时更新。具体地,预先在Launcher云端中设置不同的缓存集群存储不同的服务的配置数据,如设置布局缓存集群存放Launcher布局信息,内容缓存集群存放Launcher内容信息,专题缓存集群存放Launcher专题信息。其中服务路由是将调用的微服务最终定位IP主机的某个端口上,其中。具体地把请求重定向到某个端口上,当该端口暴露的服务出现问题时,自动切换到下一服务上。
其中步骤S100之前包括:预先将对应的微服务已经部署到了生产环境中,并在注册表中添加了该服务的信息。
S200、Launcher云端接收第一HTTP请求后分析第一HTTP请求对应的第一请求URL,根据第一请求URL查找发布对应服务的IP主机,并根据负载均衡方法定位到IP主机上对应的端口。
具体实施时, Launcher云端接收HTTP请求后分析请求的URL,根据URL去服务注册中心查找发布对应服务的IP主机。一台IP主机上通常部署了多个相同的微服务,这些服务暴露的端口不同,根据负载均衡策略系统最终定位到具体的端口上。
进一步的实施例中,所述步骤S200具体包括步骤:
S201、Launcher云端接收智能电视发送的第一HTTP请求,根据规则获取第一HTTP请求对应的第一请求URL;
S202、Launcher云端查找第一请求URL对应的服务,并根据对应的服务查找IP主机,判断查找到的IP主机是否为多个IP主机,若是,则根据负载均衡算法确定一台IP主机,若否,则获取当前的IP主机;
S203、Launcher云端获取IP主机的端口,根据负载均衡算法定位对应的端口。
具体实施时,Launcher云端接收HTTP请求后分析请求的URL,根据URL去服务注册中心查找发布对应服务的IP主机 。如果找到多个IP主机则根据负载均衡算法最终确定一台IP主机。一台IP主机上通常部署了多个相同的微服务,这些服务暴露的端口不同,根据负载均衡策略系统最终定位到具体的端口上,如果发现该端口上的服务不可用,系统将重新定位端口。
Nginx中的负载均衡策略有以下4种:
轮询:根据Nginx配置文件中的顺序,依次把客户端的Web请求分发到不同的后端服务器。
最少连接:Web请求会被转发到连接数最少的服务器上。
IP地址哈希:同一客户端连续的Web请求都会被分发到同一服务器进行处理。
基于权重:基于权重的负载均衡即Weighted Load Balancing,这种方式下,我们可以配置Nginx把请求更多地分发到高配置的后端服务器上,把相对较少的请求分发到低配服务器。
具体地,本发明中实施例中采用基于权重的负载均衡和基于IP地址哈希的负载均衡可以组合在一起使用。
进一步的实施例中,步骤S202中Launcher云端查找第一请求URL对应的服务具体包括步骤:
S221、Launcher云端收到第一请求URL,在缓存中查找是否有对应服务;
S222、若在缓存中找到对应的服务,则获取缓存中的对应的服务;
S223、若在缓存未查找到对应的服务,则在服务注册中心查找对应的服务,并将查找到的对应服务加载到缓存中。
具体实施时, Openresty作为是统一接收智能电视HTTP请求的网关。Openresty接收到请求后去Redis缓存中查找是否有对应的服务。如果Openresty在Redis缓存中找到对应的服务,则返回服务对应的IP,如果Openresty在Redis缓存中没有找到对应的服务,则去服务注册中心查找。如果在服务注册中心找到状态为启用的服务信息,则将该服务信息加载到Redis缓存中,如果在服务注册中心没有找到对应的服务信息,则服务注册中心将未启用状态的服务置为启用状态并将该服务信息加载到Redis缓存中。
进一步地,步骤S202还包括步骤:
S204、若在服务器注册中心未查找到处于启用状态的IP主机,则查找没有启用并且没有注销状态的IP主机,并自动修改此IP主机状态为启用,作为第一请求URL对应服务的IP主机。
具体实施时,如果在步骤S202中没有找到启用状态的IP主机,则查找没有启用并且没有注销状态的IP主机,并自动修改此IP主机状态为启用。
S300、Launcher云端将定位到的IP主机的IP及端口拼装成第二HTTP请求对应的第二URL,并将第二URL返回给智能电视。
具体实施时,通过定位到的定位到的IP主机的IP及端口拼装成新的HTTP请求即第二URL,Launcher云端将第二URL返回给智能电视。
S400、智能电视定位至第二URL,从第二URL对应的缓存集群中获取Launcher配置数据的配置数据,根据配置数据对智能电视的Launcher进行配置。
具体实施时,智能电视重定位至第二URL,并从第二URL对应的缓存集群中获取Launcher配置数据的配置数据,根据配置数据对智能电视的Launcher进行配置,从而完成智能电视的Launcher配置。
本发明中微服务的架构降低了模块间的耦合性,从而具有更好的重用性,维护性,扩展性,方便后期的系统维护开发。本发明中一个服务由一个或几个微服务集群构成,每个微服务集群由功能相同的多个微服务组成,从而降低了微服务失效的风险。本发明中微服务全部采用无状态的HTTP协议,保证了微服务功能的独立性。本发明中引入了服务注册、服务发现、服务路由机制,保证了智能电视终端能快速定位到要使用的服务的IP及端口。本发明中微服务部署在公有云的基础设施上,提升了服务的可靠性和安全性,保证了服务的质量。基于公有云,能快速配置并启用全新的一台服务设备。本发明中引入了配置中心的机制,微服务从配置中心获取配置信息,减少了手工配置出错的风险,为快速部署微服务提供了保障,同时引入了心跳机制,各个微服务实时监听配置是否发生变化并及时更新。
本发明还提供了一种智能电视Launcher云端系统服务调用系统的较佳实施例的功能原理框图,如图3所示,其中,系统包括:
请求发送模块100,用于智能电视开启Launcher后,向Launcher云端发起获取Launcher配置数据的第一HTTP请求;具体如方法实施例所述。
定位模块200,用于Launcher云端接收第一HTTP请求后分析第一HTTP请求对应的第一请求URL,根据第一请求URL查找发布对应服务的IP主机,并根据负载均衡方法定位到IP主机上对应的端口;具体如方法实施例所述。
服务路由模块300,用于Launcher云端将定位到的IP主机的IP及端口拼装成第二HTTP请求对应的第二URL,并将第二URL返回给智能电视;具体如方法实施例所述。
重定向及配置模块400,用于智能电视定位至第二URL,从第二URL对应的缓存集群中获取Launcher配置数据的配置数据,根据配置数据对智能电视的Launcher进行配置;具体如方法实施例所述。
所述的智能电视Launcher云端系统服务调用系统,其中,所述系统还包括:
预先设置模块,用于预先在Launcher云端中设置不同的缓存集群用于存储Launcher服务的配置数据;具体如方法实施例所述。
所述的智能电视Launcher云端系统服务调用系统,其中,所述定位模块具体包括:
URL获取单元,用于Launcher云端接收智能电视发送的第一HTTP请求,根据规则获取第一HTTP请求对应的第一请求URL;具体如方法实施例所述。
IP主机定位单元,用于Launcher云端查找第一请求URL对应的服务,并根据对应的服务查找IP主机,判断查找到的IP主机是否为多个IP主机,若是,则根据负载均衡算法确定一台IP主机,若否,则获取当前的IP主机;具体如方法实施例所述。
端口定位单元,用于Launcher云端获取IP主机的端口,根据负载均衡算法定位对应的端口;具体如方法实施例所述。
所述的智能电视Launcher云端系统服务调用系统,其中,所述IP主机定位单元包括:
服务查找与判断单元,用于Launcher云端收到第一请求URL,在缓存中查找是否有对应服务;具体如方法实施例所述。
第一服务获取单元,用于若在缓存中找到对应的服务,则获取缓存中的对应的服务;具体如方法实施例所述。
第二服务获取单元,用于若在缓存未查找到对应的服务,则在服务注册中心查找对应的服务,并将查找到的对应服务加载到缓存中;具体如方法实施例所述。
所述的智能电视Launcher云端系统服务调用系统,其中,所述IP主机定位单元还包括:
IP主机启用单元,用于若在服务器注册中心未查找到处于启用状态的IP主机,则查找没有启用并且没有注销状态的IP主机,并自动修改此IP主机状态为启用,作为第一请求URL对应服务的IP主机;具体如方法实施例所述。
综上所述,本发明公开了智能电视Launcher云端系统服务调用方法及系统,方法包括:智能电视开启Launcher后,向Launcher云端发起获取Launcher配置数据的第一HTTP请求; Launcher云端分析第一HTTP请求对应的第一请求URL,查找发布对应服务的IP主机,并根据负载均衡方法定位到IP主机上对应的端口;将定位到的IP及端口拼装成第二HTTP请求对应的第二URL,将第二URL返回给智能电视;智能电视定位至第二URL,根据从第二URL获取配置数据对Launcher进行配置。本发明可通过将微服务部署在公有云,提升了服务的安全和可靠性,从而使智能电视可快速定位到要使用的服务的IP及端口,而且一个服务由多个微服务集群构成,方便后面的系统维护及服务的独立性。
应当理解的是,本发明的应用不限于上述的举例,对本领域普通技术人员来说,可以根据上述说明加以改进或变换,所有这些改进和变换都应属于本发明所附权利要求的保护范围。