CN109597693A - 分布式软件系统中grpc通信协议的应用方法 - Google Patents

分布式软件系统中grpc通信协议的应用方法 Download PDF

Info

Publication number
CN109597693A
CN109597693A CN201811119796.7A CN201811119796A CN109597693A CN 109597693 A CN109597693 A CN 109597693A CN 201811119796 A CN201811119796 A CN 201811119796A CN 109597693 A CN109597693 A CN 109597693A
Authority
CN
China
Prior art keywords
service
grpc
communication protocol
application method
rpc
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
CN201811119796.7A
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.)
Nanjing University of Science and Technology
State Grid Information and Telecommunication Co Ltd
Xian Jiaotong University
Information and Telecommunication Branch of State Grid Zhejiang Electric Power Co Ltd
Information and Telecommunication Branch of State Grid Shandong Electric Power Co Ltd
Original Assignee
Nanjing University of Science and Technology
State Grid Information and Telecommunication Co Ltd
Xian Jiaotong University
Information and Telecommunication Branch of State Grid Zhejiang Electric Power Co Ltd
Information and Telecommunication Branch of State Grid Shandong Electric Power 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 Nanjing University of Science and Technology, State Grid Information and Telecommunication Co Ltd, Xian Jiaotong University, Information and Telecommunication Branch of State Grid Zhejiang Electric Power Co Ltd, Information and Telecommunication Branch of State Grid Shandong Electric Power Co Ltd filed Critical Nanjing University of Science and Technology
Priority to CN201811119796.7A priority Critical patent/CN109597693A/zh
Publication of CN109597693A publication Critical patent/CN109597693A/zh
Pending legal-status Critical Current

Links

Classifications

    • 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
    • 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]

Abstract

本发明提供了分布式软件系统中GRPC通信协议的应用方法,包括对每个微服务创建部署,每个部署包含两个容器,每个部署的GRPC服务端软件端实现以及其对应的反向代理,并且以此为单位进行伸缩,同一容器单元内容器共享公网并存储资源,同一容器单元内容器使用同一个IP地址访问;创建GRPC服务端软件端并且代理部署的Http端口以及RPC端口,对容器单元同时暴露Http和RPC服务。本发明可提高调用性能,能在分布式系统中实现基于GRPC通信协议的微服务的自动化注册、发现,实现基于GRPC通信协议的微服务之间通信。

Description

分布式软件系统中GRPC通信协议的应用方法
技术领域
本发明涉及通信领域,尤其涉及分布式软件系统中GRPC通信协议的应用方法。
背景技术
目前分布式软件系统架构下的微服务之间的调用采用RESTful通信协议(RESTful是一种软件架构风格、设计风格,而不是标准,提供了一组设计原则和约束条件。它主要用于客户端和服务器交互类的软件。基于这个风格设计的软件可以更简洁,更有层次,更易于实现缓存等机制。)RESTful通信协议对于大多数微服务应用场景是满足业务需求的,而对于微服务之间接口数据调用频繁数据量又很大的场景,使用RESTful通信协议在性能方面就会出现瓶颈。
发明内容
本发明所要解决的技术问题是提供分布式软件系统中GRPC通信协议的应用方法,能在分布式系统中实现基于GRPC通信协议的微服务的自动化注册、发现,实现基于GRPC通信协议的微服务之间通信。
为此,本发明采用以下技术方案:
分布式软件系统中GRPC通信协议的的应用方法,其特征在于,包括对每个微服务创建部署,每个部署包含两个容器,每个部署的GRPC服务端软件端实现以及其对应的反向代理,并且以此为单位进行伸缩,同一容器单元内容器共享公网并存储资源,同一容器单元内容器使用同一个IP地址访问;
创建GRPC服务端软件端并且代理部署的Http端口以及RPC端口,对容器单元同时暴露Http和RPC服务。RPC服务(远程过程调用)是一种协议,程序可使用这种协议向网络中的另一台计算机上的程序请求服务。由于使用RPC服务的程序不必了解支持通信的网络协议的情况,因此RPC服务提高了程序的互操作性。在RPC服务中,发出请求的程序是客户程序,而提供服务的程序是服务器。
对于无状态服务,系统内部服务之间以服务端软件端作为DNS(域名系统),实现RPC服务端口的远程调用;对于有状态服务,需要添加额外的服务发现和注册中心实现点对点调用;
Http端口连接API网关,API网关与外部客户端连接。
进一步的,所述额外的服务包括Consul或Eureka。
其中,consul是google开源的一个使用go语言开发的服务发现、配置管理中心服务。内置了服务注册与发现框架、分布一致性协议实现、健康检查、多数据中心方案,不再需要依赖其他工具。服务部署简单,只有一个可运行的二进制的包。每个节点都需要运行代理,他有两种运行模式。每个数据中心官方建议需要3或5个服务节点以保证数据安全。
Eureka是Spring Cloud Netflix微服务套件中的一部分。
Eureka包含了服务器端和客户端组件。服务器端,也被称作是服务注册中心,用于提供服务的注册与发现。Eureka支持高可用的配置,当集群中有分片出现故障时,Eureka就会转入自动保护模式,它允许分片故障期间继续提供服务的发现和注册,当故障分片恢复正常时,集群中其他分片会把他们的状态再次同步回来。
客户端组件包含服务消费者与服务生产者。在应用程序运行时,Eureka客户端向注册中心注册自身提供的服务并周期性的发送心跳来更新它的服务租约。同时也可以从服务端查询当前注册的服务信息并把他们缓存到本地并周期性的刷新服务状态。
API网关与外部客户端连接用于提供Restful API。
进一步的,所述RPC服务基于HTTP/2协议。
进一步的,所述RPC服务基于ProtoBuf数据存储。Protocol数据存储是一种轻便高效的结构化数据存储格式,可以用于结构化数据串行化,或者说序列化。它很适合做数据存储或RPC数据交换格式。可用于通讯协议、数据存储等领域的语言无关、平台无关、可扩展的序列化结构数据格式。目前提供了C++、Java、 Python三种语言的API。
通过以上技术方案,本发明的有益效果为:本发明采用GRPC通信协议可以实现在微服务框架当中,每一个服务默认基于HTTP协议对外提供Restful API, 从而对外对内的提供服务能力。目前大型的分布式软件系统各组件调用大部分采用REST API方式,无法解决数据调用频繁数据量又很大的场景,通过本发明可提高调用性能,解决上述问题。而既需要保持Restful的简单性,又想充分提升应用内部的性能以及可靠性的时候,使用GRPC通信协议可以实现软件架构的小步优化以及应用性能的提升。
具体实施方式
以下结合实施例对本发明作进一步详细描述。
分布式软件系统中GRPC通信协议的的应用方法,其特征在于,包括对每个微服务创建部署,每个部署包含两个容器,每个部署的GRPC服务端软件端实现以及其对应的反向代理,并且以此为单位进行伸缩,同一容器单元内容器共享公网并存储资源,同一容器单元内容器使用同一个IP地址访问。即同一容器单元内容器共享公网,存储资源,直接使用127.0.0.1访问即可。
创建GRPC服务端软件端并且代理部署的Http端口以及RPC端口,对容器单元同时暴露Http和RPC服务;
对于无状态服务,系统内部服务之间以服务端软件端作为DNS,实现RPC服务端口的远程调用;对于有状态服务,需要添加额外的服务发现和注册中心实现点对点调用;
Http端口连接API网关,API网关与外部客户端连接。
所述额外的服务包括Consul或Eureka。
API网关与外部客户端连接用于提供Restful API。
所述RPC服务基于HTTP/2协议。
所述RPC服务基于ProtoBuf数据存储。
以上所述仅为本发明的优选实施方式,应当指出,对于本领域普通技术人员而言,在不脱离本发明的原理前提下,可以对本发明进行多种改型或改进,这些均被视为本发明的保护范围之内。

Claims (6)

1.分布式软件系统中GRPC通信协议的应用方法,其特征在于,包括对每个微服务创建部署,每个部署包含两个容器,每个部署的GRPC服务端软件端实现以及其对应的反向代理,并且以此为单位进行伸缩,同一容器单元内容器共享公网并存储资源,同一容器单元内容器使用同一个IP地址访问;
创建GRPC服务端软件端并且代理部署的Http端口以及RPC端口,对容器单元同时暴露Http和RPC服务;
对于无状态服务,系统内部服务之间以服务端软件端作为DNS,实现RPC服务端口的远程调用;对于有状态服务,需要添加额外的服务发现和注册中心实现点对点调用;
Http端口连接API网关,API网关与外部客户端连接。
2.如权利要求1所述的分布式软件系统中GRPC通信协议的应用方法,其特征在于,所述额外的服务包括Consul。
3.如权利要求1所述的分布式软件系统中GRPC通信协议的的应用方法,其特征在于,所述额外的服务包括Eureka。
4.如权利要求1所述的分布式软件系统中GRPC通信协议的应用方法,其特征在于,API网关与外部客户端连接用于提供Restful API。
5.如权利要求1所述的分布式软件系统中GRPC通信协议的应用方法,其特征在于,所述RPC服务基于HTTP/2协议。
6.如权利要求1所述的分布式软件系统中GRPC通信协议的应用方法,其特征在于,所述RPC服务基于ProtoBuf数据存储。
CN201811119796.7A 2018-09-25 2018-09-25 分布式软件系统中grpc通信协议的应用方法 Pending CN109597693A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201811119796.7A CN109597693A (zh) 2018-09-25 2018-09-25 分布式软件系统中grpc通信协议的应用方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201811119796.7A CN109597693A (zh) 2018-09-25 2018-09-25 分布式软件系统中grpc通信协议的应用方法

Publications (1)

Publication Number Publication Date
CN109597693A true CN109597693A (zh) 2019-04-09

Family

ID=65957239

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201811119796.7A Pending CN109597693A (zh) 2018-09-25 2018-09-25 分布式软件系统中grpc通信协议的应用方法

Country Status (1)

Country Link
CN (1) CN109597693A (zh)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110149376A (zh) * 2019-04-30 2019-08-20 广州科创空间信息科技有限公司 提高hyperledger composer链码部署效率的方法
CN110191164A (zh) * 2019-05-20 2019-08-30 中国工商银行股份有限公司 分布式服务接入系统及方法
CN110430275A (zh) * 2019-08-09 2019-11-08 中国工商银行股份有限公司 数据处理方法、装置、系统、计算设备以及介质
CN112468314A (zh) * 2020-10-29 2021-03-09 贵州新致普惠信息技术有限公司 基于服务网格实现的日志服务自动化部署的方法
CN113515319A (zh) * 2021-04-20 2021-10-19 北京科东电力控制系统有限责任公司 一种客户端通过grpc动态调用服务端的方法

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107102847A (zh) * 2016-02-23 2017-08-29 中国水电工程顾问集团有限公司 基于微服务的软件开发方法、装置及系统
CN108337236A (zh) * 2017-12-28 2018-07-27 杭州马猴烧韭科技有限公司 一种基于Protobuf和HTTP/1.1的gRPC调用方法及装置
CN108509282A (zh) * 2018-02-08 2018-09-07 厦门快商通信息技术有限公司 基于golang反射技术的rpc跨语言调用服务治理方法

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107102847A (zh) * 2016-02-23 2017-08-29 中国水电工程顾问集团有限公司 基于微服务的软件开发方法、装置及系统
CN108337236A (zh) * 2017-12-28 2018-07-27 杭州马猴烧韭科技有限公司 一种基于Protobuf和HTTP/1.1的gRPC调用方法及装置
CN108509282A (zh) * 2018-02-08 2018-09-07 厦门快商通信息技术有限公司 基于golang反射技术的rpc跨语言调用服务治理方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
郑云龙: ""技术漫谈 | 使用gRPC-Gateway快速构建微服务"", 《HTTP://DOCKONE.IO/ARTICLE/2836》 *

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110149376A (zh) * 2019-04-30 2019-08-20 广州科创空间信息科技有限公司 提高hyperledger composer链码部署效率的方法
CN110149376B (zh) * 2019-04-30 2021-01-05 广州科创空间信息科技有限公司 提高hyperledger composer链码部署效率的方法
CN110191164A (zh) * 2019-05-20 2019-08-30 中国工商银行股份有限公司 分布式服务接入系统及方法
CN110430275A (zh) * 2019-08-09 2019-11-08 中国工商银行股份有限公司 数据处理方法、装置、系统、计算设备以及介质
CN110430275B (zh) * 2019-08-09 2022-07-08 中国工商银行股份有限公司 数据处理方法、装置、系统、计算设备以及介质
CN112468314A (zh) * 2020-10-29 2021-03-09 贵州新致普惠信息技术有限公司 基于服务网格实现的日志服务自动化部署的方法
CN113515319A (zh) * 2021-04-20 2021-10-19 北京科东电力控制系统有限责任公司 一种客户端通过grpc动态调用服务端的方法
CN113515319B (zh) * 2021-04-20 2023-08-08 北京科东电力控制系统有限责任公司 一种客户端通过grpc动态调用服务端的方法

Similar Documents

Publication Publication Date Title
CN109597693A (zh) 分布式软件系统中grpc通信协议的应用方法
CN110191164B (zh) 分布式服务接入系统及方法
WO2020147466A1 (zh) 调用服务器的方法和代理服务器
CN106663033B (zh) 在事务中间件机器环境支持绕域和代理模型并更新服务信息以跨域消息传送的系统和方法
US5594921A (en) Authentication of users with dynamically configurable protocol stack
EP0726004B1 (en) Object-oriented rule-based protocol system
CN111290865A (zh) 一种服务调用方法、装置、电子设备和存储介质
AU2009296436B2 (en) Trickle sync protocol
CN106453288A (zh) 一种支持异步模式的分布式微服务框架系统及其实现方法
CN109451014B (zh) 一种WebService代理系统及其透明代理方法
US20070124475A1 (en) Creating proxies from service description metadata at runtime
CN113596110A (zh) 一种面向异构云的云原生微服务平台
ES2477283T3 (es) Método, aparato y sistema para procesar un servicio compuesto y sustituir un servicio y solicitar un servicio concreto
US8230448B2 (en) Methods, systems and computer program products for web service interaction with a resource management system
CN102523308B (zh) 一种应用开发方法和运行该方法所开发应用的平台系统
CN108093086A (zh) 一种服务网关的数据传输方法及系统
US7805485B2 (en) Web services interface extension channel
CN113973129A (zh) 一种支持多种注册中心微服务的网关
Alliance Service-based architecture in 5G
CN112637126B (zh) 一种服务注册方法及Pod
CN115242882B (zh) 一种基于传输层路由访问k8s容器环境的方法及装置
Tran et al. A notification management architecture for service co-evolution in the internet of things
CN116016667A (zh) 一种云原生平台多种类型注册中心统一治理方法和系统
US20210409931A1 (en) Serverless core network architecture
CN109922139A (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
RJ01 Rejection of invention patent application after publication

Application publication date: 20190409

RJ01 Rejection of invention patent application after publication