blog
blog copied to clipboard
动手写分布式缓存 - GeeCache第七天 使用 Protobuf 通信 | 极客兔兔
https://geektutu.com/post/geecache-day7.html
7天用 Go语言/golang 从零实现分布式缓存 GeeCache 教程(7 days implement golang distributed cache from scratch tutorial),动手写分布式缓存,参照 groupcache 的实现。本文介绍了使用 protobuf(protocol buffer) 进行节点间通信,编码报文,提高效率
跟着写完了,收获很多,谢谢博主。
跟着写完了,收获很多,谢谢博主。
你的效率是真高!
Thanks a lot, I have unlocked another level of software inner working. Next stop is the GORM
@evanxg852000 Thanks a lot, I have unlocked another level of software inner working. Next stop is the GORM
I'm very glad if it helps you. GeeORM has been implemented and I'll try my best to finish 7 blogs for GeeORM within 1 week.
fmt.Println("非常好的一个系列,循循善诱,受益良多!")
跟着做完了 受益匪浅 感谢大佬
- 跟着写完了,完结散花
- 准备整理一下,自己做个笔记
- 谢谢博主
感谢分享 下一步GeeORM
后面已经蒙了
终于学完了 精彩 得好好看带代码总结了。收货很多 感谢
博主你的GroupCache service就没有用到,是不是删了比较好,否则有误导性。 但是不用service的话,现在peers之间的的rpc还是在用http的url传递request参数,使用protobuf其实和原本的没有区别。 如果要实现service的话,可能挺复杂的,一节课怕是写不完。 (后来又想了想用grpc的话,再HTTPPool实现GroupCacheServer接口,然后PeerGetter里用GroupCacheClient的接口是不是就行了,应该也不是特别复杂)
精彩,太精彩了,意犹未尽,准备趁着假期整理一遍,顺便看看能不能用docker和k8s部署一下这个项目
感谢博主,受益匪浅
看完了,也跟着把代码抄了一遍,但还是迷迷糊糊,很多地方我还没有理清🤣,后面需要把代码逻辑顺一顺。一致性哈希那一块是我觉得最有趣的,谢谢。
@proverbs 博主你的GroupCache service就没有用到,是不是删了比较好,否则有误导性。 但是不用service的话,现在peers之间的的rpc还是在用http的url传递request参数,使用protobuf其实和原本的没有区别。 如果要实现service的话,可能挺复杂的,一节课怕是写不完。 (后来又想了想用grpc的话,再HTTPPool实现GroupCacheServer接口,然后PeerGetter里用GroupCacheClient的接口是不是就行了,应该也不是特别复杂)
我也觉得
学到很多,感谢博主
真的很受用,讲的浅显易懂,非常感谢
感谢博主!收获很多
@proverbs 博主你的GroupCache service就没有用到,是不是删了比较好,否则有误导性。 但是不用service的话,现在peers之间的的rpc还是在用http的url传递request参数,使用protobuf其实和原本的没有区别。 如果要实现service的话,可能挺复杂的,一节课怕是写不完。 (后来又想了想用grpc的话,再HTTPPool实现GroupCacheServer接口,然后PeerGetter里用GroupCacheClient的接口是不是就行了,应该也不是特别复杂)
对啊,我看完这一节后也是有点懵逼。这好像没有完全利用到pb高效通信的优点,因为传输方式还是基于HTTP请求。原本http传输的就是字节流,现在只不过换为了传输具有结构化的数据而已,感觉效果没变
@proverbs 请问有关于这个GeeCache的相关性能测试的结果吗?
写的非常好,十分感谢
感谢~
Thanks a lot. Hopefully, I can integrate that into my own system. More practice is needed.
Thanks a lot
博主分析的很好,可是命名为geeCache实在是太滑稽了
收获多多!!
老哥写的这么好 为啥不出本书
写的非常好,感谢博主!
proto 文件需要 option go_package,编译才能通过
syntax = "proto3";
package geecachepb;
option go_package = "./geecachepb";
...
而且需要在 geecachepb 的同级目录执行 protoc --go_out=. geecachepb/*.proto
@yinhuanyi 写的做法也行,option go_package = "./;geecachepb";
不过官方文档里写这种做法不鼓励,毕竟约定目录最后一级就是包名。