go

Grpc&&protocol buffer结合提供grpc服务

强颜欢笑 提交于 2020-11-03 11:03:08
Grpc&&protocol buffer 关于下载:首先下载一个protobuf 对于mac系统就 brew install protobuf 就可以了。然后可以 protoc --version 看下安装的版本号,默认按最新版。 如果想手动按就去官网下载 https://github.com/protocolbuffers/protobuf/releases 下载go语言的proto插件 protoc -h 看到没有 --go_out 就没法生成go的pb.proto代码,所以需要下载 go的插件-----执行下面命令,从源端下载 go get -u -v github.com/golang/protobuf/protoc-gen-go 下载grpc go get -u google.golang.org/grpc 如果用go module的话 ,如下引入,可以改成想要的版本 require ( google.golang.org/grpc v1.33.1 google.golang.org/protobuf v1.25.0 ) ###根据proto生成 pb.go 先展示一下目录结构 $ tree . ├── README.md ├── client.go ├── db │ └── mongo │ └── pool.go ├── go.mod ├── go.sum ├──

常见面试题之缓存雪崩、缓存穿透、缓存击穿

吃可爱长大的小学妹 提交于 2020-11-03 03:35:49
前言 ❝ Hello,everybody,我是asong,今天与大家一起来聊一聊面试中几个常见的缓存问题。为什么会突然想做一篇这个文章呢,今天翻了一下我当初准备面试时整理的一些资料,发现缓存在面试中占比还是很高的,当初为了面试也是背了好久的,不过因为都是背的,现在也有点忘了,今天就想着好好整理一下这一部分,好好记录一下。因为自己能力有限,这一篇主讲通俗易懂,不涉及太难的缓存使用场景。好啦,我们开始吧。 ❞ 缓存应用 缓存在我们平常的项目中多多少少都会使用到,缓存使用的使用场景还是比较多的,缓存是分布式系统中的重要组件,主要解决高并发、大数据场景下,热点数据访问的性能问题。提高性能的数据快速访问。一提到缓存,这些是我们都能想到的一些缓存应用场景,但是我们是不太清楚缓存的本质思想是什么的。缓存的基本思想就是我们非常熟悉的空间换时间。缓存也并不是那么的高大上,虽然他可以为系统的性能进行提升。缓存的思想实际在操作系统或者其他地方都被大量用到。比如 「CPU Cache 缓存的是内存数据用于解决 CPU 处理速度和内存不匹配的问题,内存缓存的是硬盘数据用于解决硬盘访问速度过慢的问题。」 「再比如操作系统在 页表方案 基础之上引入了 快表 来加速虚拟地址到物理地址的转换。我们可以把快表理解为一种特殊的高速缓冲存储器(Cache)。」 上面简单介绍了缓存的基本思想,现在回到业务系统来说:*