grpc-go
文章平均质量分 51
_观众
学而不思则罔,思而不学则殆
展开
-
优化缓存中锁机制带来的开销
在实现基本的FIFO、IFU、LRU或其他的淘汰算法的基础上,为了保证其并发安全,可以采用读写锁的方式。但在大量并发写的情况下,锁机制的开销将会明显的体现出来,这将会成为其中的瓶颈。为了达到足够的高性能,就必须解决并发情况下锁机制的开销。本文将讲解如何通过分片的思想来缓解并发下锁机制的开销。 分片思想 这里暂且将实现的缓存对象简单看作一个基于读写锁的map,当前其瓶颈即为并发时的锁开销。并发的情况是无法避免的,那如果将一个map下的开销分担到多个map下,这样锁机制的开销将会减小。 其主要思想是:将缓存的数原创 2021-04-02 21:00:38 · 245 阅读 · 0 评论 -
grpc-gateway返回json时由于omitempty标签忽略默认值问题
问题 由于json的omitempty标签,导致序列化时默认值会被忽略,出现如下返回结果: { "status": {}, } 期待的返回结果: { "status": { "code": 0, "message": "" }, } 早期的解决方法 m := &runtime.JSONPb{OrigName: true, EmitDefaults: true} gwmux := runtime.NewServeMux(runtime.Wit原创 2021-03-27 11:48:27 · 1756 阅读 · 2 评论 -
gRPC的通信方式概述
gRPC一共有四种通信方式: UNARY:一元通信方式 CLIENT STREAMING:客户端流通信方式 SERVER STREAMING:服务端流通信方式 BIDIRECTIONAL STREAMING:双向流通信方式 UNARY 在这种情况下,为最简单的客户端与服务端模式,客户端发送一个消息后,阻塞等待服务端回复一个消息。 CLIENT STREAMING 在这种情况下,客户端将发送多个消息流,而后服务端回复一个消息。 SERVER STREAMING 在这种情况下,客户端仅发送一个消息,而后服务原创 2021-03-03 11:27:04 · 1618 阅读 · 0 评论 -
protocol buffers
关于 protocol buffers(protobuf),可以查阅 protocol buffers 官方文档,一切你想知道的如何安装、如何编译 .proto 文件、相关的语法都有详细的说明。注意:由于技术的更新迭代快,有可能对官方文档的更新不是那么及时,可能官方文档会导致一定的误导(亲历)。 本文的记录有限,其中包括: 了 protoc 工具在安装时的失败复盘、proto 常用语法,以及关于 GRPC 生成 golang 存根。 一、环境配置 protobuf 对应的工具为 protoc,即首要是安装原创 2021-02-06 15:11:36 · 159 阅读 · 0 评论