![](https://img-blog.csdnimg.cn/20201014180756754.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
grpc-go
文章平均质量分 51
_观众
学而不思则罔,思而不学则殆
展开
-
优化缓存中锁机制带来的开销
在实现基本的FIFO、IFU、LRU或其他的淘汰算法的基础上,为了保证其并发安全,可以采用读写锁的方式。但在大量并发写的情况下,锁机制的开销将会明显的体现出来,这将会成为其中的瓶颈。为了达到足够的高性能,就必须解决并发情况下锁机制的开销。本文将讲解如何通过分片的思想来缓解并发下锁机制的开销。分片思想这里暂且将实现的缓存对象简单看作一个基于读写锁的map,当前其瓶颈即为并发时的锁开销。并发的情况是无法避免的,那如果将一个map下的开销分担到多个map下,这样锁机制的开销将会减小。其主要思想是:将缓存的数原创 2021-04-02 21:00:38 · 232 阅读 · 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 · 1690 阅读 · 2 评论 -
gRPC的通信方式概述
gRPC一共有四种通信方式:UNARY:一元通信方式CLIENT STREAMING:客户端流通信方式SERVER STREAMING:服务端流通信方式BIDIRECTIONAL STREAMING:双向流通信方式UNARY在这种情况下,为最简单的客户端与服务端模式,客户端发送一个消息后,阻塞等待服务端回复一个消息。CLIENT STREAMING在这种情况下,客户端将发送多个消息流,而后服务端回复一个消息。SERVER STREAMING在这种情况下,客户端仅发送一个消息,而后服务原创 2021-03-03 11:27:04 · 1581 阅读 · 0 评论 -
protocol buffers
关于 protocol buffers(protobuf),可以查阅 protocol buffers 官方文档,一切你想知道的如何安装、如何编译 .proto 文件、相关的语法都有详细的说明。注意:由于技术的更新迭代快,有可能对官方文档的更新不是那么及时,可能官方文档会导致一定的误导(亲历)。本文的记录有限,其中包括:了 protoc 工具在安装时的失败复盘、proto 常用语法,以及关于 GRPC 生成 golang 存根。一、环境配置protobuf 对应的工具为 protoc,即首要是安装原创 2021-02-06 15:11:36 · 125 阅读 · 0 评论