本发明专利技术提供了实现服务化的方法和装置,其中该方法包括:部署服务化的客户端和服务端,根据不同的路由算法实现客户端的负载均衡,获取调用日志,异步发送到监控系统,分析服务间的依赖关系,客户端加载服务接口方法,控制服务之间的权限,实现服务授权。本发明专利技术提供了客户端和服务端之间标准交互方式,提升可维护性,服务的调试和问题跟踪方便定位问题。
【技术实现步骤摘要】
实现服务化的方法和装置
本专利技术涉及分布式计算领域,特别涉及一种实现服务化的方法和装置。
技术介绍
随着互联网的业务快速发展,硬件设备的数量和成本是越来越值得注意的因素。与传统的高端服务器、高端存储器和高端处理器不同的是,互联网公司的分布式系统由数量众多的、低成本和高性价比的普通PC服务器通过网络连接而成。这就使得分布式系统不能依靠传统的纵向扩展的方式,即先买小型机,不够时再买中型机,甚至大型机。互联网后端的分布式系统要求支持横向扩展,即通过增加普通PC服务器来提高系统的整体处理能力。普通PC服务器性价比高,故障率也高,需要在软件层面实现自动容错,保证数据的一致性。另外,随着服务器的不断加入,需要能够在软件层面实现自动负载均衡,使得系统的处理能力得到线性扩展。通过服务化技术解决分布式部署,可扩展,高可用,低成本,负载均衡。图2是现有技术中SOA模型的示意图。面向服务的体系结构(SOA)是一个组件模型,它将应用程序的不同功能单元(即服务)通过它们之间事先定义的良好的接口和契约联系起来。其中,接口是采用中立的方式进行定义的,它独立于实现服务的硬件平台、操作系统和编程语言,不依赖于环境,这使得构建在各种采用SOA模型的系统中的服务可以以一种统一和通用的方式进行交互。每一个SOA解决方案架构层都可以利用SOA模型元素来建模。可以根据每一个SOA模型元素对操作模型元素建模。然而采用服务化技术后,对业务人员的服务抽象能力要求比较高,怎样抽象接口才能灵活的适应业务的变化,服务粒度的划分至关重要。粒度太粗导致服务不能重用,太细导致远程调用过多。接口安全审核、变更管理会给项目流程增加一定负担。此外,服务化给调试和跟踪问题带来困难,调试一个服务要保证所依赖的服务是可用的,分布式系统跟踪问题的难度将是单机系统的N倍。因此,针对相关技术中所存在的上述问题,目前尚未提出有效的解决方案。
技术实现思路
为解决上述现有技术所存在的问题,本专利技术提出了一种实现服务化的方法和装置,对进行系统解耦,把一个大的系统拆分成多个小的服务,每个小服务之间可以独立部署,维护简单,提高开发效率,服务之间可以相互调用,服务可以共享,可重用。服务之间提供标准交互方式,屏蔽底层细节,提升可维护性。本专利技术采用如下技术方案:一种实现服务化的方法,包括:步骤一,部署服务化的客户端和服务端,步骤二,根据预设路由算法实现客户端的负载均衡,步骤三,获取调用日志,把日志异步发送到监控系统,分析服务间的依赖关系;步骤四,客户端加载服务接口方法,控制服务之间的权限,实现服务授权。优选地,所述步骤一进一步包括:服务端在启动服务时,把服务的IP地址、接口、版本、服务名称注册到注册中心,服务端提供服务之间的RPC机制,对于一个服务,服务端支持在多个节点中分布式部署;客户端引入服务端的API接口,采用动态代理的方式生成调用服务端的存根,在调用服务的具体方法之前,得到提供此服务的机器IP地址列表,利用路由规则选择一个节点进行通信,如果和某个节点通信发生网络异常,根据路由规则转移到下一个节点,客户端支持 failover ;在服务端停止服务时,自动通知客户端把对应于该服务端的节点删除;客户端和服务端底层采用socket通讯,集成jboss remoting和netty通信框架,采用jboss serialization和json序列化来传输数据,实现同步和异步调用。优选地,在所述步骤二中,服务端节点的变化被推送到注册中心,注册中心实时通知到所有客户端进行节点变更,客户端根据路由算法找到具体服务节点进行调用,所述路由算法包括:轮询调度算法和权重轮询算法。优选地,所述步骤三采用插件拦截机制获取调用日志,并异步发送到监控系统,所述监控系统监控服务的名称、IP、端口,以及服务是否运行,服务调用统计、报警及自定义报警规则;对于服务执行过程的异常,系统可以给出异常栈,并可在不同维度上定义报警规则。[0021 ] 优选地,所述步骤三进一步包括:客户端的一次调用生成唯一 request ID传输到服务端,根据该request ID来分析服务之间的依赖关系和方法的执行时间。优选地,所述步骤四进一步包括:客户端通过Web界面,自动加载服务的接口方法,通过编写授权规则来控制服务之间的权限,所述权限包括,允许访问的IP地址、服务、接口、方法,其中该权限由规则来控制,授权规则利用规则弓I擎来解析。根据本专利技术的另一方面,提供了一种实现服务化的装置,包括:部署模块,用于部署服务化的客户端和服务端,路由模块,用于根据预设路由算法实现客户端的负载均衡,监控模块,用于获取调用日志,把日志异步发送到监控系统,分析服务间的依赖关系;授权模块,用于通过客户端加载服务接口方法,来控制服务之间的权限,实现服务授权。相比于现有技术,本专利技术的技术方案的具有以下优点:由于业务发展比较块,需求快速上线,可能不需要开发新的功能,组合已有服务就完成新的需求。服务之间提供标准交互方式,屏蔽底层细节,提升可维护性,服务的调试和问题跟踪利用监控系统,把服务的调用异常栈信息进行收集,展现,方便定位问题。【附图说明】图1是根据本专利技术实施例的实现服务化方法的流程图。图2是现有技术的SOA模型的示意图。图3是根据本专利技术实施例的服务管理流程示意图。图4是根据本专利技术方法所产生的技术效果的示意图。【具体实施方式】多种方式可以用于(包括实施为过程;装置;系统;物质组成;在计算机可读存储介质上包括的计算机程序产品;和/或处理器(诸如如下处理器,该处理器被配置成执行在耦合到处理器的存储器上存储的和/或由该存储器提供的指令))实施本专利技术。在本说明书中,这些实施或者本专利技术可以采用的任何其他形式可以称为技术。一般而言,可以在本专利技术的范围内变更公开的过程的步骤顺序。除非另有明示,描述为被配置成执行任务的部件(诸如处理器或者存储器)可以实施为被临时配置成在给定时间执行该任务的一般部件或者被制造成执行该任务的具体部件。下文与图示本专利技术原理的附图一起提供对本专利技术一个或者多个实施例的详细描述。结合这样的实施例描述本专利技术,但是本专利技术不限于任何实施例。本专利技术的范围仅由权利要求书限定,并且本专利技术涵盖诸多替代、修改和等同物。在下文描述中阐述诸多具体细节以便提供对本专利技术的透彻理解。出于示例的目的而提供这些细节,并且无这些具体细节中的一些或者所有细节也可以根据权利要求书实现本专利技术。图1是根据本专利技术实施例的实现服务化方法的流程图。如图1所示,本专利技术提供的方法包括:1、部署服务化的客户端和服务端。服务端在启动服务时,把服务的IP、接口、版本、服务名称都注册到zookeeper注册中心。服务端提供服务之间的RPC机制。对于一个服务,服务端支持多个节点分布式部署。客户端引入服务端API接口,采用动态代理的方式生成调用服务端的存根,在调用具体方法前,得到提供此服务的机器IP列表,利用路由规则选择一个节点进行通信,如果和某个节点通信发生网络异常,根据路由规则转移到下一个节点,客户端支持failover。如果服务端停止服务,自动通知客户端把对应于该服务端的节点删除。客户端和服务端底层采用socket通讯,集成jboss remoting和netty通信框架,采用jboss serializ本文档来自技高网...
【技术保护点】
一种实现服务化的方法,其特征在于,包括:步骤一,部署服务化的客户端和服务端,步骤二,根据预设路由算法实现客户端的负载均衡,步骤三,获取调用日志,把日志异步发送到监控系统,分析服务间的依赖关系;步骤四,客户端加载服务接口方法,控制服务之间的权限,实现服务授权。
【技术特征摘要】
1.一种实现服务化的方法,其特征在于,包括: 步骤一,部署服务化的客户端和服务端, 步骤二,根据预设路由算法实现客户端的负载均衡, 步骤三,获取调用日志,把日志异步发送到监控系统,分析服务间的依赖关系; 步骤四,客户端加载服务接口方法,控制服务之间的权限,实现服务授权。2.根据权利要求1所述的方法,其特征在于,所述步骤一进一步包括: 服务端在启动服务时,把服务的IP地址、接口、版本、服务名称注册到注册中心,服务端提供服务之间的RPC机制,对于一个服务,服务端支持在多个节点中分布式部署; 客户端引入服务端的API接口,采用动态代理的方式生成调用服务端的存根,在调用服务的具体方法之前,得到提供此服务的机器IP地址列表,利用路由规则选择一个节点进行通信,如果和某个节点通信发生网络异常,根据路由规则转移到下一个节点,客户端支持failover ; 在服务端停止服务时,自动通知客户端把对应于该服务端的节点删除; 客户端和服务端底层采用socket通讯,集成jboss remoting和netty通信框架,采用jboss serialization和json序列化来传输数据,实现同步和异步调用。3.根据权利要求2所述的方法,其特征在于,在所述步骤二中,服务端节点的变化被推送到注册中心,注册中心实时通知到所有客户端进行节...
【专利技术属性】
技术研发人员:王子武,刘泉,
申请(专利权)人:世纪禾光科技发展北京有限公司,
类型:发明
国别省市:北京;11
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。