Guuid: 由 Go 語言開發的 UUID 生成服務
Guuid 是一款由 Go 語言開發的,基於HTTP的REST的 UUID 生成服務
Github:https://github.com/dreamans/guuid
UUID(Universally Unique Identifier)全域性唯一識別符號,是指在一臺機器上生成的數字,它保證對在同一時空中的所有機器都是唯一的。
Guuid使用了伺服器主機名、執行的程式ID、時間戳、隨機數、時序元素等一系列元素來保證生成UUID的唯一性。
UUID 16 bytes, 構成:
- 4 bytes 主機名&程式ID
- 4 bytes 時間戳
- 4 bytes 計數器
- 4 bytes 隨機數
安裝
$ go get -u github.com/dreamans/guuid/guuid-server
$ cd $GOPATH/src/github.com/dreamans/guuid/guuid-server
$ go install
執行
$GOPATH/bin/guuid-server -port 11223 -timeout 3
Usage:
-port 執行埠
-timeout 讀寫超時時間
執行成功:
⇨ http server started on [::]:11223
RestAPI
- 獲取UUID
$ curl http://127.0.0.1:11223/get
{
"code": 200,
"message": "OK",
"uuid": "5d1b3abf-5ab2-2792-0000-00046b2155a4"
}
- 批量獲取UUID
$ curl http://127.0.0.1:11223/mget/100
{
"code": 200,
"message": "OK",
"data": [
"5d1b3abf-5ab2-27cd-0000-00056d61a5e0",
"5d1b3abf-5ab2-27cd-0000-000648f72a80",
...
]
}
說明:
最多返回1000條記錄
- 獲取簡版UUID
$ curl http://127.0.0.1:11223/get/simple
{
"code": 200,
"message": "OK",
"uuid": "5d1b3abf5ab22792000000046b2155a4"
}
- 批量獲取簡版UUID
$ curl http://127.0.0.1:11223/mget/100/simple
{
"code": 200,
"message": "OK",
"data": [
"5d1b3abf5ab227cd000000056d61a5e0",
"5d1b3abf5ab227cd0000000648f72a80",
...
]
}
部署
LVS -> Nginx -> guuid-server
- Configure Nginx
upstream guuid_server {
server localhost:11211;
server localhost:11212;
server localhost:11213;
}
server {
listen 80;
server_name localhost;
location / {
proxy_pass http://guuid_server;
}
}
相關文章
- 使用Go語言開發短地址服務Go
- Go語言微服務開發框架實踐-go chassis(中篇)Go微服務框架
- Go語言微服務開發框架實踐-go chassis(上篇)Go微服務框架
- go語言安卓開發Go安卓
- go語言遊戲服務端開發(三)——服務機制Go遊戲服務端
- Gitea 1.0 釋出了,Go語言開發的自助 Git 服務GitGo
- Gitea 1.0 釋出了,Go 語言開發的自助 Git 服務GitGo
- Go語言開發的微服務框架有什麼專案?go學習Go微服務框架
- Go語言誕生5週年!10大Go語言開源專案推薦Go
- 20 個有用的 Go 語言微服務開發框架吐血總結!!!Go微服務框架
- GO 語言快速開發入門Go
- go語言開發有哪些工具Go
- Go語言開發環境搭建Go開發環境
- Go語言開發的Web框架都有哪些?GoWeb框架
- go語言遊戲服務端開發(二)——網路通訊Go遊戲服務端
- go語言遊戲服務端開發(四)——RPC機制Go遊戲服務端RPC
- Go語言開發的PaaS工具有哪些?go學習Go
- Go語言面試題分享:選擇題11道(2)go語言開發Go面試題
- Go 語言開發除錯中階Go除錯
- Golang(go語言)開發環境配置Golang開發環境
- GO 語言 Web 開發實戰一GoWeb
- go語言配置VIM開發環境Go開發環境
- GO語言併發Go
- Go 語言誕生5週年Go
- Go 語言開發一年的隨想Go
- 五款最棒的Go語言開發工具?Go
- 【Go 語言入門專欄】Go 語言的起源與發展Go
- 有Go語言實戰培訓班嗎?go語言開發環境搭建Go開發環境
- go語言開發入門:GO 開發者對 GO 初學者的建議Go
- 為什麼很多公司都轉型go語言開發?Go語言能做什麼Go
- 由Swift程式語言說開去Swift
- GO語言eclipse開發環境搭建GoEclipse開發環境
- 使用go語言開發hive匯出工具GoHive
- Mac 安裝 GO語言開發環境MacGo開發環境
- 學習go語言的技能難嗎?go開發得學多久?Go
- SEQSVR:Go + MySQL 實現的高效能 ID 生成服務VRGoMySql
- 使用Go語言建立WebSocket服務GoWeb
- 使用 Go 語言建立 WebSocket 服務GoWeb