CN109597693A - 分布式软件系统中grpc通信协议的应用方法 - Google Patents
分布式软件系统中grpc通信协议的应用方法 Download PDFInfo
- 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
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/547—Remote procedure calls [RPC]; Web 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/133—Protocols for remote procedure calls [RPC]
Abstract
本发明提供了分布式软件系统中GRPC通信协议的应用方法,包括对每个微服务创建部署,每个部署包含两个容器,每个部署的GRPC服务端软件端实现以及其对应的反向代理,并且以此为单位进行伸缩,同一容器单元内容器共享公网并存储资源,同一容器单元内容器使用同一个IP地址访问;创建GRPC服务端软件端并且代理部署的Http端口以及RPC端口,对容器单元同时暴露Http和RPC服务。本发明可提高调用性能,能在分布式系统中实现基于GRPC通信协议的微服务的自动化注册、发现,实现基于GRPC通信协议的微服务之间通信。
Description
技术领域
本发明涉及通信领域,尤其涉及分布式软件系统中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数据存储。
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)
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)
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跨语言调用服务治理方法 |
-
2018
- 2018-09-25 CN CN201811119796.7A patent/CN109597693A/zh active Pending
Patent Citations (3)
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)
Title |
---|
郑云龙: ""技术漫谈 | 使用gRPC-Gateway快速构建微服务"", 《HTTP://DOCKONE.IO/ARTICLE/2836》 * |
Cited By (8)
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 |