gRPC是现代分布式系统中一项重要技术,尤其在Java环境中表现出色。它提供了高效网络通信机制,使得微服务架构中服务间调用变得更加便捷和高效。在这篇博文中,我将详细记录我们在项目中使用gRPC过程,包括从初始技术痛点,到演进、架构设计、性能优化、故障回顾,最后总结出可复用方法论。 ## 背景定位 随着业务快速增长,我们最初架构设计逐渐显露出一些技术痛点。首先,由于使用HTTP/
原创 5月前
34阅读
  Grpc是googe开发,是一款语言中立、平台中立、开源远程过程调用(RPC)系统。新公司项目服务之间调用使用Grpc来实现服务间调用,这边一开始接到工作内容是基于Nginx实现Grpc服务端负载均衡。Nginx1.13及以上版本是支持grpc反向代理和负载均衡。但是公司nginx服务器版本是1.10,所以没办法直接使用grpc代理。只能使用更底层tcp层负载
gRPC 一开始由 google 开发,是一款语言中立、平台中立、开源远程过程调用(RPC)系统。 官方文档地址 https://grpc.io/ 中文文档地址 gRPC 是什么?(转自官方文档) 在 gRPC 里客户端应用可以像调用本地对象一样直接调用另一台不同机器上服务端应用方法,使得您能够更容易地创建分布式应用和服务。与许多 RPC 系统类似,gRPC 也是基于以下理念:定义一个服务,
转载 2023-11-14 14:25:50
126阅读
1 前言之前在《Protobuf入门与使用示例,高性能序列化框架》这篇文章中,我们介绍了Protobuf概念,以前如何在Java中通过Protobuf序列化和反序列化对象。Protobuf一个重要应用场景就是gPRC,它是一个开源、高性能远程过程调用(RPC,Remote Procedure Call)框架。gPRC支持多种语言,如Java、C++、Python等。本文通过一步步,从pr
.protorpc methodRequestStream(stream HelloRequest) returns (HelloReply){}服务端@Component public class Greeter extends GreeterGrpc.GreeterImplBase implements InitializingBean { /** * StreamObserver
转载 2023-06-07 17:18:54
190阅读
一、环境准备安装protocbuf下载地址选择对应版本下载安装,这里我选择3.17.2选择对应压缩包解压 配置环境变量 变量名 :PROTOCBUF_HOME 变量值:D:\protoc-3.19.1-win64找到系统变量中path变量,选中后点击编辑,新增:%PROTOBUF_HOME%\bin安装protocbuf插件从idea官网下载插件二、gRPC项目构建项目结构创建maven父工
转载 2023-07-12 01:32:55
151阅读
GRPC基本使用GRPC介绍 GRPC使用protocol buffer进行接口定义和底层信息交换。客户端可以直接调用服务端方法,就像调用本地方法一样。在服务端实现这个接口并且运行一个grpc服务来处理客户端IO调用。客户端有一个存根(stub),它提供与服务端相同方法。官网grpc介绍:https://grpc.io/docs/what-is-grpc/introduction/安装先决条
转载 2023-10-02 22:29:16
92阅读
gRPC介绍gRPC 基于 /2 标准设计,带来诸如双向流、流控、头部压缩、单 TCP 连接上多复用请求等特性。这些特性使得其在移动设备上表现更好,更省电和节省空间占用。gRPC有四中服务方法:Unary RPCs,一元RPC。客户端发送一个请求到服务端,服务端响应一个请求。rpc getUser (User) returns (User) {}Server streaming RPCs
转载 2022-06-20 17:20:00
594阅读
## Java gRPC使用指南 ### 1. 概述 在本文中,我将向你介绍如何使用Java gRPC进行开发。gRPC是一种高性能、开源远程过程调用(RPC)框架,它基于GoogleProtocol Buffers(protobuf)和HTTP/2协议。使用gRPC,你可以定义服务和消息,然后自动生成相应Java代码来进行通信。下面是整个过程流程图: ```mermaid pie
原创 2023-11-18 14:25:25
45阅读
本文通过一个简单示例,了解如何在Go中使用gRPC。1、前期准备前提运行 $ go version查看go语言版本,gRPC要求go 语言最低版本为1.5安装gRPC使用命令行安装 * 使用以下命令安装gRPC: $ go get google.golang.org/grpc安装proto3 1)安装用于生成gRPC服务代码protoc编译器。最简单方法是从这里下载protoc-<
转载 2024-03-20 07:04:00
22阅读
# gRPC使用Java gRPC是一种高性能、开源远程过程调用(RPC)框架,由Google开发。它使用Protocol Buffers(简称ProtoBuf)作为接口定义语言(IDL),支持多种编程语言。本文将介绍如何使用Java编写gRPC应用程序。 ## 简介 gRPC基于HTTP/2协议,使用ProtoBuf进行序列化和反序列化,提供了高效、强大跨语言远程调用能力。它主要特点
原创 2023-12-17 08:36:34
49阅读
# Java使用gRPC ## 简介 gRPC是Google开源一种高性能、通用开源RPC框架。它基于Protocol Buffers(简称protobuf)序列化协议,并支持多种编程语言,如Java、C++、Python等。gRPC提供了强大功能和灵活接口,可以用于构建分布式系统、微服务架构等。 本文将介绍如何在Java使用gRPC框架来构建一个简单RPC服务和客户端,并提供代
原创 2024-01-03 03:56:26
57阅读
gRPC SkyLBgRPC 作为一款高性能、通用 RPC 框架,相比传统RPC框架有着自己天然优势:protobuf二进制消息,性能好/效率高(空间和时间效率都很不错);proto文件生成目标代码,简单易用;序列化反序列化直接对应程序中数据类,不需要解析后在进行映射(XML,JSON都是这种方式);支持向前兼容(新加字段采用默认值)和向后兼容(忽略新加字段),简化升级;支持多种语言(可以
本文使用gRPC框架Java语言版本构建一个helloworld项目。涉及到内容有: ① 通过.proto文件生成Java代码方法。 ② 以及服务端和客户端代码使用示例。 本文先不讲解代码细节,只用来帮助自己构造一个Java版本gRPC项目。后续系列文章再说,最后把代码放到github上。一、环境准备1.1 安装protocbuf首先需要安装protocbuf 3.x版本。本文中,我以3.1
转载 2023-07-17 22:19:40
182阅读
@[toc]目录一、环境准备二、gRPC项目构建创建proto文件生成Java类创建模块local-server(gRPC服务端)创建模块local-client(gRPC客户端)调用效果一、环境准备 安装protocbuf 下载地址https://github.com/protocolbuffers/protobuf/releases选择对应版本下载安装,这里我选择21.1 选择对应压缩包解
前言HSF是一个分布式远程服务调用框架,其实我更喜欢把分布式几个字去掉,因为HSF本身并不是一个单独服务(指一个进程),他是附属在你应用里一个组件,一个RPC组件(远程过程调用——Remote Procedure Call,是一种通过网络从远程计算机程序上请求服务,而不需要了解底层网络技术协议。在OSI网络通信模型中,RPC跨越了传输层和应用层。RPC使得开发分布式应用更加容易),当然H
grpc客户端可以像调用本地对象一样,直接调用另一台机器上服务端应用一、什么是gRPC在服务端实现一个接口,定义一个服务,指定能被远程调用方法,并运行一个gRPC服务来处理客户端调用用proto files创建gRPC服务,用protocol buffers消息类型定义方法参数和返回类型。1. 支持语言:Go、python、ruby、C++、Java、node.js、C#、PHP、And
转载 2023-09-18 09:22:22
64阅读
依赖文件:protoc-v3-20.1.exe grpc_cpp_plugin.exe // 生成cpp中间文件protoc-gen-grpc-web.exe // 生成js中间文件grpcwebproxy-v0.13.0-win64 1.4.0.exe // 负责代理端口映射新建测试工程文件夹grpcweb-cpp并下载grpc-web工程 ( git clone https://gitcod
转载 2023-07-12 01:30:47
127阅读
一,grpc简介: GRPC是google开源一个高性能、跨语言RPC框架,基于HTTP2协议,基于protobuf 3.x,基于Netty 4.x +。GRPC与thrift、avro-rpc等其实在总体原理上并没有太大区别,简而言之GRPC并没有太多突破性创新。    对于开发者而言:    1)需要使用protobuf定义接口,即.proto文
前言经常看到说gRPC怎么好文章,实际工作中也没有体验过,这次看了一下它HelloWorld程序,记录一下这个过程。 RPC是Remote Produce Call 缩写, 就是远程调用,调用远程代码像本地一样。Java里面比较有名RPC框架Dubbo,但它只支持JavagRPC 是google开源RPC框架,使用HTTP2, 支持很多种语言:Java,GO,.Net Core,C
转载 2024-01-23 23:15:07
53阅读
  • 1
  • 2
  • 3
  • 4
  • 5