三年了,WebServer已死,我来继续搅Golang的浑水

hi,牛客网的同学们,大家好,我是社长。

2020年,我在牛客的C++方向分享了一个TinyWebServer的项目,在我进腾讯工作后,就没再继续维护这个项目。到现在差不多3年,从最初的火热变成了现在的烂大街,无人问津....我想我是推波助澜的那个恶人,搅浑了C++后端开发的浑水。

工作后,慢慢接触了Golang语言、Docker、K8S等工具,发现这个方向还不错。我最近写的一个go语言练手项目osproxyosproxy-grpc,代码已完全开源到github,希望对go方向的同学有所帮助。

相信不少接触go语言的读者,都是被它"极简协程","高并发","高性能"的特性所吸引,我也不例外,想着学完之后,能快速上手享受一把。

但当我看完基本语法,想找个练手项目时,才发现github上大部分都是博客/后台管理系统之类的,这些项目都是经验丰富的工程师快速迁移经验,写出来的go代码,对初学者不太友好;甚至不少博主推荐Docker/k8s这样的大项目,看的让人心里直打退堂鼓。

我也才接触go语言不久,明白初学者想快速实践,但找不到靠谱项目的心情,所以我希望这个基于go语言,非博客,非后台管理系统的项目能满足你的需求。

我之前有写过C++练手项目TinyWebServer,被不少人喷,也让不少人入了服务器开发的门,所以完全不要担心osproxy这个项目会很复杂,但也不要担心项目让你学不到什么东西。

正如之前很多人对TinyWebServer的评价,osproxy同样是一个"麻雀虽小又五脏俱全"的项目。

osproxy是一个使用Go语言开发的对象存储分布式代理(object-storage-distributed-proxy),可以作为文件存储微服务,支持docker一键部署,包括但不限于以下功能:

  • 分布式uid及秒传,支持相同文件不同命名
  • 分片读写,大文件上传,merge接口不用等待数据合并,分片上传完直接下载
  • 异步任务,易扩展的event-handler,支持分片合并及其他文件处理任务
  • 统一封装,降低业务接入复杂度,业务侧只需要存储文件uid
  • 代理下载,不直接暴露底层存储厂商及格式
  • 支持集群部署,proxy模块处理不同机器的分片转发
  • 支持MinIO/腾讯COS/阿里OSS等对象存储,易于扩展
  • 支持Docker一键部署

你能实践这些东西:

  • go:协程,sync包(waitgroup/once/mutex),channel,interface(可插拔组件注册)等
  • grpc:一元RPC,服务器流RPC,客户端流RPC,RPC拦截器,RPC数据转发
  • gin:路由组,http服务转发,文件数据转发,中间件
  • gorm:简单文件元数据的存储
  • nginx:http和grpc的反向代理,及证书自签
  • redis:数据缓存,缓存与DB双写,简单的服务注册与发现,分布式锁
  • uuid:分布式ID
  • docker:dockerfile的书写,docker一键部署等

如果你正在学习Go语言,并且该项目给你的学习带来了一些帮助,欢迎star,欢迎交流。

#23届找工作求助阵地##go开发##golang##go实习##go#
全部评论
楼主有没有考虑搞一个OsProxy项目交流**?
3 回复 分享
发布于 2023-06-21 21:20 广东
大佬开个教程嘛
3 回复 分享
发布于 2023-06-15 12:35 浙江
大佬牛批
2 回复 分享
发布于 2023-06-15 12:52 上海
大佬牛批
2 回复 分享
发布于 2023-06-15 12:11 湖南
牛逼
2 回复 分享
发布于 2023-06-15 11:06 湖南
mark
2 回复 分享
发布于 2023-06-15 10:09 陕西
请问会有教程开发文档么
2 回复 分享
发布于 2023-06-15 08:48 湖北
mark
2 回复 分享
发布于 2023-06-15 00:02 江苏
1 回复 分享
发布于 2023-06-23 11:35 海南
来个java项目就好了
1 回复 分享
发布于 2023-06-15 23:39 浙江
m
1 回复 分享
发布于 2023-06-15 20:43 北京
大佬牛逼
1 回复 分享
发布于 2023-06-15 12:48 北京
大佬牛逼
1 回复 分享
发布于 2023-06-15 10:41 吉林
github那个tinywebserve是楼主的吗
1 回复 分享
发布于 2023-06-15 00:03 吉林
研究webserver中
点赞 回复 分享
发布于 2024-11-01 04:51 江苏
还在琢磨你的Tiny
点赞 回复 分享
发布于 2024-04-07 03:30 陕西
这个是真佬
点赞 回复 分享
发布于 2023-09-17 22:50 北京
还没搭上你tinywebsever的东风,这就要我直接转go?😆
点赞 回复 分享
发布于 2023-08-07 11:39 重庆
cy
点赞 回复 分享
发布于 2023-08-04 09:13 广东
websever也没烂大街啊
点赞 回复 分享
发布于 2023-08-04 09:02 山东

相关推荐

#国企#故事发生在4中旬,本人在3月中旬投递简历,到四月中旬通知我进行面试,ok虽然我当时已经找到工作了,但是还想到国企欸,稳定就是够了,于是还是顺利的接受了面试。面试过程就开始有疑问了,我面试的开发岗位,进入腾讯会议就是有四个人,我加上hr部长,以及技术部部长,还有一个对接的hr。问题就出现在了这个技术部长身上,自我介绍跟实际问问题的是两个声音(怀疑找了一个懂技术的来面试,也可能是这个技术部长能力太强了,面试我就是杀鸡用牛刀)。好了到面试的时候,我能接上的问题都接上了,但是对面问了一个问题,cpp中stl里面的vector动态扩容机制,其中问到了他的size(),在一个开始有10个元素的vector中增加一个元素,他的size会变成多少,我这边回答是不可能是11,反正。但我刚回答完,我就意识到我回答错了size就是11,capcity才是不是11那个,具体的扩容倍数没记错是1.5到2倍。当时就觉得死定了,结果对面来句没错。我就没去争辩想着多一事不如少一事。面试过程都比较顺利。面试后,过了三天没消息,我就主动去问,第一次是说对我印象不错,但是过了几天到了第二个礼拜还没消息,我去问就说不合适。好了本来以为就这样结束了,结果到了礼拜五他们联系我说面试结果发错了,说技术部给的结果是录取,说想谈一下,电话谈一下,我说我在上班,得中午或者第二天早上,我第二天早上不上班,可以谈。结果那边说喊我礼拜五去线下,但是我这边过去从云岩区到白云区,公交通勤两小时,就问不是说电话一下就行吗,结果那边还是叫我去线下。我就纳闷了不是说录取吗,剩下的就是走流程的事情了。就反问能不能线上,而且听他的语气怎么还有一轮面试 ,结果那边改口说,还想线下谈谈。我就想着后面去那边上班还是去看看,反正都过了说录取。好了第二天去到那边,看到了那个技术部部长,他就一直说什么加班,很累很辛苦,要我做好心理准备什么的,我就说我之前在深圳的节奏跟这个差不多,基本一样,适应的下来。后面到了hr部长跟我说也是一样的话,我还是强调我可以接受,毕竟想在这边安家,国企优先级要高于私企,累点没什么。跟hr谈了一下,我就说了一下我的期望薪资,然后那边就回复我再确认一下,我想着应该没问题。结果过了两天我去问结果,说我没过,技术部给出的结果是不通过。#面试中的破防瞬间#
点赞 评论 收藏
分享
评论
121
557
分享

创作者周榜

更多
牛客网
牛客企业服务