gRPC 入门必备
RPC 的定义这里就不再说,看文章的同学都是成熟的开发。gRPC 是 Google 开源的高性能跨语言的 RPC 方案,该框架的作者 Louis Ryan 阐述了设计这款框架的动机,有兴趣的同学可以看看: gRPC的动机和设计原则 。另一个值得一提的问题是,众所周知 RPC 框架基本都是直接基于 TCP 协议自研数据结构和编解码方式
安装Golang在官网上直接下载安装包就可以了。下载pkg格式的最新安装包 ,直接双击运行,一路按照提示操作就可以完成安装。或者使用brew进行安装 brew install go完成安装之后,打开终端,输入 go version ,检查golang sdk是否安装成功。go versiongo version go1.3.3 darwin/amd64环境变量配置GO
这篇文章讲述grpc核心代码的初始化流程。先看一个类图 任何依赖grpc核心lib初始化的代码,都需要在.cc文件中定义类型为GrpcLibraryInitializer的静态变量g_gli_initializer。这个对象的作用通过类图可以看出,会以单例模式初始化g_glip,g_core_codegen_interface这2个对象,这2个对象分别负责grpc核心lib(GrpcLi
简介什么是grpcgrpc是一个由google推出的、高性能、开源、通用的rpc框架。它是基于HTTP2协议标准设计开发,默认采用Protocol Buffers数据序列化协议,支持多种开发语言。什么是protobuf buffersProtoBuf buffer 是一种数据表达方式,以.proto结尾的数据文件,可以类比json、xml等。针对ProtoBuf buffer 数据源,可以利用pr
转载
2024-10-25 14:38:28
28阅读
一、安装 Protocol Buffers 1、打开下载地址:https://github.com/protocolbuffers/protobuf/releases 找到对应的版本和对应的安装程序 2、下载完成解压 放到电脑磁盘,然后添加环境变量 检查配置是否成功:win+R cmd 回车输入:protoc 二、安装grpc核心库 1、下载地址:go get google.golang.org/
转载
2024-02-24 23:26:26
140阅读
文章目录一、简介二、特性1、基于HTTP/22、IDL使用ProtoBuf3、多语言支持4、gRPC优缺点二、Protocol Buffers1、如何使用它三、案例(一元rpc)1、用Java写客户端,Go写服务端2、用Go写客户端,Java写服务端四、protobuf文件语法1、import2、message3、enum4、service五、讨论1、和其他RPC框架相比,gRPC的优势?2、还
转载
2023-07-12 01:11:02
209阅读
文章目录前言一、什么是负载均衡,负载均衡的策略有哪些?0.负载均衡之前先设置一下动态端口python篇golang篇1.集中式load balance2.进程内load balance3.独立进程load balance二、常用负载均衡策略1.轮询(Round Robin)法2.随机法3.源地址哈希法4.加权轮询(Weight Round Robin)法5.加权随机(Weight Random)
转载
2024-05-16 07:01:29
160阅读
gRPC入门gRPC是Google公司基于Protobuf开发的跨语言的开源RPC框架。gRPC基于HTTP/2协议设计,可以基于一个HTTP/2链接提供多个服务,对于移动设备更加友好。本节将讲述gRPC的简单用法。1 gRPC技术栈Go语言的gRPC技术栈图所示:最底层为TCP或Unix Socket协议,在此之上是HTTP/2协议的实现,然后在HTTP/2协议之上又构建了针对Go语言的gRPC
转载
2024-03-01 22:24:21
145阅读
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录前言一、Golang interface 是什么?二、为什么有 interface?1.编写泛型算法2.隐藏具体实现3.提供拦截点(providing interception points)4.多态(polymorphism)三、非入侵式四、类型断言总结参考 前言interface 是GO语言的基础特性之一。可以理解为一种
转载
2024-04-29 09:40:53
34阅读
grpc使用protobuf进行序列化、反序列化,通常用protoc作为编译工具,对于go使用grpc作为rpc的框架,由于protoc工具未实现go-generate,我们需要使用protoc-gen-go插件帮我们生成go文件。本文的分享分为以下方面:准备工作protoc工具的相关命令proto文件的定义go-grpc的实践1.准备工作用go实现grpc的编码,首先下载protoc和proto
转载
2024-04-02 10:01:10
252阅读
首先是剧透。这篇文章所讲的东西,其实就是golang和erlang里的并行精髓。文中的问题在golang里可以这样解决:ch := make(chan int);
go fun(ch chan int) {
DoSomething();
ch <- result;
}(ch);
OtherWork();
MoreOtherWork();
result := <-ch;
转载
2024-06-28 11:33:28
130阅读
Remote Procedure Call (RPC) 是一种使用TCP协议从另一个系统调用应用程序功能执行的方法。Go有原生支持RPC服务器实现,本文通过简单实例介绍RPC的实现过程。gRPCgRPC远程过程调用框架是基于动作的模式,类似远程调用微服务。这使得gRPC成为一种围绕Protobufs构建的进程间通信(IPC)协议,用于处理客户端和服务器之间的消息传递。gRPC非常适合密集而高效的通
转载
2024-06-09 06:37:48
31阅读
gRPC是google开源高性能分布式RPC框架,支持http/2 双向数据流传输及Protobuff,可以在任何环境下运行。 它可以有效地将数据中心内和跨数据中心的服务与可插拔支持进行负载均衡,跟踪,运行状况检查和身份验证。 它也适用于分布式计算,将设备,移动应用程序和浏览器连接到后端服务。核心功能:10种语言的语言客户端库高效的线路和简单的服务定义框架基于http / 2传输的双向流式传输可插
转载
2024-06-14 11:12:38
199阅读
利用业余时间撸了一个Spring Jpa代码生成器jpa-codegen。简介这是一款基于Freemarker模板驱动的代码生成器。依据现有的实体类代码,自动生成CRUD代码,解放双手,加快开发速度。生成的代码包括但不仅限于(可以自定义生成模块)Form表单代码Repository代码Service代码Controller代码SpringBoot使用示例克隆示例项目,体会解放双手的美妙感受!如何使
转载
2023-07-13 10:58:39
76阅读
前言我们使用gRPC,一般是把它作为微服务。因为,它与语言无关,可以适配多种语言。它的底层实现,使用的是HTTP/2。在使用时,我们需要通过"protoc"命令,为我们生成protocol-buffers的相关代码,它还会为我们生成gRPC相关代码。然后分别在客户端、服务端分别使用相应的代码即可。1.安装"protocol-buffers"代码生成工具、"gRPC"代码生成工具。$ go inst
转载
2024-01-30 03:12:43
110阅读
hello/client 客户端package mainimport ( pb "go-study/micro-service/gRPC/src/proto/hello" // 引入proto包 "golang.org/x/net/context" "google.golang.org/grpc" "google.golang.org
原创
2022-07-18 21:14:32
718阅读
1. gRPC简述 gRPC 是一个高性能、开源和通用的 RPC 框架,面向移动和 HTTP/2 设计。目前提供 C、Java 和 Go 语言版本,分别是:grpc, grpc-java, grpc-go. 其中 C 版本支持 C, C++, Node.js, Python, Ruby, Objec
转载
2020-02-29 18:19:00
291阅读
2评论
官方推荐golang中错误处理当做值处理, 既然是值那就可以在channel中传输,本文带你看看golang中channel+error来做异步错误处理有多香,看完本文还会觉得golang的错误处理相比java try catch一点优势都没有吗?场景如下,一次任务起多个协程异步处理任务,比如同时做服务/redis/mysql/kafka初始化,当某一个协程出现错误(初始化失败)时,程序是停止还是
转载
2024-09-25 16:37:18
403阅读
GF(Go Frame)是一款模块化、松耦合、轻量级、高性能的Go语言Web开发框架。支持热重启、热更新、多域名、多端口、多服务、HTTP/HTTPS、动态路由等特性 ,并提供了Web服务开发的系列核心组件,如:Router、Cookie、Session、服务注册、配置管理、模板引擎、数据校验、分页管理、数据库ORM等等等等, 并且提供了数十个实用开发模块集,如:缓存、日志、时间、命令行、二进制、
今天是golang专题的第11篇文章,我们一起来聊聊golang当中多态的这个话题。如果大家系统的学过C++、Java等语言以及面向对象的话,相信应该对多态不会陌生。多态是面向对象范畴当中经常使用并且非常好用的一个功能,如果你之前没有学过的话也没有关系,我们用一个简单的例子来说明一下。多态主要是用在强类型语言当中,像是Python这样的弱类型语言,变量的类型可以随意变化,也没有任何限制,其实区别不