blog icon indicating copy to clipboard operation
blog copied to clipboard

动手写分布式缓存 - GeeCache第七天 使用 Protobuf 通信 | 极客兔兔

Open geektutu opened this issue 5 years ago • 46 comments

https://geektutu.com/post/geecache-day7.html

7天用 Go语言/golang 从零实现分布式缓存 GeeCache 教程(7 days implement golang distributed cache from scratch tutorial),动手写分布式缓存,参照 groupcache 的实现。本文介绍了使用 protobuf(protocol buffer) 进行节点间通信,编码报文,提高效率

geektutu avatar Feb 16 '20 17:02 geektutu

跟着写完了,收获很多,谢谢博主。

xupingao avatar Feb 20 '20 12:02 xupingao

跟着写完了,收获很多,谢谢博主。

你的效率是真高!

geektutu avatar Feb 20 '20 12:02 geektutu

Thanks a lot, I have unlocked another level of software inner working. Next stop is the GORM

evanxg852000 avatar Mar 01 '20 14:03 evanxg852000

@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.

geektutu avatar Mar 01 '20 14:03 geektutu

fmt.Println("非常好的一个系列,循循善诱,受益良多!")

mcrwayfun avatar Mar 15 '20 15:03 mcrwayfun

跟着做完了 受益匪浅 感谢大佬

xiaoxfan avatar Mar 17 '20 02:03 xiaoxfan

  • 跟着写完了,完结散花
  • 准备整理一下,自己做个笔记
  • 谢谢博主

yance-dev avatar May 02 '20 14:05 yance-dev

感谢分享 下一步GeeORM

ppd0705 avatar May 13 '20 15:05 ppd0705

后面已经蒙了

ghosx avatar May 30 '20 11:05 ghosx

终于学完了 精彩 得好好看带代码总结了。收货很多 感谢

wuqinqiang avatar Jul 02 '20 02:07 wuqinqiang

博主你的GroupCache service就没有用到,是不是删了比较好,否则有误导性。 但是不用service的话,现在peers之间的的rpc还是在用http的url传递request参数,使用protobuf其实和原本的没有区别。 如果要实现service的话,可能挺复杂的,一节课怕是写不完。 (后来又想了想用grpc的话,再HTTPPool实现GroupCacheServer接口,然后PeerGetter里用GroupCacheClient的接口是不是就行了,应该也不是特别复杂)

proverbs avatar Jul 12 '20 06:07 proverbs

精彩,太精彩了,意犹未尽,准备趁着假期整理一遍,顺便看看能不能用docker和k8s部署一下这个项目

HallWoodZhang avatar Sep 30 '20 17:09 HallWoodZhang

感谢博主,受益匪浅

xlban163 avatar Nov 25 '20 03:11 xlban163

看完了,也跟着把代码抄了一遍,但还是迷迷糊糊,很多地方我还没有理清🤣,后面需要把代码逻辑顺一顺。一致性哈希那一块是我觉得最有趣的,谢谢。

batreeon avatar Mar 22 '21 10:03 batreeon

@proverbs 博主你的GroupCache service就没有用到,是不是删了比较好,否则有误导性。 但是不用service的话,现在peers之间的的rpc还是在用http的url传递request参数,使用protobuf其实和原本的没有区别。 如果要实现service的话,可能挺复杂的,一节课怕是写不完。 (后来又想了想用grpc的话,再HTTPPool实现GroupCacheServer接口,然后PeerGetter里用GroupCacheClient的接口是不是就行了,应该也不是特别复杂)

我也觉得

zoulux avatar Apr 03 '21 09:04 zoulux

学到很多,感谢博主

catplays avatar May 11 '21 16:05 catplays

真的很受用,讲的浅显易懂,非常感谢

Feedingzhang avatar May 18 '21 13:05 Feedingzhang

感谢博主!收获很多

lemonness avatar Jul 31 '21 11:07 lemonness

@proverbs 博主你的GroupCache service就没有用到,是不是删了比较好,否则有误导性。 但是不用service的话,现在peers之间的的rpc还是在用http的url传递request参数,使用protobuf其实和原本的没有区别。 如果要实现service的话,可能挺复杂的,一节课怕是写不完。 (后来又想了想用grpc的话,再HTTPPool实现GroupCacheServer接口,然后PeerGetter里用GroupCacheClient的接口是不是就行了,应该也不是特别复杂)

对啊,我看完这一节后也是有点懵逼。这好像没有完全利用到pb高效通信的优点,因为传输方式还是基于HTTP请求。原本http传输的就是字节流,现在只不过换为了传输具有结构化的数据而已,感觉效果没变

xugai avatar Aug 19 '21 00:08 xugai

@proverbs 请问有关于这个GeeCache的相关性能测试的结果吗?

fyyjyx-github avatar Oct 11 '21 07:10 fyyjyx-github

写的非常好,十分感谢

0RAJA avatar Oct 30 '21 11:10 0RAJA

感谢~

018429 avatar Dec 13 '21 08:12 018429

Thanks a lot. Hopefully, I can integrate that into my own system. More practice is needed.

DurantVivado avatar Jan 07 '22 05:01 DurantVivado

博主:proto文件中,指定golang的package,现在使用go_package指令 参考文档

需要修改一下:option go_package = "./;geecachepb";

yinhuanyi avatar Jan 09 '22 14:01 yinhuanyi

Thanks a lot

sfusong avatar Mar 01 '22 07:03 sfusong

博主分析的很好,可是命名为geeCache实在是太滑稽了

voidspiral avatar Mar 20 '22 12:03 voidspiral

收获多多!!

voidspiral avatar Mar 20 '22 12:03 voidspiral

老哥写的这么好 为啥不出本书

ZXM250250 avatar Apr 06 '22 14:04 ZXM250250

写的非常好,感谢博主!

yyqingshui avatar May 09 '22 09:05 yyqingshui

proto 文件需要 option go_package,编译才能通过

syntax = "proto3";

package geecachepb;

option go_package = "./geecachepb";

...

而且需要在 geecachepb 的同级目录执行 protoc --go_out=. geecachepb/*.proto

@yinhuanyi 写的做法也行,option go_package = "./;geecachepb"; 不过官方文档里写这种做法不鼓励,毕竟约定目录最后一级就是包名。

AkisAya avatar Jul 10 '22 10:07 AkisAya