最近寫了一個(gè)go語(yǔ)言練手項(xiàng)目osproxy和osproxy-grpc,代碼已完全開源到github。
相信不少接觸go語(yǔ)言的讀者,都是被它"極簡(jiǎn)協(xié)程",“高并發(fā)”,"高性能"的特性所吸引,我也不例外,想著學(xué)完之后,能快速上手享受一把。
但當(dāng)我看完基本語(yǔ)法,想找個(gè)練手項(xiàng)目時(shí),才發(fā)現(xiàn)github上大部分都是博客/后臺(tái)管理系統(tǒng)之類的,這些項(xiàng)目都是經(jīng)驗(yàn)豐富的工程師快速遷移經(jīng)驗(yàn),寫出來(lái)的go代碼,對(duì)初學(xué)者不太友好;甚至不少博主推薦Docker/k8s這樣的大項(xiàng)目,看的讓人心里直打退堂鼓。
我也才接觸go語(yǔ)言不久,明白初學(xué)者想快速實(shí)踐,但找不到靠譜項(xiàng)目的心情,所以我希望這個(gè)基于go語(yǔ)言,非博客,非后臺(tái)管理系統(tǒng)的項(xiàng)目能滿足你的需求。
我之前有寫過C++練手項(xiàng)目TinyWebServer,被不少人噴,也讓不少人入了服務(wù)器開發(fā)的門,所以完全不要擔(dān)心osproxy這個(gè)項(xiàng)目會(huì)很復(fù)雜,但也不要擔(dān)心項(xiàng)目讓你學(xué)不到什么東西。
正如之前很多人對(duì)TinyWebServer的評(píng)價(jià),osproxy同樣是一個(gè)"麻雀雖小又五臟俱全"的項(xiàng)目。
osproxy是一個(gè)使用Go語(yǔ)言開發(fā)的對(duì)象存儲(chǔ)分布式代理(object-storage-distributed-proxy),可以作為文件存儲(chǔ)微服務(wù),支持docker一鍵部署,包括但不限于以下功能:
- 分布式uid及秒傳,支持相同文件不同命名
- 分片讀寫,大文件上傳,merge接口不用等待數(shù)據(jù)合并,分片上傳完直接下載
- 異步任務(wù),易擴(kuò)展的event-handler,支持分片合并及其他文件處理任務(wù)
- 統(tǒng)一封裝,降低業(yè)務(wù)接入復(fù)雜度,業(yè)務(wù)側(cè)只需要存儲(chǔ)文件uid
- 代理下載,不直接暴露底層存儲(chǔ)廠商及格式
- 支持集群部署,proxy模塊處理不同機(jī)器的分片轉(zhuǎn)發(fā)
- 支持MinIO/騰訊COS/阿里OSS等對(duì)象存儲(chǔ),易于擴(kuò)展
- 支持Docker一鍵部署
你能實(shí)踐這些東西:
- go:協(xié)程,sync包(waitgroup/once/mutex),channel,interface(可插拔組件注冊(cè))等
- grpc:一元RPC,服務(wù)器流RPC,客戶端流RPC,RPC攔截器,RPC數(shù)據(jù)轉(zhuǎn)發(fā)
- gin:路由組,http服務(wù)轉(zhuǎn)發(fā),文件數(shù)據(jù)轉(zhuǎn)發(fā),中間件
- gorm:簡(jiǎn)單文件元數(shù)據(jù)的存儲(chǔ)
- nginx:http和grpc的反向代理,及證書自簽
- redis:數(shù)據(jù)緩存,緩存與DB雙寫,簡(jiǎn)單的服務(wù)注冊(cè)與發(fā)現(xiàn),分布式鎖
- uuid:分布式ID
- docker:dockerfile的書寫,docker一鍵部署等
以上項(xiàng)目?jī)H針對(duì)初學(xué)者,望知悉。文章來(lái)源:http://www.zghlxwxcb.cn/news/detail-476604.html
最后,感謝你能看到這里。文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-476604.html
到了這里,關(guān)于對(duì)象存儲(chǔ)分布式代理-go初學(xué)者的開源練手項(xiàng)目的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!