CN106411933B - 一种可进行服务治理与语言调用的轻量级rpc系统 - Google Patents

一种可进行服务治理与语言调用的轻量级rpc系统 Download PDF

Info

Publication number
CN106411933B
CN106411933B CN201611003898.3A CN201611003898A CN106411933B CN 106411933 B CN106411933 B CN 106411933B CN 201611003898 A CN201611003898 A CN 201611003898A CN 106411933 B CN106411933 B CN 106411933B
Authority
CN
China
Prior art keywords
module
service
client
registration
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.)
Active
Application number
CN201611003898.3A
Other languages
English (en)
Other versions
CN106411933A (zh
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.)
Tubatu Group Co Ltd
Original Assignee
Shenzhen Bincent Technology 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 Shenzhen Bincent Technology Co Ltd filed Critical Shenzhen Bincent Technology Co Ltd
Priority to CN201611003898.3A priority Critical patent/CN106411933B/zh
Publication of CN106411933A publication Critical patent/CN106411933A/zh
Application granted granted Critical
Publication of CN106411933B publication Critical patent/CN106411933B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • 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/133Protocols for remote procedure calls [RPC]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/547Remote procedure calls [RPC]; Web services
    • G06F9/548Object oriented; Remote method invocation [RMI]
    • 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/50Network service management, e.g. ensuring proper service fulfilment according to agreements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/34Network arrangements or protocols for supporting network services or applications involving the movement of software or configuration parameters 

Abstract

本发明提供了一种可进行服务治理与语言调用的轻量级RPC框架,包括注册中心、服务器及客户端,所述注册中心与所述服务器及客户端连接,所述服务器与所述客户端连接,所述服务器向注册中心注册声明所提供的服务,通过ServerBootstrap暴露策略向所述注册中心以服务规范的路径暴露自己,所述客户端进行初始化并向所述注册中心订阅指定服务,所述注册中心将服务列表返回所述服务器,所述客户端与所述注册中心返回信息的服务器建立连接,进行RPC服务调用;该可进行服务治理与语言调用的轻量级RPC框架能高度适配公司环境,可进行服务治理与跨语言调用,轻量部署和业务代码解耦、解决微服务难于管理和难于跨语言调用的问题。

Description

一种可进行服务治理与语言调用的轻量级RPC系统
技术领域
本发明涉及数据处理技术领域,尤其涉及一种可进行服务治理与语言调用的轻量级RPC系统。
背景技术
目前,各大互联网公司大量使用微服务架构,服务与服务之间进行跨进程间通信,RPC(远程过程调用)系统应运而生。业界RPC系统大致分为两类,一种是偏重服务治理,另一种侧重跨语言调用。
服务治理型RPC系统典型的是Dubbo和DubboX。Dubbo是阿里开源的分布式服务系统,实现高性能的RPC调用同时提供了丰富的管理功能,是一款应用广泛的优秀的RPC系统,但现在较少维护更新,DubboX是基于Dubbo系统扩展的一个RPC系统,支持REST风格的远程调用、Kryo/FST序列化。
这类RPC系统的特点是功能丰富,提供高性能的远程调用、服务发现及服务治理能力,适用于大型服务的服务解耦及服务治理,对于特定语言(Java)的项目可以实现透明化接入,缺点是语言耦合度较高,跨语言支持难度较大。
跨语言调用型的RPC系统有Thrift、gRPC、Hessian、Hprose等,这类RPC系统侧重于服务的跨语言调用,能够支持大部分的语言进行语言无关的调用,非常适合多语言调用场景。但这类系统没有服务发现相关机制,实际使用时需要代理层进行请求转发和负载均衡策略控制。
类似于Dubbo这类偏重服务治理的系统,虽然能够提供远程调用、服务发现及服务治理能力,但是语言耦合度较高,跨语言支持难度较大,然而使用类似Thrift这类系统,没有服务发现和服务治理等相关机制;
因此,本领域的技术人员亟需研究出一种适配公司环境,可进行服务治理与跨语言调用,轻量部署和业务代码解耦、解决微服务难于管理和难于跨语言调用的问题的可进行服务治理与语言调用的轻量级RPC系统。
发明内容
本发明要解决的技术问题是提供一种可进行服务治理与语言调用的轻量级RPC系统,该可进行服务治理与语言调用的轻量级RPC系统能高度适配公司环境,可进行服务治理与跨语言调用,轻量部署和业务代码解耦、解决微服务难于管理和难于跨语言调用的问题。
为解决上述技术问题,一种可进行服务治理与语言调用的轻量级RPC系统,包括注册中心、服务器及客户端,所述注册中心与所述服务器及客户端连接,所述服务器与所述客户端连接,所述服务器向注册中心注册声明所提供的服务,通过ServerBootstrap暴露策略向所述注册中心以服务规范的路径暴露自己,所述客户端进行初始化并向所述注册中心订阅指定服务,所述注册中心将服务列表返回所述服务器,所述客户端与所述注册中心返回信息的服务器建立连接,进行RPC服务调用;
所述服务器包括第一传输模块、第一序列化模块、第一协议模块及服务模块,所述客户端包括第二传输模块、第二序列化模块、集群模块、第二协议模块及引用模块;
所述引用模块引入API,调用所述客户端的API接口并将调用的数据发送给所述第二协议模块;所述第二协议模块接收所述引用模块调用的数据,并进行调用的代理,所述第二协议模块将代理的服务数据发送给所述集群模块;所述集群模块根据负载均衡策略选取所述集群模块持有的可用的服务实例进行集群;所述集群模块保持所述客户端与服务器进行通信,所述集群模块将服务实例的数据发送给所述第二序列化模块,维护服务实例的连接;所述第二序列化模块根据所述客户端与所述服务器双方通信制定好的协议进行JAVA对象到JSON的序列化,所述第二序列化模块序列化完成后将序列化的服务数据发送给所述第二传输模块;所述第二传输模块进行I/O的操作向所述服务器的第一传输模块发送服务数据包;所述第一传输模块接收所述第二传输模块发送的服务数据并将接收的数据发送给所述第一序列化模块;所述第一序列化模块根据所述客户端与所述服务器双方通信制定好的协议进行JSON到JAVA对象的解序列化,所述第一序列化模块解序列化完成后将解序列化的服务数据发送给所述第一协议模块;所述第一协议模块将解序列化的服务数据发送给所述服务模块;所述服务模块将服务实例的数据返回发送给所述第一协议模块;所述第一协议模块将服务数据发送给所述第一序列化模块;所述第一序列化模块根据所述客户端与所述服务器双方通信制定好的协议进行JAVA到JSON对象的序列化,所述第一序列化模块序列化完成后将序列化的服务数据发送给所述第一传输模块;所述第一传输模块进行O/I的操作向所述客户端的第二传输模块发送服务数据包;所述第二传输模块接收所述第一传输模块发送的服务数据并将接收的数据发送给所述第二序列化模块;所述第二序列化模块根据所述客户端与所述服务器双方通信制定好的协议进行JSON对象到JAVA的解序列化,所述第二序列化模块解序列化完成后将序列化的服务数据发送给所述集群模块;所述集群模块根据负载均衡策略选取所述集群模块持有的可用的服务实例进行集群并将集群完成的服务数据发送给所述第二协议模块;所述第二协议模块将集群的服务数据发送给所述引用模块;所述客户端的引用模块引入API,调用所述客户端的API接口。
优选地,所述服务器还包括第一注册模块,所述第一注册模块进行服务初始化,通过XML配置中的参数来初始化服务参数,通过所述服务参数来构建字段,并向所述注册中心上报所述字段,当服务初始化完成后,所述第一注册模块通过ServerBootstrap暴露策略向注册中心以服务规范的路径暴露自己,通过所述上报的字段来描述本服务提供的服务和服务元数据,当所述第一注册模块将服务在注册中心完成注册后,注册中心推送本次事件给订阅了此服务的客户端,所述第一协议模块接收所述第一序列化模块发送的序列化数据,并将服务变更数据同步到所述第一注册模块,所述第一协议模块接收所述服务模块发送的服务数据,将变更的服务数据同步到所述第一注册模块;
其中,所述XML配置的参数包括:日志、服务变量、服务版本。
优选地,所述客户端还包括第二注册模块,所述第二注册模块根据XML中配置的服务名在注册中心订阅所述服务;所述客户端接收所述注册中心推送过来的事件,从所述事件中获取所述服务上报的字段来取得这个服务的元数据,所述第二协议模块接收所述集群模块发送的序列化服务数据,并将服务变更数据同步到所述第二注册模块。
优选地,所述第一注册模块及第二注册模块用于和注册中心进行交互业务,所述服务器会在系统初始化时通过所述第一注册模块注册服务,所述客户端在客户端初始化时通过所述第二注册模块订阅具体提供服务的服务列表,当服务列表发生变更时由所述第二注册模块通知所述客户端。
优选地,所述交互业务包括注册服务、订阅服务、服务变更通知及服务心跳发送。
优选地,所述第一协议模块及所述第二协议模块用于进行RPC服务的描述、RPC服务的配置管理、添加不同功能的过滤器来完成统计及并发限制。
优选地,所述第一序列化模块及第二序列化模块用于将所述客户端及服务器请求中的参数、结果进行序列化和解序列化。
优选地,所述序列化和解序列化为进行JSON对象与JAVA中字节流的互相转换,JAVA对象和JSON的互相转换。
优选地,所述集群模块用于一组可用的服务模块在逻辑上的封装,包含若干可以提供RPC服务的服务子模块,根据不同的高可用与负载均衡策略选择一个可用的服务子模块进行路由,并发起远程调用。
采用了上述系统之后,所述服务器向注册中心注册声明所提供的服务,通过ServerBootstrap暴露策略向所述注册中心以服务规范的路径暴露自己,所述客户端进行初始化并向所述注册中心订阅指定服务,所述注册中心将服务列表返回所述服务器,所述客户端与所述注册中心返回信息的服务器建立连接,进行RPC服务调用;所述客户端的引用模块引入API,调用所述客户端的API接口并将调用的数据发送给所述第二协议模块;所述第二协议模块接收所述引用模块调用的数据,并进行调用的代理,所述第二协议模块将代理的服务数据给发送给所述集群模块;所述集群模块根据负载均衡策略选取所述集群模块持有的可用的服务实例进行集群;所述集群模块保持所述客户端与服务器进行通信,所述集群模块将服务实例的数据发送给所述第二序列化模块,维护服务实例的连接;所述第二序列化模块根据所述客户端与所述服务器双方通信制定好的协议进行JAVA对象到JSON的序列化,所述第二序列化模块序列化完成后将序列化的服务数据发送给所述第二传输模块;所述第二传输模块进行I/O的操作向所述服务器的第一传输模块发送服务数据包;所述第一传输模块接收所述第二传输模块发送的服务数据并将接收的数据发送给所述第一序列化模块;所述第一序列化模块根据所述客户端与所述服务器双方通信制定好的协议进行JSON到JAVA对象的解序列化,所述第一序列化模块解序列化完成后将解序列化的服务数据发送给所述第一协议模块;所述第一协议模块接收所述第一序列化模块发送的序列化数据,并将服务变更数据同步到所述第一注册模块,所述第一协议模块将解序列化的服务数据发送给所述服务模块;然后,再由所述服务模块返回到所述客户端的引用模块;该可进行服务治理与语言调用的轻量级RPC系统能高度适配公司环境,可进行服务治理与跨语言调用,轻量部署和业务代码解耦、解决微服务难于管理和难于跨语言调用的问题。
附图说明
图1是本发明的一种可进行服务治理与语言调用的轻量级RPC系统的具体模型示意图;
图2是本发明的可进行服务治理与语言调用的轻量级RPC系统的整体模型示意图;
图3是与图1的对应的可进行服务治理与语言调用的轻量级RPC系统的模型的另一种展示方式;
图4是图2的整体模型落地到具体实施例的示意图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅用于解释本发明,并不用于限定本发明。
实施例1
请参阅图1至图2,图1是本发明的一种可进行服务治理与语言调用的轻量级RPC系统的具体模型示意图;
图2是本发明的可进行服务治理与语言调用的轻量级RPC系统的整体模型示意图;
本发明公开了一种可进行服务治理与语言调用的轻量级RPC系统,包括注册中心、服务器及客户端,所述注册中心与所述服务器及客户端连接,所述服务器与所述客户端连接,所述服务器向注册中心注册声明所提供的服务,通过ServerBootstrap暴露策略向所述注册中心以服务规范的路径暴露自己,所述客户端进行初始化并向所述注册中心订阅指定服务,所述注册中心将服务列表返回所述服务器,所述客户端与所述注册中心返回信息的服务器建立连接,进行RPC服务调用;
所述服务器包括第一传输模块、第一序列化模块、第一协议模块及服务模块,所述客户端包括第二传输模块、第二序列化模块、集群模块、第二协议模块及引用模块;
所述引用模块引入API,调用所述客户端的API接口并将调用的数据发送给所述第二协议模块;所述第二协议模块接收所述引用模块调用的数据,并进行调用的代理,所述第二协议模块将代理的服务数据发送给所述集群模块;所述集群模块根据负载均衡策略选取所述集群模块持有的可用的服务实例进行集群;所述集群模块保持所述客户端与服务器进行通信,所述集群模块将服务实例的数据发送给所述第二序列化模块,维护服务实例的连接;所述第二序列化模块根据所述客户端与所述服务器双方通信制定好的协议进行JAVA对象到JSON的序列化,所述第二序列化模块序列化完成后将序列化的服务数据发送给所述第二传输模块;所述第二传输模块进行I/O的操作向所述服务器的第一传输模块发送服务数据包;所述第一传输模块接收所述第二传输模块发送的服务数据并将接收的数据发送给所述第一序列化模块;所述第一序列化模块根据所述客户端与所述服务器双方通信制定好的协议进行JSON到JAVA对象的解序列化,所述第一序列化模块解序列化完成后将解序列化的服务数据发送给所述第一协议模块;所述第一协议模块将解序列化的服务数据发送给所述服务模块;所述服务模块将服务实例的数据返回发送给所述第一协议模块;所述第一协议模块将服务数据发送给所述第一序列化模块;所述第一序列化模块根据所述客户端与所述服务器双方通信制定好的协议进行JAVA到JSON对象的序列化,所述第一序列化模块序列化完成后将序列化的服务数据发送给所述第一传输模块;所述第一传输模块进行O/I的操作向所述服务器的第二传输模块发送服务数据包;所述第二传输模块接收所述第一传输模块发送的服务数据并将接收的数据发送给所述第二序列化模块;所述第二序列化模块根据所述客户端与所述服务器双方通信制定好的协议进行JSON对象到JAVA的解序列化,所述第二序列化模块解序列化完成后将序列化的服务数据发送给所述集群模块;所述集群模块根据负载均衡策略选取所述集群模块持有的可用的服务实例进行集群并将集群完成的服务数据发送给所述第二协议模块;所述第二协议模块将集群的服务数据发送给所述引用模块;所述客户端的引用模块引入API,调用所述客户端的API接口。
在本实施例中,所述服务器还包括第一注册模块,所述第一注册模块进行服务初始化,通过XML配置中的参数来初始化服务参数,通过所述服务参数来构建字段,并向所述注册中心上报所述字段,当服务初始化完成后,所述第一注册模块通过ServerBootstrap暴露策略向注册中心以服务规范的路径暴露自己,通过所述上报的字段来描述本服务提供的服务和服务元数据,当所述第一注册模块将服务在注册中心完成注册后,注册中心推送本次事件给订阅了此服务的客户端,所述第一协议模块接收所述第一序列化模块发送的序列化数据,并将服务变更数据同步到所述第一注册模块,所述第一协议模块接收所述服务模块发送的服务数据,将变更的服务数据同步到所述第一注册模块;
其中,所述XML配置的参数包括:日志、服务变量、服务版本。
在本实施例中,所述客户端还包括第二注册模块,所述第二注册模块根据XML中配置的服务名在注册中心订阅所述服务;所述客户端接收所述注册中心推送过来的事件,从所述事件中获取所述服务上报的字段来取得这个服务的元数据,所述第二协议模块接收所述集群模块发送的序列化服务数据,并将服务变更数据同步到所述第二注册模块。
在本实施例中,所述第一注册模块及第二注册模块用于和注册中心进行交互业务,所述服务器会在系统初始化时通过所述第一注册模块注册服务,所述客户端在客户端初始化时通过所述第二注册模块订阅具体提供服务的服务列表,当服务列表发生变更时由所述第二注册模块通知所述客户端。
所述交互业务包括注册服务、订阅服务、服务变更通知及服务心跳发送。
在本实施例中,所述第一协议模块及所述第二协议模块用于进行RPC服务的描述、RPC服务的配置管理、添加不同功能的过滤器来完成统计及并发限制。
在本实施例中,所述第一序列化模块及第二序列化模块用于将所述客户端及服务器请求中的参数、结果进行序列化和解序列化。
在本实施例中,所述序列化和解序列化为进行JSON对象与JAVA中字节流的互相转换,JAVA对象和JSON的互相转换。
在本实施例中,所述集群模块用于一组可用的服务模块在逻辑上的封装,包含若干可以提供RPC服务的服务子模块,根据不同的高可用与负载均衡策略选择一个可用的服务子模块进行路由,并发起远程调用。
在所述服务器与所述客户端连接,所述客户端对所述服务器的服务数据进行调用时,所述客户端拥有高可用和负载均衡功能,也可根据具体的路由策略来选取可用的实例,以下是几个例子:
请参阅图3,图3是与图1的对应的可进行服务治理与语言调用的轻量级RPC系统的模型的另一种展示方式;
所述可进行服务治理与语言调用的轻量级RPC系统整体模型如图3所示。
请参阅图4,图4是图2的整体模型落地到具体实施例的示意图;
HelloService提供服务,并向注册中心注册自己,说明自己提供的服务,WorldService向注册中心订阅HelloService,感知到HelloService的上下线,并建立或断开连接,进行RPC调用。
采用了上述系统之后,所述服务器向注册中心注册声明所提供的服务,通过ServerBootstrap暴露策略向所述注册中心以服务规范的路径暴露自己,所述客户端进行初始化并向所述注册中心订阅指定服务,所述注册中心将服务列表返回所述服务器,所述客户端与所述注册中心返回信息的服务器建立连接,进行RPC服务调用;所述客户端的引用模块引入API,调用所述客户端的API接口并将调用的数据发送给所述第二协议模块;所述第二协议模块接收所述引用模块调用的数据,并进行调用的代理,所述第二协议模块将代理的服务数据发送给所述集群模块;所述集群模块根据负载均衡策略选取所述集群模块持有的可用的服务实例进行集群;所述集群模块保持所述客户端与服务器进行通信,所述集群模块将服务实例的数据发送给所述第二序列化模块,维护服务实例的连接;所述第二序列化模块根据所述客户端与所述服务器双方通信制定好的协议进行JAVA对象到JSON的序列化,所述第二序列化模块序列化完成后将序列化的服务数据发送给所述第二传输模块;所述第二传输模块进行I/O的操作向所述服务器的第一传输模块发送服务数据包;所述第一传输模块接收所述第二传输模块发送的服务数据并将接收的数据发送给所述第一序列化模块;所述第一序列化模块根据所述客户端与所述服务器双方通信制定好的协议进行JSON到JAVA对象的解序列化,所述第一序列化模块解序列化完成后将解序列化的服务数据发送给所述第一协议模块;所述第一协议模块接收所述第一序列化模块发送的序列化数据,并将服务变更数据同步到所述第一注册模块,所述第一协议模块将解序列化的服务数据发送给所述服务模块;然后,再由所述服务模块返回到所述客户端的引用模块;该可进行服务治理与语言调用的轻量级RPC系统能高度适配公司环境,可进行服务治理与跨语言调用,轻量部署和业务代码解耦、解决微服务难于管理和难于跨语言调用的问题。
同时,应当理解的是,以上仅为本发明的优选实施例,不能因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效实现方法,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。

Claims (9)

1.一种可进行服务治理与语言调用的轻量级RPC系统,其特征在于:包括注册中心、服务器及客户端,所述注册中心与所述服务器及客户端连接,所述服务器与所述客户端连接,所述服务器向注册中心注册声明所提供的服务,通过ServerBootstrap暴露策略向所述注册中心以服务规范的路径暴露自己,所述客户端进行初始化并向所述注册中心订阅指定服务,所述注册中心将服务列表返回所述服务器,所述客户端与所述注册中心返回信息的服务器建立连接,进行RPC服务调用;
所述服务器包括第一传输模块、第一序列化模块、第一协议模块及服务模块,所述客户端包括第二传输模块、第二序列化模块、集群模块、第二协议模块及引用模块;
所述引用模块引入API,调用所述客户端的API接口并将调用的数据发送给所述第二协议模块;所述第二协议模块接收所述引用模块调用的数据,并进行调用的代理,所述第二协议模块将代理的服务数据发送给所述集群模块;所述集群模块根据负载均衡策略选取所述集群模块持有的可用的服务实例进行集群;所述集群模块保持所述客户端与服务器进行通信,所述集群模块将服务实例的数据发送给所述第二序列化模块,维护服务实例的连接;所述第二序列化模块根据所述客户端与所述服务器双方通信制定好的协议进行JAVA对象到JSON的序列化,所述第二序列化模块序列化完成后将序列化的服务数据发送给所述第二传输模块;所述第二传输模块进行I/O的操作向所述服务器的第一传输模块发送服务数据包;所述第一传输模块接收所述第二传输模块发送的服务数据并将接收的数据发送给所述第一序列化模块;所述第一序列化模块根据所述客户端与所述服务器双方通信制定好的协议进行JSON到JAVA对象的解序列化,所述第一序列化模块解序列化完成后将解序列化的服务数据发送给所述第一协议模块;所述第一协议模块将解序列化的服务数据发送给所述服务模块;所述服务模块将服务实例的数据返回发送给所述第一协议模块;所述第一协议模块将服务数据发送给所述第一序列化模块;所述第一序列化模块根据所述客户端与所述服务器双方通信制定好的协议进行JAVA到JSON对象的序列化,所述第一序列化模块序列化完成后将序列化的服务数据发送给所述第一传输模块;所述第一传输模块进行O/I的操作向所述客户端的第二传输模块发送服务数据包;所述第二传输模块接收所述第一传输模块发送的服务数据并将接收的数据发送给所述第二序列化模块;所述第二序列化模块根据所述客户端与所述服务器双方通信制定好的协议进行JSON对象到JAVA的解序列化,所述第二序列化模块解序列化完成后将序列化的服务数据发送给所述集群模块;所述集群模块根据负载均衡策略选取所述集群模块持有的可用的服务实例进行集群并将集群完成的服务数据发送给所述第二协议模块;所述第二协议模块将集群的服务数据发送给所述引用模块;所述客户端的引用模块引入API,调用所述客户端的API接口。
2.根据权利要求1所述的可进行服务治理与语言调用的轻量级RPC系统,其特征在于:
所述服务器还包括第一注册模块,所述第一注册模块进行服务初始化,通过XML配置中的参数来初始化服务参数,通过所述服务参数来构建字段,向所述注册中心上报所述字段,当服务初始化完成后,所述第一注册模块通过ServerBootstrap暴露策略向注册中心以服务规范的路径暴露自己,通过所述上报的字段来描述本服务提供的服务和服务元数据,当所述第一注册模块将服务在注册中心完成注册后,注册中心推送本次事件给订阅了此服务的客户端,所述第一协议模块接收所述第一序列化模块发送的序列化数据,并将服务变更数据同步到所述第一注册模块,所述第一协议模块接收所述服务模块发送的服务数据,将变更的服务数据同步到所述第一注册模块;
其中,所述XML配置的参数包括:日志、服务变量、服务版本。
3.根据权利要求1所述的可进行服务治理与语言调用的轻量级RPC系统,其特征在于:
所述客户端还包括第二注册模块,所述第二注册模块根据XML中配置的服务名在注册中心订阅所述服务;所述客户端接收所述注册中心推送过来的事件,从所述事件中获取所述服务上报的字段来取得这个服务的元数据,所述第二协议模块接收所述集群模块发送的序列化服务数据,并将服务变更数据同步到所述第二注册模块。
4.根据权利要求1所述的可进行服务治理与语言调用的轻量级RPC系统,其特征在于:所述服务器还包括第一注册模块,所述客户端还包括第二注册模块,所述第一注册模块及所述第二注册模块用于和注册中心进行交互业务,所述服务器会在系统初始化时通过所述第一注册模块注册服务,所述客户端在客户端初始化时通过所述第二注册模块订阅具体提供服务的服务列表,当服务列表发生变更时由所述第二注册模块通知所述客户端。
5.根据权利要求4所述的可进行服务治理与语言调用的轻量级RPC系统,其特征在于:所述交互业务包括注册服务、订阅服务、服务变更通知及服务心跳发送。
6.根据权利要求1所述的可进行服务治理与语言调用的轻量级RPC系统,其特征在于:所述第一协议模块及所述第二协议模块用于进行RPC服务的描述、RPC服务的配置管理、添加不同功能的过滤器来完成统计及并发限制。
7.根据权利要求1所述的可进行服务治理与语言调用的轻量级RPC系统,其特征在于:所述第一序列化模块及第二序列化模块用于将所述客户端及服务器请求中的参数、结果进行序列化和解序列化。
8.根据权利要求1所述的可进行服务治理与语言调用的轻量级RPC系统,其特征在于:所述序列化和解序列化为进行JSON对象与JAVA中字节流的互相转换,JAVA对象和JSON的互相转换。
9.根据权利要求1所述的可进行服务治理与语言调用的轻量级RPC系统,其特征在于:所述集群模块用于一组可用的服务模块在逻辑上的封装,包含若干可以提供RPC服务的服务子模块,根据不同的高可用与负载均衡策略选择一个可用的服务子模块进行路由,并发起远程调用。
CN201611003898.3A 2016-11-15 2016-11-15 一种可进行服务治理与语言调用的轻量级rpc系统 Active CN106411933B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201611003898.3A CN106411933B (zh) 2016-11-15 2016-11-15 一种可进行服务治理与语言调用的轻量级rpc系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201611003898.3A CN106411933B (zh) 2016-11-15 2016-11-15 一种可进行服务治理与语言调用的轻量级rpc系统

Publications (2)

Publication Number Publication Date
CN106411933A CN106411933A (zh) 2017-02-15
CN106411933B true CN106411933B (zh) 2019-09-10

Family

ID=59230568

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201611003898.3A Active CN106411933B (zh) 2016-11-15 2016-11-15 一种可进行服务治理与语言调用的轻量级rpc系统

Country Status (1)

Country Link
CN (1) CN106411933B (zh)

Families Citing this family (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107395766B (zh) * 2017-08-31 2020-09-22 千寻位置网络(浙江)有限公司 基于HazelCast的去中心化通信系统及实现方法
CN108255615B (zh) * 2017-11-30 2022-03-01 平安科技(深圳)有限公司 跨语言调用方法、服务器及存储介质
CN108509282A (zh) * 2018-02-08 2018-09-07 厦门快商通信息技术有限公司 基于golang反射技术的rpc跨语言调用服务治理方法
CN110557357B (zh) * 2018-05-31 2022-07-29 华为技术有限公司 一种远程过程调用协议自适应方法、相关装置及服务器
CN110636093B (zh) * 2018-06-25 2022-04-26 中兴通讯股份有限公司 微服务注册和发现方法、设备、存储介质以及微服务系统
CN109298954B (zh) * 2018-09-14 2019-10-25 北京数聚鑫云信息技术有限公司 一种智能调用Dubbo远程服务的方法及装置
CN111147534B (zh) * 2018-11-05 2022-12-16 中兴通讯股份有限公司 一种微服务架构下的通信方法及系统
CN109246251B (zh) * 2018-11-13 2021-01-22 杭州数梦工场科技有限公司 一种微服务调用方法、装置、系统、设备及可读存储介质
CN109857572B (zh) * 2018-12-29 2022-03-01 阿波罗智能技术(北京)有限公司 实现远程调用的方法、装置、设备及计算机可读存储介质
CN109862095A (zh) * 2019-01-30 2019-06-07 新华三大数据技术有限公司 基于Web服务的数据处理方法及装置
CN109922148B (zh) * 2019-03-04 2022-02-25 网易(杭州)网络有限公司 跨平台服务方法、装置和系统
CN111726425B (zh) * 2019-03-18 2022-05-03 互联网域名系统北京市工程研究中心有限公司 一种域名创建系统
CN110032458B (zh) * 2019-04-12 2020-07-10 重庆天蓬网络有限公司 一种php跨语言统一调用系统
CN112035276A (zh) * 2020-08-06 2020-12-04 上海视云网络科技有限公司 一种基于java的跨平台可扩展的RPC框架设计方法
CN112114979B (zh) * 2020-08-31 2024-03-19 厦门安胜网络科技有限公司 远程过程调用方法和装置
CN112199219A (zh) * 2020-11-17 2021-01-08 南开大学 一种跨语言作业远程调用方法
CN113342349A (zh) * 2021-05-28 2021-09-03 中国工商银行股份有限公司 一种无存根的微服务调用方法及装置

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102262560B (zh) * 2010-05-27 2016-12-28 阿里巴巴集团控股有限公司 一种远程服务的调用方法、装置及系统
CN104426871A (zh) * 2013-08-29 2015-03-18 中兴通讯股份有限公司 一种远程调用的方法和装置
CN105450757A (zh) * 2015-12-02 2016-03-30 联动优势电子商务有限公司 一种服务管理方法及系统
CN105721473B (zh) * 2016-02-24 2019-07-09 锐达互动科技股份有限公司 一种web端远程调用优化的方法及系统

Also Published As

Publication number Publication date
CN106411933A (zh) 2017-02-15

Similar Documents

Publication Publication Date Title
CN106411933B (zh) 一种可进行服务治理与语言调用的轻量级rpc系统
CN106506509B (zh) 可进行服务治理与语言调用的轻量级rpc框架实现方法
Souto et al. A message-oriented middleware for sensor networks
CN106850829B (zh) 一种基于非阻塞通信的微服务系统设计方法
CN109343829A (zh) 一种java语言分布式微服务治理框架
JP5898980B2 (ja) ネットワーク環境において非持続性のメッセージの複数のキューを管理する方法、システム及び記憶媒体
CN103442049B (zh) 一种面向构件的混合型云操作系统体系结构及其通信方法
CN110955534B (zh) 一种基于中间件的业务流程自动化系统及方法
CN108984316A (zh) 一种用于分布式数据处理的方法、装置、电子设备及计算机存储介质
JP2020533892A (ja) モノのインターネットのリソースサブスクリプション方法、デバイス、およびシステム
Hoang et al. On software-defined networking and the design of SDN controllers
CN108600360A (zh) 一种基于zookeeper的REST服务系统和方法
CN109040171A (zh) 一种事件响应系统、方法、设备以及存储介质
CN105959349B (zh) 一种分布式服务端运行系统及方法
CN111339145A (zh) 流程整合方法和平台、计算机可读存储介质
CN112256246A (zh) 一种用于电力系统中支持跨语言调用的微服务集成架构
Corici et al. An organic 6g core network architecture
CN114840329A (zh) 一种基于区块链的云原生混合集成方法
CN110012008A (zh) 基于http协议的异构数据源分布式协调一致性方法及系统
CN104270453B (zh) 一种多级服务器间数据通信方法及服务器
US20210258872A1 (en) A method of and a device for operating network gateway services in a service based telecommunications system
CN112256386A (zh) 一种仿真运行支撑系统
CN107451211A (zh) 一种基于RabbitMQ和MongoDB的下载系统
US20040158839A1 (en) Method and system for processing event of softswitch open type system
CN114501391B (zh) 微服务业务处理系统及方法

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant
CP03 Change of name, title or address

Address after: 518000 R & D room 3501, block a, building 7, Vanke Cloud City Phase I, Xingke 1st Street, Xili community, Xili street, Nanshan District, Shenzhen City, Guangdong Province

Patentee after: Tubatu Group Co.,Ltd.

Address before: 1001-a, 10th floor, bike technology building, No.9, Keke Road, high tech Zone, Nanshan District, Shenzhen, Guangdong 518000

Patentee before: SHENZHEN BINCENT TECHNOLOGY Co.,Ltd.

CP03 Change of name, title or address