分布式是写出来的(二)
生活随笔
收集整理的這篇文章主要介紹了
分布式是写出来的(二)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
從單機存儲進化為接口和存儲的分離
概述
接口服務層對外提供REST服務,數據服務層提供數據存儲功能。兩者之間通過消息隊列進行通信,數據服務層的所有數據服務注冊dataServer Exchange, 以便client給接口服務層發消息后,接口服務收到GET請求時,定位對象被保存在哪一個數據服務節點,通過dataServer Exchange找到對應的數據服務。為保證dataServer Exchange中所有的數據服務都是有效,也為了讓接口服務層知道數據服務節點。建立另一個apiServers Exchange作為心跳檢測,由每一個數據服務節點持續發送心跳消息。
架構圖
測試代碼及步驟
配置好unbuntu環境后
2010 sudo apt install golang-go2011 sudo apt install gccgo-go 2012 sudo apt-get install rabbitmq-server2014 sudo rabbitmq-plugins enable rabbitmq_management2015 wget localhost:15672/cli/rabbitmqadmin2017 python3 rabbitmqadmin declare exchange name=apiServers type=fanout2018 python3 rabbitmqadmin declare exchange name=dataServers type=fanout2019 sudo rabbitmqctl add_user test test2020 sudo rabbitmqctl set_permissions -p / test ".*" ".*" ".*"配置運行環境變量
export GOPATH=~/go-implement-your-object-storage-master go get github.com/streadway/amqp sh ./tools/starttestenv.sh chapter2測試代碼
輸入
curl -v 10.29.2.2:12345/objects/1234.txt -XPUT -d “add test 123”
查看
curl -v 10.29.2.2:12345/objects/1234.txt
定位在哪個服務器存儲
curl -v 10.29.2.2:12345/locate/1234.txt
從服務器10.29.2.2:12345直接拿數據
curl -v 10.29.1.2:12345/objects/1234.txt
goland添加環境變量
Edit congratulation>environment
rabbitmq監控
http://127.0.0.1:15672/
總結
以上是生活随笔為你收集整理的分布式是写出来的(二)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 分布式是写出来的(一)
- 下一篇: 分布式是写出来的(三)