![](https://img-blog.csdnimg.cn/20201014180756913.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
gRPC
文章平均质量分 57
wanmei002
跟随自己的兴趣走吧
展开
-
grpc代理服务的实现(三)
golang grpc 代理服务的实现原创 2024-06-14 11:17:33 · 293 阅读 · 0 评论 -
grpc代理服务的实现(二)
golang grpc 代理服务的实现原创 2024-06-14 11:14:18 · 195 阅读 · 0 评论 -
grpc代理服务的实现(一)
golang grpc 代理服务器的实现原创 2024-06-14 11:08:45 · 530 阅读 · 0 评论 -
grpc NewClient 报错 name resolver error: produced zero addresses
grpc NewClient 报错 produced zero addresses原创 2024-05-29 20:13:55 · 492 阅读 · 0 评论 -
go-zero 3—客户端负载均衡算法及实现
本篇文章已经被 go-zero 团队的 微服务实践 公众号收录;go-zero 客户端负载均衡主要用了 P2C 和 EWMA算法P2Cp2c(pick of 2 choices)随机从众多数据中选择两个EWMAEWMA(exponentially weighted averages)指数移动加权平均,体现的是一段时间内的平均值(可以调节参数,使算法更灵活)原创 2021-08-04 20:17:29 · 1272 阅读 · 0 评论 -
go-zero 1—rpc服务的创建和rpc服务之间的调用,并介绍go-zero 服务启动的流程
创建一个 go-zero grpc 服务并介绍了下 服务启动的流程原创 2021-06-24 19:21:53 · 4215 阅读 · 0 评论 -
go-zero 2—并发处理数据包 mr(mapReduce) 的原理讲解
自己实现的代码地址https://github.com/wanmei002/goutil/blob/master/mr/mapreduce.go如果觉的自己golang 功底不强的话,可以先看我的实现代码:汉字注释,省略了一些go-zero的相互依赖,没有像go-zero兼容那么多的需求,相对简单原理这里用到了一个概念mapReduce, 那什么是 mapReduce 呢?这里简单的说下我的理解:mapReduce 是一种分布式处理数据并合并数据的概念,如果你想并发处理大量数据,你需要把很多数原创 2021-07-30 19:07:02 · 2498 阅读 · 0 评论 -
grpc 使用etcd 用于服务注册和服务发现出现的问题以及解决的方法
问题一获取 etcd client golang代码的时候,出现了如下问题:github.com/coreos/bbolt: github.com/coreos/bbolt@v1.3.6: parsing go.mod:module declares its path as: go.etcd.io/bboltbut was required as: github.com/coreos/bbolt进入项目 github.com/coreos/bbolt发现 go.mod 文件内 module go原创 2021-06-16 19:09:41 · 1712 阅读 · 1 评论 -
gRPC-11 etcd实现服务注册和服务发现
原理1. 首先为服务起一个名字,启动的时候,把信息存储到`etcd`中 1.1 比如: key是服务名 值是ip。 多个相同的服务让key的前缀一样,这样 读取etcd的时候就可以通过前缀来读取 1.2 生成租约,并设置比较短的过期时间,把 etcd 中存储的值跟租约绑定,这样租约如果没有在有效的时间内续期(很可能已经不能提供服务了),则 etcd 保存的值就会过期 1.3 定期更新租约的过期时间2. 客户端注册相关服务的解析器,在解析器中拼接 etcd的key的前缀,获取提供服务的i原创 2021-06-07 15:42:26 · 954 阅读 · 0 评论 -
gRPC-10 客户端负载均衡
代码地址https://github.com/wanmei002/grpc-learn/tree/master/ch09介绍我工作中,请求一个接口,会先从去负载均衡器中获取一个ip,然后直接拿着ip去访问接口,在这里呢我们相当于把负载均衡器集成到客户端服务中,客户端发起请求的时候,会获得一个ip列表,根据特定的算法,选取一个IP, 向服务端发起请求逻辑...原创 2021-06-07 14:55:34 · 423 阅读 · 0 评论 -
gRPC-09 传递header信息/元数据 [golang版]
gRPC 一元模式和流模式 header头信息的写入和读取原创 2021-06-01 18:25:23 · 3469 阅读 · 0 评论 -
gRPC-08传递取消操作 [golang版]
代码地址超时取消https://github.com/wanmei002/grpc-learn/tree/master/ch06单方面取消https://github.com/wanmei002/grpc-learn/tree/master/ch07简单介绍取消请求又分超时取消请求 和 单方面的主动取消。取消主要是用 context.Context[golang版] 来远程传递取消操作。可以用grpc 的 status.Code() 来获取错误码,不同的错误码对应不同的错误。完整的错误码列表可原创 2021-05-31 14:19:25 · 713 阅读 · 2 评论 -
gRPC-07 客户端拦截器的实现
代码地址https://github.com/wanmei002/grpc-learn/tree/master/ch05介绍客户端拦截器主要是 内置客户端发送数据前和接收数据后的一些通用逻辑的实现。下图单词拼错了;拦截器: interceptor直接上代码吧一元拦截器拦截 grpc 的一元模式需要实现 grpc/interceptor.go/type UnaryClientInterceptor func(ctx context.Context, method string, req, r原创 2021-05-30 19:41:21 · 247 阅读 · 0 评论 -
gRPC-06 服务端拦截器的实现
代码地址https://github.com/wanmei002/grpc-learn/tree/master/ch05拦截器简述在远程方法执行之前或执行之后都需要做一些通用逻辑。gRPC有拦截器相关逻辑(相当于 gin 框架的 Use)。或做一些日志、身份验证、性能等需求,可以在拦截器里实现。服务端拦截器一元拦截器一元拦截器需要实现 grpc.interceptor.type UnaryServerInterceptor func(ctx context.Context, req interf原创 2021-05-25 15:00:49 · 236 阅读 · 0 评论 -
gRPC-05 双端流的实现
代码地址https://github.com/wanmei002/grpc-learn/tree/master/ch04双端流的描述客户端可以在建立的连接上间歇性发送数据;服务端接收数据,可选择性的发送响应数据给客户端,就像聊天室功能一样。proto service 声明service Product { rpc AddProduct(stream Order) returns (stream Ret);}message Order { string name = 1;原创 2021-05-20 17:40:18 · 239 阅读 · 0 评论 -
gRPC-04 客户端流的实现
代码地址https://github.com/wanmei002/grpc-learn/tree/master/ch03客户端流的描述原创 2021-05-19 16:26:49 · 184 阅读 · 2 评论 -
gRPC-03 gRPC服务端流的实现
gRPC 服务端流的实现和客户端接收流的实现原创 2021-05-18 15:11:11 · 474 阅读 · 0 评论 -
gRPC-02 gRPC底层原理简单解析
gRPC底层原理简单解析原创 2021-05-17 19:30:31 · 1683 阅读 · 0 评论 -
gRPC-01 初入 golang gRPC
gRPC相关工具的下载 和 简单的gRPC server的代码编写和client 代码编写原创 2020-05-21 01:03:21 · 399 阅读 · 0 评论